EF的两种延迟加载
EF的延迟加载一:
在一次查询以后得到temp,然后在temp上直接进行查询得到temp2,我们调用temp2的时候,是直接为temp生成sql脚本的,没有生成temp的脚本,也就是指查询了一次。
EF延迟加载二:
我们在便利temp的时候,会自动加载userIfo 表的数据,但是不会加载主键表UserInfo表的数据,但是当我们用到userInfo.OrderInfo的时候,又会通过导航属性帮我们加载主键表的数据,这就是第二种延迟加载。
=========================
第二种延迟加载存在的问题:
第二种延迟加载中,加载主键表的数据的方式是通过多次查询的方式,但是当数据量不大的时候,因为查询的次数的问题,这样的查询的性能就没有做链接查询性能高了,因为链接插叙只用做一次查询就可以搞定。
但是当数据量太大的时候,我们就只能用这种延迟加载的方式了,因为数据量到达一定量的时候,做连接查询的时候,nXn数量级大的惊人,这样的连接根本无法完成,下面是在EF中做连接查询的语句:
就是用Include将OrderInfo表的数据一起查询出来。