我有这个代码为我的数据访问类,我想加载所有的病人,他们应该有的地方,病人。地址,耐心。考试,考试。LeftEye Examinations.RightEye…
如何加载患者的所有相关数据?我甚至没有设法加载地址。
当前代码:
db.Patients.Include("Addresses");
db.Patients.Include("Examinations");
db.Examinations.Include("LeftEyePictures");
db.Examinations.Include("RightEyePictures");
List<Patient> list = db.Patients.ToList();
list.ForEach(p => p.ChangeTracker.ChangeTrackingEnabled = true);
return list;
谢谢。
Include
必须是查询的一部分!
List<Patient> list = db.Patients.Include("Addresses")
.Include("Examinations.LeftEyePicutres")
.Include("Examinations.RightEyePicutres")
.ToList();
有两种方法:1:加载前启用延迟加载
db.ContextOptions.LazyLoadingEnabled = true;
List<Patient> list = db.Patients.ToList(); // here is All Patients with Linked objects
db.ContextOptions.LazyLoadingEnabled = false;
然后禁用,如果你不需要它
2: Handload
db.Patients.Addresses.Load()
db.Patients.Examinations.Load()
db.Examinations.LeftEyePictures.Load()
db.Examinations.RightEyePicturesLoad()
你可以在加载前检查:(此或类似)
if(db.Patients.Addresses.IsLoaded==false)
db.Patients.Addresses.Load