批量更新通过EF Extended添加到多对多?

时间:2016-04-27 19:52:38

标签: c# .net entity-framework-6 many-to-many entity-framework-extended

我遇到的情况是,我需要为一组具有多对多关系的对象添加一个新项目。有没有办法使用EntityFramework.Extended批量执行此操作?有点像...

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

显然,Update()部分不正确。目前,我已经通过检索集合和循环来解决它。只是想知道是否有更好的方法。

1 个答案:

答案 0 :(得分:1)

简短的回答是:

Update()方法仅允许更新与实体直接相关的属性。由于您要更新许多或多个关系(而不是属性),因此该库不允许这样做。

免责声明:我是该项目的所有者Entity Framework Extensions

最好的&amp;如果您需要性能,最快的方法是使用Entity Framework Extensions库和BulkSaveChanges方法。

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

Ctx.BulkSaveChanges();