Performance 实体框架中的映射

Performance 实体框架中的映射,performance,entity-framework,mapping,Performance,Entity Framework,Mapping,我有一个问题,我不确定如何提高性能 我可以在EF Profiler中看到sql查询需要154毫秒,这很好,因为DB在云中。问题在于EF对结果所做的映射。这总共需要2801毫秒的时间。 这是一个大问题,总共获取了3698行 如何提高EF的映射速度?我的问题是: var parcels = context.Parcels.Include("ParcelStatusLogs") .I

我有一个问题,我不确定如何提高性能

我可以在EF Profiler中看到sql查询需要154毫秒,这很好,因为DB在云中。问题在于EF对结果所做的映射。这总共需要2801毫秒的时间。 这是一个大问题,总共获取了3698行

如何提高EF的映射速度?我的问题是:

var parcels =
                            context.Parcels.Include("ParcelStatusLogs")
                                .Include("Comments")
                                .Include("Comments.CommentStatu")
                                .Where(p => p.CarrierDateSent >= dateFrom.Date &&
                                         p.CarrierDateSent <= dateTo.Date &&
                                         p.ClientCompanyID == user.ComapanyID &&
                                         (p.IsActive == true || p.IsActive == isActive))
                                .OrderBy(r => r.CarrierDateSent).ThenByDescending(p => p.ParcelStatusLogs.OrderByDescending(
                                f => f.ParcelStatusID).FirstOrDefault().ParcelStatusID).ThenBy(p =>p.ParcelStatusLogs.OrderBy(f =>f.ParcelStatusEventDate).FirstOrDefault().ParcelStatusEventDate)
var地块=
上下文。包裹。包括(“包裹状态日志”)
.包括(“评论”)
.包括(“评论、评论”)
.Where(p=>p.CarrierDateSent>=dateFrom.Date&&
p、 CarrierDateSent r.CarrierDateSent)。然后按降序(p=>p.ParcelStatusLogs.OrderByDescending(
f=>f.ParcelStatusID.FirstOrDefault().ParcelStatusID.ThenBy(p=>p.ParcelStatusLogs.OrderBy(f=>f.ParcelStatusEventDate.FirstOrDefault().ParcelStatusEventDate)
我是否应该考虑离开EF,并使用其他的东西?


谢谢

如果使用预编译查询,时间会发生什么变化?不管怎样,对于fetchign 4k记录,您可以预期具体化到对象(在内部使用反射)将需要一些时间。您认为我将它移动到视图和进行手动映射,甚至编写自己的sql,并使用旧的datareader进行映射,会获得任何性能吗?是的,使用旧的普通ADO.NET和sql,您会获得更好的性能。好的,谢谢!由于我在整个解决方案中都使用了EF,您建议我如何实现纯sql,以保持某种结构?预设视图,或者,您会怎么做?首先使用最简单的解决方案来验证它是否真的有助于获取所需的所有数据=
SqlDataReader
SqlCommand
。如果使用预编译查询,时间会如何变化?不管怎样,对于fetchign 4k记录,您可以预期具体化到对象(在内部使用反射)将需要一些时间。您认为我将它移动到视图和进行手动映射,甚至编写自己的sql,并使用旧的datareader进行映射,会获得任何性能吗?是的,使用旧的普通ADO.NET和sql,您会获得更好的性能。好的,谢谢!由于我在整个解决方案中都使用了EF,您建议我如何实现纯sql,以保持某种结构?预先设置视图,或者,您是如何做到的?首先,使用最简单的解决方案来验证它是否真的有助于获取所需的所有数据=
SqlDataReader
SqlCommand