1

我已经为此苦苦挣扎了一段时间,而且我发现我不是唯一一个有问题的人(见这个那个)。

我已经设法调试了一下,并找到了解决方案,尽管我很确定这不是“正确”的方式。

第一个调试会话(在启用开发服务器之前)显示ProfiledDbConnectionFactoryProfiledDbConnection类提供了所需的数据,但是在创建连接之后,初始化ProfiledDbProviderFactory上的静态Instance属性(通过调用默认构造函数)并且显然CreateConnection ()在该实例上运行,导致空引用异常(tail 为空)。

我设法通过运行解决了这个问题

ProfiledDbProviderFactory.Instance.InitProfiledDbProviderFactory(_profiler, ripInnerProvider(_conn));

ProfiledDbConnection(DbConnection connection, IDbProfiler profiler)的末尾。

这使我可以查看 sql 分析,但正如我所写,我觉得这不是正确的修复。

这是我使用的示例代码。不确定我的环境或代码是否有问题,因为我觉得这应该开箱即用。有什么意见/建议吗?山姆?

4

2 回答 2

0

使用 ProfiledDbConnectionFactory 实体框架没有任何问题,旨在支持无知我通常只使用调试器工具并创建一个断点来查看我生成的 sql 语句,因为代码优先框架在那里很容易提供 sql 语句

我会坚持按照您在单元测试中描述的方式使用分析连接,而不是在生产代码中使用它,因为分析可能会影响性能,您还想考虑使用 sql server 中包含的 sql profiler 并且还有一个sql profiler 可作为 Visual Studio 扩展使用,但我不确定它是否首先支持代码

于 2011-08-18T05:43:48.037 回答
0

此问题已在 MiniProfiler.EF 1.9.1 版中得到解决

于 2011-08-31T21:45:16.100 回答