1
클래스를 기본 EF 방식으로 매핑했으며 모든 FK는 EntityCollection이므로 Bike.Wheels는 EntityCollection입니다.Query EntityCollection
휠과 어떻게 작동합니까?
- 은 내가
내가 얻을 사용할 수있는 모든 wheel.Bolts을 얻으려면 휠
내가 누락 된 항목이 있습니까?
클래스를 기본 EF 방식으로 매핑했으며 모든 FK는 EntityCollection이므로 Bike.Wheels는 EntityCollection입니다.Query EntityCollection
휠과 어떻게 작동합니까?
내가 얻을 사용할 수있는 모든 wheel.Bolts을 얻으려면 휠
내가 누락 된 항목이 있습니까?
음, 일부 작업은 매우 간단합니다. 다른 작업은 다소 번거롭기 때문에 쉬운 방법을 사용하기위한 몇 가지 접근법을 다시 디자인 할 수 있습니다. 당신은 보통의 배열 인덱스를 사용할 수 없기 때문에,
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
}
}
}
컬렉션의 첫 번째, 두 번째 등을 얻기 약간 더 까다 롭습니다 : 모든 바퀴를 반복 할
, 그냥foreach
문을 사용합니다. 당신은 할 수 있습니다
.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];
그래, 그게 도움이되지만 ... 볼트에 대한 조인을 수행하는 방법이 없으므로 구체화 된 버전에 이미 db에서 선택된 볼트가 포함됩니다. –
@Massive Boisson : 나는 당신이 의미하는 바를 정확히 모릅니다 ... 당신이 정교 할 수 있습니까? "볼트 조인"? 무엇과 함께? –
@Massive Boisson : 자전거 객체가 데이터베이스에 있다면, 'Wheels' 속성에서'CreateSourceQuery()'메소드를 사용하고 그 결과'ObjectQuery'에'Include ("Bolts")를 호출하면됩니다. 목적. –