0

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

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

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

关于为什么会出现“ExecuteStoreCommands”而不是 SQL 的任何想法?我在 SQL Profiler 中看到真正的 sql,如下所示:

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

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

4

1 回答 1

0

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

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

profilerString = profilerString.Replace("FormattedCommandString", "CommandString");
var profiler = MiniProfiler.FromJson(profilerString);                
于 2012-05-09T14:33:00.210 回答