1

我已经使用默认的 EF 方式映射了我的类,并且我的所有 FK 都是 EntityCollection,因此例如 Bike.Wheels 将是 EntityCollection。

如何使用 Wheels?

  • 我想取回第一个和第二个轮子
  • 我想循环通过 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
       }           
   }
}

获取集合的第一个、第二个等有点棘手,因为您不能使用通常的数组索引。你可以:

  • 使用该.Skip()方法-但这对于单个对象检索来说有点笨拙
  • 如果集合不是太大,您可以将其“物化”为 aList<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 回答