1

FruitID、FruitSize の 2 つの列を持つテーブルがあります。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 に答える