我已经使用默认的 EF 方式映射了我的类,并且我的所有 FK 都是 EntityCollection,因此例如 Bike.Wheels 将是 EntityCollection。
如何使用 Wheels?
- 我想取回第一个和第二个轮子
- 我想循环通过 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
}
}
}
获取集合的第一个、第二个等有点棘手,因为您不能使用通常的数组索引。你可以:
.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];