我们可以用linq写Update语句吗?

我们可以用linq写Update语句吗?,linq,linq-to-sql,Linq,Linq To Sql,我们可以用linq写update语句吗 例如: var query = Update customer set isEdit = 1 where id = 1 谢谢不,你不能。LINQ中的Q表示查询 您可以执行以下操作: foreach(var c in customer.Where(x => x.Id == 1)) c.isEdit = 1; 是的,你可以 在Dbml中,为所有属性设置UpdateCheck=“Never” 这将生成单个update语句,而无需先执行selec

我们可以用linq写update语句吗

例如:

var query = Update customer set isEdit = 1 where id = 1
谢谢

不,你不能。LINQ中的Q表示查询

您可以执行以下操作:

foreach(var c in customer.Where(x => x.Id == 1))
    c.isEdit = 1;
是的,你可以

在Dbml中,为所有属性设置UpdateCheck=“Never”


这将生成单个update语句,而无需先执行select。

您可以通过使用类的方法执行“looks-like-Linq”查询来快捷更新:


在Linq To SQL中,这个函数不是针对每一行命中数据库吗?@Scorpi0:很可能是的。但是因为客户的ID可能是唯一的密钥,所以这并不重要,因为只有一行。我发现这对初学者来说非常危险。可能是customer.Where(x=>x.Id==1)。FirstOrDefault()更适合OP.@Scorpi0:这会改变查询的含义。
Foo foo=new Foo { FooId=fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name="test";
context.SubmitChanges();
var toUpdate = customer.Where(c => c.id == 1).ToList();
toUpdate.ForEach(c => c.isEdit = 1);