Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架:比较查询的性能_Entity Framework - Fatal编程技术网

Entity framework 实体框架:比较查询的性能

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

我使用的是实体框架,有几种情况下,我应该运行一个查询,然后返回一些主行,然后在我的报告中使用这些主行和相关的子行

我想知道这些方法中哪一种性能更好:或者还有其他更好的方法吗

方法1:稍后使用延迟加载加载子实体

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个并通过此探查器进行分析:。它告诉你他们跑了多长时间,并给你一些提示。我想更多地了解一般情况,而不是针对这样一个特定的案例得出一个结果。所以一般来说,根据这三种方法的工作原理,性能更好的方法应该是什么:懒散加载、包含还是使用匿名类型?