2015-02-11 22 views
0

我有一张表,我需要一次更新2行。如何使用更新语句在linq中一次更新两个以上的行

我的SQL查询将是这样的:

UPDATE tablename SET columnname=value WHERE tablename.id in (1,2) 

我需要在LINQ相同。

在此先感谢。

+1

它可能对您有所帮助。 http://stackoverflow.com/questions/10314552/how-to-update-the-multiple-rows-at-a-time-using-linq-to-sql 谢谢 – 2015-02-11 12:38:25

+2

已经询问过http:// stackoverflow.com/a/10314666/17447有一个非常详细的答案。 – naveen 2015-02-11 12:38:46

+0

LINQ是*查询*语言,而不是更新语言。 – 2015-02-14 10:18:16

回答

1

LINQ to SQL中没有这样的东西。它将一直更新一行。

当然,你可以做一个

foreach (var key in keys) 
{ 
var r = db.Table.Single(i=>i.ID == key); 
r.xyz = value; 
} 
db.submitchanges() 

但从本质上讲,这将更新一个更新语句的每一行。在交易中,尽管如此它会达到与您的更新声明相同的效果,但根据记录数量会有显着的性能损失