使用 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();
我遇到这样一种情况,我需要为具有多对多关系的一组对象向 属性 添加一个新项目。有没有办法使用 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();