实体框架核心(7)批量更新

时间:2016-06-22 13:47:14

标签: entity-framework-core

如何使用EF Core(7)批量更新实体?

我不想从数据库服务器加载实体,修改属性和更新。 我只想要EF生成适当的UPDATE语句。

2 个答案:

答案 0 :(得分:8)

正如公认的答案所指出的那样,Entity Framework Core还不支持直接在数据库中进行更新。

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

但是,EF +已经支持查询批量更新而不在上下文中加载实体(支持:EF Core,EF6,EF5)

// using Z.EntityFramework.Plus; // Don't forget to include this.

// UPDATE all users inactive for 2 years
ctx.Users.Where(x => x.LastLoginDate < DateTime.Now.AddYears(-2))
         .Update(x => new User() { IsSoftDeleted = 1 });

维基:Entity Framework Batch Update

答案 1 :(得分:0)

在我发布此答案的那一天,根据我所拥有的信息,它看起来像是work in progress

请参阅https://github.com/aspnet/EntityFramework/issues/795

  

EF不提供批量更新机制。提案如下。   Context.Customers.Update()。Where。(c =&gt; c.CustType ==“New”)。Set(x =&gt;   x.CreditLimit = 0)

     

你会考虑这个功能吗?更多细节在这里:   https://entityframework.codeplex.com/workitem/52