如何使用LINQ为表中的每一行设置列的值?

时间:2009-06-24 21:35:34

标签: sql linq linq-to-sql

假设我有一个带有“File_ID”列的文件表。

如何编写快速LINQ查询/语句以将File表中的每个“File_ID”设置为“1”?

我在语句模式下使用LINQPad,但这并不重要。

3 个答案:

答案 0 :(得分:3)

LINQ用于查询,而不是更新。 LINQ to SQL(和其他数据源)模型使用Add,Remove,getters和setter的传统对象模型,以及Update()将变更集提交给数据后备。

您所描述的只是迭代表集合中的所有记录对象,设置属性并调用Update()。使用单个UPDATE命令在SQL中执行此操作会更快更高效。

myDataContext.ExecuteQuery("UPDATE [File] SET File_ID = {0}", 1);

答案 1 :(得分:1)

有点作弊:

dataContext.ExecuteQuery("update File set File_ID = 1");

答案 2 :(得分:1)

这不是Linq2SQL最擅长的,但你可以尝试这样的事情:

using(var ctx = new MyDataContext())
{
    foreach(var f in ctx.Files)
    {
        f.File_ID = 1;
    }
    ctx.SubmitChanges();
}