使用lambda表达式更新linq中的多个列

时间:2014-11-26 11:02:35

标签: c# asp.net linq datatable lambda

我想使用DataTableLinq更新Lambda Expression中的记录。我可以更新一列如下

dtProduct.AsEnumerable().Where(i => i.Field<long>("ProductId") == Convert.ToInt64(id)).First().SetField("Qty", qty);

无法理解如何更新其他人:(。我最终为每一栏写了几次更新。

1 个答案:

答案 0 :(得分:3)

  

我最终为每一列写了几次更新。

您的代码由两部分组成:

  • 找到实例,
  • 设置其字段。

您可以通过引入变量来重用定位实例的结果:

var inst = dtProduct.AsEnumerable().Where(i => i.Field<long>("ProductId") == Convert.ToInt64(id)).First();

现在您可以多次致电SetField

inst.SetField("Qty", qty);
inst.SetField("Price", price);
inst.SetField("Weight", weight);