实体框架5 SqlQuery Slow Materializing

本文关键字:Slow Materializing SqlQuery 框架 实体 | 更新日期: 2023-09-27 17:53:59

我使用EF 5, POCO对象和SqlQuery。物体的物化过程非常缓慢,大约需要20秒。如果我运行SQL查询使用SQL管理工作室查询运行在大约2秒。(例子this.context.mytable.SqlQuery(查询).AsNoTracking.ToList ())

我以前使用这个完全相同的SQL查询EF 4,生成的实体和ExecuteStoreQuery。物体的物化速度并不慢,约为10秒。

为什么使用POCO会产生性能差异?我已经尝试使用ExecuteStoreQuery从DbContext使用POCO的相同慢(20秒)的结果。

任何想法?

提前,谢谢!

更新:

  1. 实体类:
    两个实体类,一个是基类。在这两者之间,大约有27列/属性,大多数在基类上。

  2. 选择结果中的对象数:
    大约75 k。

  3. 正在执行的存储查询:
    这个查询是一个select (columns) from view where (1=1)

  4. 正在使用的API (DbContext或ObjectContext)
    在EF 5/POCO场景中,我使用DbContext。在EF 4/生成实体场景中,我使用ObjectContext。

    **当使用EF 5/DbContext时,我也尝试访问(较低级别)ObjectContext和ExecuteStoreQuery方法,这给出了与DbContext SqlQuery相同的缓慢结果。

实体框架5 SqlQuery Slow Materializing

虚报…当物化许多对象时,poco中的少量反射会降低性能。