为什么Mini-Profiler只显示SQL文本的“ExecuteStoreCommands”?

时间:2012-05-08 22:42:39

标签: entity-framework-4 mvc-mini-profiler

我只是将MiniProfiler连接到我的MVC3项目。我正在使用EF4.0并为我的实体生成POCO类。

如果重要,这些生成的ObjectContexts使用ObjectSet<>。我也在上下文中使用NInject for IoC。 (我在RequestScope中有这些,但我将它们更改为TransientScope以规定该问题)。

我看到的所有分析都显示“ExecuteStoreCommands”作为查询。

关于为什么“ExecuteStoreCommands”会出现而不是SQL的任何想法?我在SQL事件探查器中看到的实际sql如下所示:

exec sp_executesql N'SELECT 
[Project2].[OrderID] AS [OrderID], 
... 

我遇到麻烦因为我不在EF4.1 / 4.2 / 4.3上吗?是因为我没有使用CodeFirst吗?是POCO吗?

1 个答案:

答案 0 :(得分:0)

看起来我在使用MiniProfiler库时遇到了麻烦。 SqlTiming对象的序列化(通过FromJSON)保存了只有get方法的FormattedCommandString。在反序列化时,这意味着CommandStringFormattedCommandString都是null

反序列化之前的快速(hacky)修复:

profilerString = profilerString.Replace("FormattedCommandString", "CommandString");
var profiler = MiniProfiler.FromJson(profilerString);