0

多対多の関係を持つオブジェクトのグループのプロパティに新しい項目を追加する必要がある状況があります。 EntityFramework.Extendedを使用してバルクでこれを行う方法はありますか?何かのように...EF拡張で多対多に一括更新を追加しますか?

Ctx.Foos 
    .Where(f => fooIds.Contains(f.FooId)) 
    .Update(f => f.Bars.Add(bar)) // <-- what would go here??? 

明らかに、Update()の部分は正しくありません。当分の間、私はそのセットを検索し、ループすることでその周りに取り組んだ。より良い方法があるかどうか疑問に思うだけです。

答えて

0

短い答えは:NO

update()メソッドは、直接エンティティに関連するプロパティを更新することを可能にします。多くのまたは多くの関係(プロパティではない)を更新したいので、このライブラリはそれを許可しません。

免責事項:あなたはパフォーマンスを必要とする場合、私はプロジェクトEntity Framework Extensions

最高&最速の方法の持ち主だがBulkSaveChanges方法でEntity Frameworkの拡張ライブラリを使用することです。

Ctx.Foos 
    .Where(f => fooIds.Contains(f.FooId)) 
    .ToList() 
    .ForEach(f => f.Bars.Add(bar)) 

Ctx.BulkSaveChanges();