2016-06-22 10 views
5

EFコア(7)を使用してエンティティを一括更新する方法はありますか?エンティティフレームワークコア(7)一括更新

私は、DBサーバーからエンティティを読み込み、プロパティを変更して更新したくありません。 私はEFが適切なUPDATE文を生成したいだけです。私は私の所有物の情報と、この答えを掲示しています一日で

答えて

7

として、Entity Frameworkのコアはまだデータベースに直接更新をサポートしていません。

免責事項:私はプロジェクトEntity Framework Plus

の持ち主だが、EF +がすでにコンテキストでロード実体なしに更新クエリ・バッチをサポート(サポート:EFコア、EF6、EF5)

// using Z.EntityFramework.Plus; // Don't forget to include this. 

// UPDATE all users inactive for 2 years 
ctx.Users.Where(x => x.LastLoginDate < DateTime.Now.AddYears(-2)) 
     .Update(x => new User() { IsSoftDeleted = 1 }); 

ウィキ:Entity Framework Batch Update

+1

それは完璧です。これはEF COREに直接実装する必要があります。ありがとう。 –

0

は、それがwork in progress

であるように見える参照してくださいhttps://github.com/aspnet/EntityFramework/issues/795

EFは、バッチ更新メカニズムを提供していません。提案は以下の通りです。 Context.Customers.Update()。。(C => c.CustType ==「新」)。セット(X => x.CreditLimit = 0)

あなたはこの機能を検討しますか?ここでは詳細は:受け入れ答えは指摘 https://entityframework.codeplex.com/workitem/52

+0

私が見る、私は自分自身で、多くのことをしようとしたことをグーグルなかった奇妙な。 –