저는 Entity Framework 4와 Self Tracking Entities를 사용합니다. 스키마는 같은 수 있습니다 :Entity Framework 자체 추적 TrackableCollection <T> 필요할 때만 관계 데이터를로드하는 방법?
환자는 -> 시험 -> LeftPictures - * .... 사진 -> RightPictures
그래서 한 환자 두 관계의 TrackableCollection있다. 고객 양식을로드하고 세부 사항을 탐색 할 때 시험 세부 사항을 위해 다른 양식이로드 된 경우에만 데이터 이미지를로드 할 필요가 없습니다!나는 데이터베이스 (SQL 서버)에서 데이터와 코드 얻을 수있는 데이터 저장소와 같은 클래스 라이브러리를 사용하고 있습니다 : 가서 얻을 수있는 시험의 세부 사항을 호출 할 때
public List<Patient> GetAllPatients()
{
try
{
using (OptoEntities db = new OptoEntities())
{
List<Patient> list = db.Patients
.Include("Addresses")
.Include("PhoneNumbers")
.Include("Examinations").ToList();
list.ForEach(p =>
{
p.ChangeTracker.ChangeTrackingEnabled = true;
if (!p.Addresses.IsNull() &&
p.Addresses.Count > 0)
p.Addresses.ForEach(a => a.ChangeTracker.ChangeTrackingEnabled = true);
if (!p.PhoneNumbers.IsNull() &&
p.PhoneNumbers.Count > 0)
p.PhoneNumbers.ForEach(a => a.ChangeTracker.ChangeTrackingEnabled = true);
if (!p.Examinations.IsNull() &&
p.Examinations.Count > 0)
p.Examinations.ForEach(e =>
{
e.ChangeTracker.ChangeTrackingEnabled = true;
});
});
return list;
}
}
catch (Exception ex)
{
return new List<Patient>();
}
}
지금 내가 필요를 형성하는 모든 검사 관계를위한 이미지 (LeftEyePictures, RightEyePictures). 나는 그것이 Lazy Loading이라고 부르고, Entities 연결을 즉시 닫을 때 어떻게되는지 이해하지 못하고 이렇게 생각하고 있습니다.
응용 프로그램을 통해 BindingSource 구성 요소를 사용합니다.
원하는 결과를 얻는 가장 좋은 방법은 무엇입니까?
감사합니다.