1

我收到错误“连接属性尚未初始化”,代码如下:

DbConnection connection = new SqlConnection(connStr);
connection.Open();
connection = new StackExchange.Profiling.Data.ProfiledDbConnection(connection, MiniProfiler.Current);
SqlCommand command = new SqlCommand("GetLanguages", connection as SqlConnection);
command.CommandType = CommandType.StoredProcedure;
command.CommandTimeout = 240;
command.ExecuteReader();

当它到达 command.ExecuteReader(); 线。

如果删除线

connection = new StackExchange.Profiling.Data.ProfiledDbConnection(connection, MiniProfiler.Current);

然后代码工作正常。导致我的执行阅读器抛出错误的已分析数据库连接是什么?

4

1 回答 1

1

导致我的执行阅读器抛出错误的已分析数据库连接是什么?

那么在创建 a 之后ProfiledDbConnection,它就不再是 a 了SqlConnection,是吗?所以这一行:

SqlCommand command = new SqlCommand("GetLanguages", connection as SqlConnection);

有效地:

SqlCommand command = new SqlCommand("GetLanguages", null);

...这对于执行查询来说并不是一个好兆头。这就是为什么as无条件使用是一个坏主意的原因——如果您改用强制转换表达式,则会引发更有用的异常。

从 MiniProfiler 文档中我不清楚你是如何将 aProfiledDbConnectionSqlCommand. 你很可能想ProfiledDbCommand改用。

于 2013-04-30T14:57:04.853 回答