Entity Framework Core 增量整数

Fri*_*itz 2 c# asp.net entity-framework-core .net-6.0

我正在寻找与以下 SQL 语句等效的 EF Core C#:

UPDATE TheTable 
SET RevisionId = RevisionId + 1 
WHERE notPk = @someValue
Run Code Online (Sandbox Code Playgroud)

该解决方案不应受到竞争条件的影响。

Dav*_*vid 6

@TomTom 的现有答案当时是正确的,但现在已经过时了。EF Core 7+ 允许您发送批量更新,而无需先加载实体。

使用你的例子:

await dbContext.TableItems
  .Where(ti => ti.notPk == someValue)
  .ExecuteUpdateAsync(s =>
    s.SetProperty(ti => ti.RevisionId, ti => ti.RevisionId + 1)
      .SetProperty(ti => ti.AnotherValue, ti => ti.AnotherValue + 1)
  );
Run Code Online (Sandbox Code Playgroud)

我添加了另一个属性来演示如何SetProperty将调用链接在一起。更多信息请访问https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew