我使用默认的EF方式映射我的类,并且我的所有FK都是EntityCollection,因此例如Bike.Wheels将是EntityCollection。
如何使用车轮?
我无法使用get / select /[].
我错过了什么吗?
答案 0 :(得分: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
}
}
}
获取集合的第一个,第二个等等有点棘手,因为你不能使用通常的数组索引。你可以:
.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];