我只是将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吗?
答案 0 :(得分:0)
看起来我在使用MiniProfiler库时遇到了麻烦。 SqlTiming
对象的序列化(通过FromJSON)保存了只有get方法的FormattedCommandString
。在反序列化时,这意味着CommandString
和FormattedCommandString
都是null
。
反序列化之前的快速(hacky)修复:
profilerString = profilerString.Replace("FormattedCommandString", "CommandString");
var profiler = MiniProfiler.FromJson(profilerString);