Ну, некоторые операции действительно просты - другие немного глупы - так что вы можете изменить некоторые из своих подходов, чтобы использовать простые методы.
Чтобы перебрать все ваши колеса, просто используйте выражение 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];