1

我有一个有 2 列的表:FruitID、FruitSize。我想编写一个查询,它接受一个 FruitID 列表和一个 FruitSize 并为所有水果设置新的 FruitSize。

这是我到目前为止所拥有的:

public void ChangeFruitSizes(List<long> TheFruitIDs, long NewFruitSize)
{
   using (SomeDC MyDC = new SomeDC())
   {
      var TheFruits = (from f in MyDC.Fruits
                       where TheFruitIDs.Contains(f.FruitID)
                       select f).ToList();

      foreach (Fruits f in TheFruits)
      {
          f.FruitSize = NewFruitSize;
      }

      MyDC.SubmitChanges();

   }
}

它目前没有窃听,但数据库中的字段没有更新。感谢您的建议。

4

2 回答 2

2

要以更简洁的方式编写此代码,您可以尝试以下列表中的ForEach()

using (SomeDC MyDC = new SomeDC())
{
    (from f in MyDC.Fruits
               where TheFruitIDs.Contains(f.FruitID)
               select f).ToList().ForEach(F => F.FruitSize = NewFruitSize);

    MyDC.SubmitChanges();

}
于 2012-09-20T17:16:05.000 回答
1

只看代码一切都是正确的。可能错误在于未显示的内容:模型。我怀疑您没有定义主键。在 ID 字段上定义主键并重新创建模型(从设计器中删除表并将其添加回来)。

于 2012-09-20T18:05:36.373 回答