Linq to sql从记录列表中更新多条记录

时间:2012-01-27 12:15:49

标签: .net linq linq-to-sql

您好我正在开发一个wpf应用程序。我正在使用linq to sql进行所有数据库操作。

现在我想通过比较主键来同时从记录列表中更新多个记录。 即在sql server 2005中

我们将一个xml传递给过程,我们打开它并更新记录,如

SELECT * INTO #TMP FROM openxml(Myxml);

UPDATE myPhysicalTable SET 
    myColumnName = #TMP.myColumnName
    , myColumnName1 = #TMP.myColumnName1
    FROM #TMP 
   WHERE myPhysicalTable.pkid = #TMP.pkid

现在我想在这里从linq到sql做同样的事情然后请建议正确的方法。

1 个答案:

答案 0 :(得分:0)

Linq to sql不支持开箱即用的基于集合的操作。所以你需要这样的东西

  • var x =选择
  • foreach + update
  • 的SubmitChanges

更新的 至于你的评论,是的:它的效率低于SQL中的UPDATE。 Linq to Sql将为每次更新发送一个更新语句。即使只调用SubmitChanges()一次,您也会获得单独的更新(但在一次交易中)。

因此,您可能需要重新考虑使用Linq2sql进行此特定操作,特别是如果您有大型集合。