我有一个实体列表,例如客户实体列表。
我正在使用批量更新作为上下文。客户.更新范围(客户(;
我的要求是我需要用新值递增现有列值。 例如,内部客户表 数量列需要更新为数量 = 数量 + current_Value。
我可以通过循环访问客户列表并逐个更新列的客户对象来做到这一点。但我希望在批量更新(更新范围(时执行此操作
我正在使用的技术 - ASP.NET 核心、MVC 核心、EF 核心
DbContext.UpdateRange 方法仅将实体的状态标记为"已修改"。这样,无论数据是否已更改,每个实体都将更新(https://learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.updaterange?view=efcore-2.1(。
此方法不应用于迭代实体列表和更改其值。
知道您有几种解决方案:
- 迭代实体并在业务层中设置数量(如前所述(
- 使用存储过程递增值 (https://www.entityframeworktutorial.net/efcore/working-with-stored-procedure-in-ef-core.aspx(