使用 EF Extended 批量更新添加到多对多?

Bulk update add to many-to-many with EF Extended?

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

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

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

简短的回答是:

Update() 方法只允许更新与实体直接相关的属性。因为你想更新很多或很多关系(不是 属性),这个库不允许这样做。

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

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

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

Ctx.BulkSaveChanges();