【问题标题】:How can I set the value of a column for every row in a table using LINQ?如何使用 LINQ 为表中的每一行设置列的值?
【发布时间】:2009-06-24 21:35:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql linq linq-to-sql


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      有点作弊:

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

      【讨论】:

        【解决方案3】:

        这不是 Linq2SQL 最擅长的,但您可以尝试以下方法:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-26
          • 2018-01-05
          • 1970-01-01
          • 2011-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-24
          相关资源
          最近更新 更多