我试图分析我的wpf应用程序,专注于进行一些计算和评估的非可视化部分,我在分析器中使用了Visual Studio 2012 bulit。
该应用程序中有相当多的代码(成千上万行),所以我很惊讶它在单行上花费了46.3%的时间:
db.Entry(qzv.ZkouskaVzorku).Collection(p => p.VyhodnoceniZkouskies).Load();
此行应该只显式加载相关实体as specified here。
我已经使用SQL Express分析器检查了这一行,它只显示了这个SQL命令:
exec sp_executesql N'SELECT
[Extent1].[VyhodnoceniZkouskyID] AS [VyhodnoceniZkouskyID],
[Extent1].[Kontext] AS [Kontext],
[Extent1].[NormaVlastnostiID] AS [NormaVlastnostiID],
[Extent1].[ZkouskaVzorkuID] AS [ZkouskaVzorkuID],
[Extent1].[ZkouskaTypuID] AS [ZkouskaTypuID],
[Extent1].[JeShodaITT] AS [JeShodaITT],
[Extent1].[JeITT] AS [JeITT],
[Extent1].[JeStorno] AS [JeStorno]
FROM [dbo].[VyhodnoceniZkousky] AS [Extent1]
WHERE [Extent1].[ZkouskaVzorkuID] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=1816601
go
此命令在0毫秒内执行得非常快,因为它只是使用主聚集索引选择多行。
将Entity框架6.1.0与SQL Server LocalDB 2014一起使用。 我已对此行进行了评论,因为它仅对ViewModel很重要,而且计算速度确实比cca快2倍。
可能是什么问题,是否有解决方法?