我有一个带有表"联系人"的SQL服务器,在此表中我有列"点击"类型为int,我想在不进行查询的情况下递增其值。
这是以下内容的副本:" Entity framework update one column by increasing the current value by one without select" 建议使用EntityFramework.Utilities的解决方案 问题是它不是像EntityFramework.Extended这样的IQueryable扩展,这使得我很难实现。
问题是使用IQueryable(没有实际编写sql查询)在sql上使用incrementmenet int值还有其他方法/解决方案吗?
IQueryable查询的结果应如下所示:
With CurrentRange
For Each c In Union(.Offset(, .Columns.count).Resize(.Rows.count + 1, 1), .Offset(.Rows.count).Resize(1)) '<--| loop through wanted cells only
If c.Interior.ColorIndex = CurrentColor Then Set CurrentRange = Union(CurrentRange, c)
Next c
End With
答案 0 :(得分:6)
我刚刚在一些研究和测试后找到了解决方案,实际上EntityFramework.Extended完全按照我的意愿去做,如果你想增加一个列,只需调用Update方法并添加赋值:
db.Contacts.Where(c => c.Id == id).Update(c => new Contact { Clicks = c.Clicks + 1 });
在检查了EntityFramework.Extended和调试它的源代码后,我看到最终执行的查询正是我想要的, 所以感谢大家试图帮助,解决方案就在我的鼻子底下; - )