首页 新闻 会员 周边

如何通过 EF Core 实现对某个字段进行减一更新

1
悬赏园豆:30 [已解决问题] 解决于 2024-02-22 18:52

比如博问在删除回答时更新问题的评论数,如果写成 SQL 是下面这样的:

UPDATE [dbo].[question_Item]
SET [AnswerCount] = AnswerCount - 1
WHERE QID = @QID

如何让 EF Core 生成上面的 SQL ?

dudu的主页 dudu | 高人七级 | 园豆:31048
提问于:2024-02-22 18:04
< >
分享
最佳答案
0

在 stackoverflow 的回答中找到了解决方法,原来用 ExecuteUpdateAsync 就可以实现

await _questionRepository.QueryQuestionById(answer.QID)
    .ExecuteUpdateAsync(s => s.SetProperty(q => q.AnswerCount, q => q.AnswerCount - 1));

生成的 SQL 语句

UPDATE [q]
SET [q].[AnswerCount] = [q].[AnswerCount] - 1
FROM [question_Item] AS [q]
WHERE [q].[QID] = @__qid_0
dudu | 高人七级 |园豆:31048 | 2024-02-22 18:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册