使用Include扩展方法来使用EntityFramework贪婪加载

 

使用DbSet<T>类的扩展方法(位于EntityFramework程序集的System.Data.Entity命名空间,所以别忘了添加using System.Data.Entity),可以使用EntityFramework的贪婪加载。

(1)主表-子表加载:比如有主表ATable,子表BTable,在加载ATable表中记录(对象)的时候同时加载子表BTable中的记录(对象),则:

context.ATables.Include(a=>a.具体的导航集合属性).where(...);

(2)主表-子表-子表的子表(孙表)加载

比如有主表ATable,子表BTable,而子表Btable还含有它的子表CTable,在加载A表中记录(对象)的时候同时加载子表B中的记录(对象)和CTable,则:

context.ATables.Include(a=>a.BProperties).Include(a=>a.BProperties.Select(b=>b.CProperties)).where(...);

//说明:BProperties是在ATable中的指向BTable的导航集合属性,CProperties是在BTable中的指向CTable的导航集合属性。

 

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页