是否建议在实体框架查询中使用最大数量的.Include语句。
我想我读过微软推荐的地方不超过三个,但我找不到这个来源。
提前致谢。
答案 0 :(得分:1)
请参阅实体框架http://msdn.microsoft.com/en-us/data/hh949853.aspx的性能注意事项(第8.2.2页):
查询中包含多个Include语句需要相对较长的时间才能通过内部计划编译器来生成store命令。大部分时间都花在尝试优化生成的查询上。生成的store命令将包含每个Include的外部联接或联合,具体取决于您的映射。像这样的查询将在单个有效负载中引入数据库中的大型连接图,这将消除任何带宽问题,尤其是当有效负载中存在大量冗余时(即,包含多个级别的Include遍历关联中的一个 - - 很多方向)。
我建议使用SQL Profiler或EF Profiler(f.e. EFProf)来帮助解决性能问题