クラスをデフォルトのEF方式でマップしましたが、すべてのFKはEntityCollectionであるため、たとえばBike.WheelsはEntityCollectionになります。
Wheelsを使用するにはどうすればよいですか?
- 1輪と2輪を回収したい
- Wheelsをループしたい
- 全輪駆動したいボルト
get / select/[]を使用できませんでした。
私は何かが足りないのですか?
クラスをデフォルトのEF方式でマップしましたが、すべてのFKはEntityCollectionであるため、たとえばBike.WheelsはEntityCollectionになります。
Wheelsを使用するにはどうすればよいですか?
get / select/[]を使用できませんでした。
私は何かが足りないのですか?
さて、いくつかの操作は本当に単純です-他は少し厄介です-それであなたは簡単な方法を使うためにあなたのアプローチのいくつかを再設計したいかもしれません。
すべてのホイールをループするには、次の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];