使用Entity Framework更新语句

时间:2009-03-16 20:12:29

标签: entity-framework executenonquery

简单的问题,是否可以在更新一个实体时使用Entity Framework实现此查询?

update test set value = value + 1 where id = 10

3 个答案:

答案 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,但它应该与您的语句非常相似。