实体框架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秒)的结果。
任何想法?
提前,谢谢!
更新:
-
实体类:
两个实体类,一个是基类。在这两者之间,大约有27列/属性,大多数在基类上。 -
选择结果中的对象数:
大约75 k。 -
正在执行的存储查询:
这个查询是一个select (columns) from view where (1=1) -
正在使用的API (DbContext或ObjectContext)
在EF 5/POCO场景中,我使用DbContext。在EF 4/生成实体场景中,我使用ObjectContext。**当使用EF 5/DbContext时,我也尝试访问(较低级别)ObjectContext和ExecuteStoreQuery方法,这给出了与DbContext SqlQuery相同的缓慢结果。
虚报…当物化许多对象时,poco中的少量反射会降低性能。