使用LINQ仅更新一个列值

时间:2015-07-16 09:13:40

标签: c# mysql asp.net linq

假设我在表格中有一个列的ID,并且我希望将其中一个列值增加1.我应该怎么做。

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

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

我想增加表格中的值,其中包含类别" Cars"由1。 什么是LINQ查询。

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

4 个答案:

答案 0 :(得分:3)

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

所以使用foreach

foreach (var car in col1) {
  car.value +=1;
}

//some method to save changes

答案 1 :(得分:1)

你可以简单地

  1. 创建您的查询,该查询将使用您的where子句
  2. 从数据库返回您想要的内容
  3. 对您的代码进行更改
  4. 提交您的更改
  5. 以下是MSDN中有关如何更新数据库中的行的示例link

答案 2 :(得分:1)

这种方式对我有用:

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

答案 3 :(得分:-2)

使用此

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