实体框架在批量插入/更新/删除操作上可能非常慢。即使是经常建议的关闭AutoDetectChanges和/或ValidateOnSaveEnabled的调整也并不总是有帮助。
我在NuGet上遇到过Z.EntityFramework.Extensions,但它似乎是一个商业产品,只能运行一段时间。
https://www.nuget.org/packages/Z.EntityFramework.Extensions/
到目前为止,我真的只需要BulkInsert(),BulkUpdate()和BulkDelete()。
我的问题是:
是否有可靠的非商业库,与Z.EntityFramework.Extensions几乎相同?
感谢任何提示!
答案 0 :(得分:9)
免责声明:我是Entity Framework Extensions
的所有者你是对的。这是一种商业产品。
每个月都有免费试用版,但您必须为生产环境购买该产品。
批量插入
对于BulkInsert,有一些免费的替代品,但要小心,他们不支持所有的遗产和&协会,不再受支持:
免责声明:我是Entity Framework Plus
的所有者批量更新&&批量删除,您可以使用此库:
// DELETE all users which has been inactive for 2 years
ctx.Users.Where(x => x.LastLoginDate < DateTime.Now.AddYears(-2))
.Delete();
// UPDATE all users which has been inactive for 2 years
ctx.Users.Where(x => x.LastLoginDate < DateTime.Now.AddYears(-2))
.Update(x => new User() { IsSoftDeleted = 1 });