8

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

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

3 回答 3

11

使用实体框架扩展库的批量更新功能,如下所示:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });
于 2013-12-17T02:27:47.033 回答
5

不是真的在这种形式下没有。

您将必须选择符合您的条件的所有实体,遍历它们并更新它们。

如果您正在寻找可以在数据库中正确执行的操作,因为您的集合可能很大,您将不得不直接使用 SQL。(我不记得 EF 是否有办法像 Linq To SQL 那样直接执行 UPDATE 查询)。

于 2009-03-16T20:28:12.070 回答
3

应该是,一般情况下它会受到更多的限制。

var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();

应该生成类似的 SQL,您可以观察分析器以查看实际生成的 SQL,但它应该与您的语句非常相似。

于 2009-03-16T20:16:58.353 回答