Entity framework 使用实体框架更新语句

Entity framework 使用实体框架更新语句,entity-framework,executenonquery,Entity Framework,Executenonquery,简单的问题是,当更新一个实体时,是否有可能使用该实体框架实现此查询 update test set value = value + 1 where id = 10 应该是这样的,一般来说,它只会有一点点约束 var myEntity = context.First(item => item.id == 10); myEntity.value += 1; context.SaveChanges(); 应该生成类似的SQL,您可以查看探查器以查看实际生成的SQL,但它应该与您的语句非常相似

简单的问题是,当更新一个实体时,是否有可能使用该实体框架实现此查询

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

应该是这样的,一般来说,它只会有一点点约束

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

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

不完全在该表单下否

您必须选择所有符合条件的实体,对其进行访问并更新


如果您正在数据库中寻找能够正确完成任务的东西,因为您的集合可能很大,那么您必须直接使用SQL。(我不记得EF是否可以像Linq to SQL那样直接执行更新查询)。

使用的批更新功能,如下所示:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });

正如我所怀疑的,我将使用一个sprocOr,您可能可以使用它:EF生成的SQL是完全不同的:两个SQL语句,它们不是原子的。我发现图书馆非常符合这项法案,因此值得在其单独的答复中提请注意。