c# - Entity Framework 通过在没有选择的情况下将当前值增加一来更新一列

标签 c# sql entity-framework entity-framework-6

我想实现的是简单的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/

相关文章:

c# - 如何使用 SharpSSH 将文件移动到 SFTP 服务器

c# - 旋转 M*N 矩阵(90 度)

c# - ASP.NET Request.ServerVariables 产生本地 IP 地址而不是远程 IP

java - PreparedStatement 错误

c# - await UserManager.CreateAsync 查找不存在的列

c# - 当反射类型本身是 List 时实例化通用 c# List

mysql - 在 2 个或更多表上使用列名称作为结果标题

mysql - SQL 使用 COUNT() 和 LEFT JOIN 合并两个或三个表

c# - StoreGeneratedPattern 是什么意思?

c# - .Net Framework 4.5 的升级应用程序 - 无法获得正确的 DataAnnotations 程序集