Entity framework 实体框架:比较查询的性能
我使用的是实体框架,有几种情况下,我应该运行一个查询,然后返回一些主行,然后在我的报告中使用这些主行和相关的子行 我想知道这些方法中哪一种性能更好:或者还有其他更好的方法吗 方法1:稍后使用延迟加载加载子实体Entity framework 实体框架:比较查询的性能,entity-framework,Entity Framework,我使用的是实体框架,有几种情况下,我应该运行一个查询,然后返回一些主行,然后在我的报告中使用这些主行和相关的子行 我想知道这些方法中哪一种性能更好:或者还有其他更好的方法吗 方法1:稍后使用延迟加载加载子实体 Dim lista as IQueryable(Of MyObj) = (From t In context.MyObjs Where(..condition..) select t).Tolist 方法2: Dim lista as IQueryable(Of MyObj) = (F
Dim lista as IQueryable(Of MyObj) = (From t In context.MyObjs Where(..condition..) select t).Tolist
方法2:
Dim lista as IQueryable(Of MyObj) = (From t In context.MyObjs Where(..condition..) _
.Include(Function(t2) t2.Childs1) _
.Include(Function(t2) t2.Childs2) _
.Include(Function(t2) t2.Childs2.Child22) _
.Include(Function(t2) t2.Childs1.Childs11) _
.Include(Function(t2) t2.Childs1.Childs12) _
Select t).ToList
方法3:
Dim lista as IQueryable(Of MyObj)
Dim lst= (From t2 In context.MyObjs Where(..condition..) Select New with _
{ .Parent=t2
.ch1=t2.Childs1 _
.ch2=t2.Childs2 _
.ch21=t2.Childs2.Child21) _
.ch11=t2.Childs1.Childs11) _
.ch12= t2.Childs1.Childs12 _
).ToList
lista=lst.Select(Function(t2) t2.parent)
我注意到第一种方法导致报表打开非常慢。我还读到一些地方,其中包括主行重复的原因
但无论如何,我想对这三种方法有一个大致的看法
谢谢大家! 调用所有3个并通过此探查器进行分析:。它告诉你他们跑了多长时间,并给你一些提示。我想更多地了解一般情况,而不是针对这样一个特定的案例得出一个结果。所以一般来说,根据这三种方法的工作原理,性能更好的方法应该是什么:懒散加载、包含还是使用匿名类型?