简单的问题,是否可以在更新一个实体时使用Entity Framework实现此查询?
update test set value = value + 1 where id = 10
答案 0 :(得分:11)
使用Entity Framework Extended Library的批量更新功能,如下所示:
dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });
答案 1 :(得分:5)
不是真的在这种形式下没有。
您必须选择符合条件的所有实体,对它们进行预测并更新它们。
如果您正在寻找可以在数据库中正确执行的操作,因为您的设置可能很大,您将不得不直接使用SQL。 (我不记得EF是否有办法直接以Linq To SQL的方式执行UPDATE查询。)
答案 2 :(得分:3)
应该是,它一般会受到更多限制。
var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();
应该生成类似的SQL,您可以观察探查器以查看实际生成的SQL,但它应该与您的语句非常相似。