我想实现的是简单的sql查询:UPDATE TABLE SET COLUMN = COLUMN + 1
有没有一种方法可以在不首先将所有记录(数千条)加载到内存并循环遍历每条记录以增加列然后将其保存回的情况下实现?
编辑
我尝试了原始 sql,它成功了。我必须从连接字符串中确定 sql 提供程序,从连接上下文中确定数据库架构名称。之后,我将使用相应的sql查询来更新表。
对于 SQL,它看起来像 UPDATE schemaname.TABLE SET COLUMN = COLUMN + 1。 对于 POSTGRESQL,我必须将架构名称、表名称和列名称用双引号引起来:UPDATE "schemaname"."TABLE"SET "COLUMN"= "COLUMN"+ 1。
最佳答案
这是解决方案。您可以使用以下代码:
context.Table.Where(x => x.Field1 > 0).Update(y => new Table { Field2 = y.Field2 + 1 });
希望对你有帮助。
关于c# - Entity Framework 通过在没有选择的情况下将当前值增加一来更新一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609079/