我有一张表如下:
联系人:
| Id | Name | Age |
|----|-------|-----|
| 1 | amir | 35 |
| 2 | steve | 29 |
还有POCO实体(分离实体)如下:
var contacts = new [] {
Contact {Id = 1, Age = 34},
Contact {Id = 2, Age = 25}
};
然后:
using (var ctx = new ApplicationDbContext())
{
ctx.Contacts.Update(contacts);
ctx.SaveChanges();
}
通过实体框架(代码优先)更新第一个带有一个往返数据库的表行的最佳做法是什么?
注意:我只想更新年龄列。
答案 0 :(得分:2)
EF Core支持批处理,如果将批量大小设置为1,您将获得与EF 6.x相同的结果
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=Demo.Batching;Trusted_Connection=True;",
options => options.MaxBatchSize(1)
);
这意味着您应该开始使用EF Core而不是EF 6.x,如果您想要更少的往返数据库进行插入/更新/删除,或者您应该使用支持BulkUpdate
这样的{3}的3dr方库作为https://github.com/zzzprojects/EntityFramework-Plus