0

我有这个代码用于我的数据访问类,我想在其中加载他们应该拥有的所有患者,Patient.Addresses、Patient.Examinations、Examinations.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;

谢谢你。

4

2 回答 2

1

Include必须是查询的一部分!

List<Patient> list = db.Patients.Include("Addresses")
                                .Include("Examinations.LeftEyePicutres")
                                .Include("Examinations.RightEyePicutres")
                                .ToList();
于 2011-07-25T16:12:01.230 回答
1

有两种方法:第一种:加载前启用延迟加载

db.ContextOptions.LazyLoadingEnabled = true;
List<Patient> list = db.Patients.ToList(); // here is All Patients with Linked objects
db.ContextOptions.LazyLoadingEnabled = false;

然后禁用,如果你不需要它

第二:手动

   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
于 2011-07-25T16:23:18.047 回答