如何使用 entity framework 使用一个命令递增一个值
How to increment a value using one command using entity framework
如何将此 sql 查询转换为 EF linq 命令
"update dbo.table set col1= col1 + 1 where Id = 27"
我想使用一个命令执行此查询以避免并发问题
如果另一个客户端同时修改记录
我正在寻找使用 EF 但在一个命令中执行此操作
我试过了,但我正在寻找更好的解决方案:
context.table1.FromSqlInterpolated($"update dbo.table set col1= col1+ 1 where Id=27").FirstOrDefaultAsync();
有办法update a column without first querying,但你遇到的问题是更新是基于已有的值。
Entity Framework 帮不了你。你只能用直接的 SQL 语句做你想做的事。
我建议使用linq2db.EntityFrameworkCore(注意我是创作者之一)
那你就可以轻松做到了:
await context.table1.Where(x => x.Id == 27)
.Set(x => x.Col1, prev => prev.Col1 + 1)
.UpdateAsync();
如果您想确保在读取和更新值之间不会发生其他更改,即使是原始的 SQL 语句也应该在事务中执行。这是一条 SQL 语句,但数据库仍然需要读取值、递增和存储。
如何将此 sql 查询转换为 EF linq 命令
"update dbo.table set col1= col1 + 1 where Id = 27"
我想使用一个命令执行此查询以避免并发问题 如果另一个客户端同时修改记录
我正在寻找使用 EF 但在一个命令中执行此操作
我试过了,但我正在寻找更好的解决方案:
context.table1.FromSqlInterpolated($"update dbo.table set col1= col1+ 1 where Id=27").FirstOrDefaultAsync();
有办法update a column without first querying,但你遇到的问题是更新是基于已有的值。
Entity Framework 帮不了你。你只能用直接的 SQL 语句做你想做的事。
我建议使用linq2db.EntityFrameworkCore(注意我是创作者之一)
那你就可以轻松做到了:
await context.table1.Where(x => x.Id == 27)
.Set(x => x.Col1, prev => prev.Col1 + 1)
.UpdateAsync();
如果您想确保在读取和更新值之间不会发生其他更改,即使是原始的 SQL 语句也应该在事务中执行。这是一条 SQL 语句,但数据库仍然需要读取值、递增和存储。