0

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

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

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

4

1 回答 1

1

简短的回答是:

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

免责声明:我是实体框架扩展项目的所有者

如果您需要性能,最好和最快的方法是使用带有 BulkSaveChanges 方法的实体框架扩展库。

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

Ctx.BulkSaveChanges();
于 2016-04-28T15:19:39.083 回答