【问题标题】:Updating just one column value using LINQ使用 LINQ 仅更新一列值
【发布时间】:2015-10-05 15:41:33
【问题描述】:

假设我有一个表中列的 ID,并且我想将其中一个列值增加 1。我应该如何处理。

这是我已经拥有的。 表有3个属性,(id、category、value)

var col1= db.columns.Where(w => w.category.Equals("Cars"));

我想将表中具有“汽车”类别的值加 1。 什么是 LINQ 查询。

之前可能有人问过类似的问题,但我所看到的答案似乎都不够令人满意。

【问题讨论】:

    标签: c# mysql asp.net linq


    【解决方案1】:

    使用这个

    db.columns
      .Where(w => w.category.Equals("Cars"))
      .Select(x => { c.Value += 1; return x; })
      .ToList();
    

    【讨论】:

    • 请解释你做了什么以及为什么。这个不清楚。
    • 你好,也许你能解释一下c.Value到底是什么?
    【解决方案2】:

    这种方式对我有用:

     var cols = dbContext.table_name.Where(w => w.columnName == parameterName);
                foreach(var item in cols)
                {
                    item.last_updated_date = dtNow;
                }
    

    【讨论】:

      【解决方案3】:
      var col1= db.columns.Where(w => w.category.Equals("Cars"));
      foreach (var item in col1)
      {
          item.SPECIFIC_PROPERTY = "VALUE";
      }
      
      try
      {
          db.SubmitChanges();
      }
      catch (Exception ex)
      {
         //Handle ex
      }
      

      【讨论】:

        【解决方案4】:

        你可以简单

        1. 创建您的查询,该查询将使用您的 where 子句从数据库返回您想要的内容
        2. 在代码中进行更改
        3. 提交您的更改

        这是 MSDN 中有关如何更新 DB link 中的行的示例

        【讨论】:

          【解决方案5】:

          您可以使用 .ForEach 扩展方法(您必须先枚举),但应该使用 Linq 进行查询,而不是更新值。

          所以使用foreach

          foreach (var car in col1) {
            car.value +=1;
          }
          
          //some method to save changes
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-08-18
            • 1970-01-01
            • 1970-01-01
            • 2019-10-27
            • 1970-01-01
            相关资源
            最近更新 更多