我收到错误“连接属性尚未初始化”,并带有以下代码:
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);
然后代码工作正常。什么是导致我的执行读取器抛出错误的profiled数据库连接?
答案 0 :(得分:1)
导致执行读取器抛出错误的profiled数据库连接是什么?
创建ProfiledDbConnection
后,它不再是SqlConnection
,是吗?所以这一行:
SqlCommand command = new SqlCommand("GetLanguages", connection as SqlConnection);
实际上是:
SqlCommand command = new SqlCommand("GetLanguages", null);
...这对于执行查询来说并不是个好兆头。这就是为什么无条件地使用as
是一个坏主意 - 如果您使用了强制转换表达式,则会抛出更有用的异常。
我从MiniProfiler文档中不清楚您如何使用ProfiledDbConnection
SqlCommand
。您很可能想要使用ProfiledDbCommand
。