우리는 edmx에 각각 엔티티가있는 3 개의 테이블을 가지고 있습니다. 3 표, 내 문제를 설명 상상하기 :엔티티 프레임 워크 4.0 - 엔티티 포함 - 열렬한로드 문제
Table: Make
Fields:
makeID
make
Table: Model
FIelds:
modelID
makeID foreign key
model
Table: Car
carID
modelID foreign key
car
우리의 제조사, 모델, 및 차량 엔터티를 엔터티 모델의 탐색 속성을 모두 가지고있다. 지연로드가 사용 중지되었습니다. 우리는 Jeep Grand Cherokees 인 모든 차량을 당겨서 우리 페이지로 출력 할 수 있기를 원합니다.
지금 우리는 우리의 기능 중 하나 (C# 4.0)
IEnumerable<Make> makeList = (((ObjectSet<Lot>)_modelRepository.GetQuery())
.Include(mk => mk.Models.Where(md => md.model == "Grand Cherokee"))
.Where(mk => mk.make == "Jeep").ToList());
_makeRepository.GetQuery()
는 IQueryable
반환에 이런 일이 ... 우리는 (천국이 쿼리는 잘 작동합니다
저장소 패턴을 구현 이 예제를 위해 만들었지 만) 우리의 함수가 반환하도록 자동차 테이블 .Include
을 어떻게 할 수 있습니까? 모델이 채워지고 자동차가 채워지는 엔티티 객체를 만듭니다. (직접 탐색이 없기 때문에 자동차를 얻는 데 문제가 있습니다. 속성 만들기)
우리는 POCO 개체를 사용하고 있습니다.
목표는 1 개 기능이 작업을 수행 할 수 있도록 메이크 개체를 반환하는 것입니다 :
이 같은foreach(Make myMake in makeList)
{
Response.Write(myMake.make);
foreach(Model myModel in myMake.Models)
{
Response.Write(myModel.model);
foreach(Car mycar in myModel.Cars)
{
Response.Write(mycar.car);
}
}
}
뭔가 가능하지 않는 것 같습니다하지만 우리가 가고있는 무슨 :
IEnumerable<Make> makeList = (((ObjectSet<Lot>)_modelRepository.GetQuery())
.Include(mk => mk.Models.Where(md => md.model == "Grand Cherokee"))
.Include(c => mk.Models.Cars)
.Where(mk => mk.make == "Jeep").ToList());
나는 하나의 개체를 쿼리 할 수 있도록이 모든 정보가 포함 된 새 엔티티를 내 edmx에서 만들려고했으나 키가 매핑되어야한다는 오류가 계속 발생합니다. 맵핑에서 맵핑을 수행했습니다. 탭 (Visual Studio 2010) ... 다시 쿼리를 작동 시키려고합니다.