EntityFramework更新,一次往返数据库

时间:2018-01-28 16:50:00

标签: c# entity-framework entity-framework-6

我有一张表如下:

联系人:

| 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();
}

通过实体框架(代码优先)更新第一个带有一个往返数据库的表行的最佳做法是什么?
注意:我只想更新年龄列。

1 个答案:

答案 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