1

クラスをデフォルトのEF方式でマップしましたが、すべてのFKはEntityCollectionであるため、たとえばBike.WheelsはEntityCollectionになります。

Wheelsを使用するにはどうすればよいですか?

  • 1輪と2輪を回収したい
  • Wheelsをループしたい
  • 全輪駆動したいボルト

get / select/[]を使用できませんでした。

私は何かが足りないのですか?

4

1 に答える 1

3

さて、いくつかの操作は本当に単純です-他は少し厄介です-それであなたは簡単な方法を使うためにあなたのアプローチのいくつかを再設計したいかもしれません。

すべてのホイールをループするには、次のforeachステートメントを使用します。

using(BikeEntities ctx = new BikeEntities())
{
   // assuming you just somehow pick a bike to inspect the wheels for
   Bike myBike = ctx.Bikes.FirstOrDefault(b => b.BikeID == 5);

   foreach(Wheel w in myBike.Wheels)
   {
       // do something with your wheel  
       foreach(Bolt b in w.Bolts)
       {
           // do something to al the bolts on your wheel
       }           
   }
}

通常の配列インデックスを使用できないため、コレクションの1番目、2番目などを取得するのは少し注意が必要です。あなたはできる:

  • メソッドを使用します.Skip()-しかし、それは単一オブジェクトの取得には少し不器用です
  • コレクションが大きすぎない場合は、コレクションをに「具体化」してから、List<T>配列のインデックスを使用できます。

したがって、次のようなものを使用します。

Wheel firstWheel = myBike.Wheels.FirstOrDefault();
Wheel secondWheel = myBike.Wheels.Skip(1).FirstOrDefault();

または、コレクションをリストに具体化します。

List<Wheel> myWheels = myBike.Wheels.ToList();

Wheel firstWheel = myWheels[0];
Wheel secondWheel = myWheels[1];
于 2010-08-15T08:29:56.257 に答える