實體框架核心(7)批量更新

entity-framework-core

如何使用EF Core(7)批量更新實體?

我不想從數據庫服務器加載實體,修改屬性和更新。我只想要EF生成適當的UPDATE語句。

一般承認的答案

正如公認的答案所指出的,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 });

Wiki: 實體框架批量更新


熱門答案

在我發布這個答案的那天,有了我掌握的信息,看起來它work in progress

請參閱https://github.com/aspnet/EntityFramework/issues/795

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

你會考慮這個功能嗎?更多詳細信息: https//entityframework.codeplex.com/workitem/52



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow