我们可以在linq中编写Update语句吗?

时间:2013-04-22 07:10:57

标签: linq linq-to-sql

我们可以在linq中编写update语句吗?

示例:

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

由于

3 个答案:

答案 0 :(得分:4)

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

您可以做的是:

foreach(var c in customer.Where(x => x.Id == 1))
    c.isEdit = 1;

答案 1 :(得分:2)

您可以使用类ForEachList方法执行“看起来像Linq”查询来快捷更新:

var toUpdate = customer.Where(c => c.id == 1).ToList();
toUpdate.ForEach(c => c.isEdit = 1);

答案 2 :(得分:1)

是的,你可以,see my answer here

Foo foo=new Foo { FooId=fooId }; // create obj and set keys
context.Foos.Attach(foo);
foo.Name="test";
context.SubmitChanges();

在您的Dbml中为所有属性设置UpdateCheck =“Never”。

这将生成单个更新语句,而无需先执行选择。