表结构:
主表A:id,导航属性集合Cs
主表B:id
关联表C:id,Aid,Bid,导航属性A、B。
现在需要:
查询表A,获得IQuerable<A>
问题1:
通过Include(x=>x.Cs)获得关联的子集合(是否有效)
问题2:
假如问题1有效(否则,似乎没意义),是否可以:
通过Include获得C对应的B?即类似(伪码):IQuerable<A>.Include(x=>x.Cs).Include(x=>Cs.B)
谢谢。
参见问题:EF的缓存机制
导致性能的问题,通过MiniProfiller跟踪,发现是SQL调用过多导致的。
再把一些必要的数据Cache后,性能有很大的改善,但是,原本计划使用的EF缓存机制,却没起到作用。
问题解决:Lazy模式,Include不起作用,只有关闭Lazy模式后(去掉virtual或显式关闭Lazy模式)则Include有效。
只是,想找一个兼容的模式,使用Include的时候,使用Include的,未显式使用Include,又未关闭Lazy能使用Lazy模式,如果能这样就好了。
EF的进一步优化在继续ing。