实体框架在不查询之前增加列值

时间:2016-12-29 08:44:44

标签: c# entity-framework lambda

我有一个带有表"联系人"的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

1 个答案:

答案 0 :(得分:6)

我刚刚在一些研究和测试后找到了解决方案,实际上EntityFramework.Extended完全按照我的意愿去做,如果你想增加一个列,只需调用Update方法并添加赋值:

db.Contacts.Where(c => c.Id == id).Update(c => new Contact { Clicks = c.Clicks + 1 });

在检查了EntityFramework.Extended和调试它的源代码后,我看到最终执行的查询正是我想要的, 所以感谢大家试图帮助,解决方案就在我的鼻子底下; - )