我正在尝试将一些现有的 C# 代码转换为 CLR 存储过程。要使用的明显连接字符串是上下文连接(“上下文连接 = true”)。
我遇到的问题是某些事情显然不适用于这种连接类型。最新的是 SqlConnection.GetSchema 方法失败。该错误只是说它在上下文连接上不可用。是否有一个在上下文连接上不起作用的列表?
我正在尝试将一些现有的 C# 代码转换为 CLR 存储过程。要使用的明显连接字符串是上下文连接(“上下文连接 = true”)。
我遇到的问题是某些事情显然不适用于这种连接类型。最新的是 SqlConnection.GetSchema 方法失败。该错误只是说它在上下文连接上不可用。是否有一个在上下文连接上不起作用的列表?
您可能已经在MSDN SQL Server 2008 联机丛书中遇到过这种情况,但是,以下链接解释了使用上下文连接时施加的限制:
如果您发布完整的异常和堆栈跟踪,则可以从 .NET FX 程序集(使用 .NET Reflector)或使用 SQL 2005/2008 部署的程序集确定引发此异常的原因。
有人可能会觉得这很有用:
System.Data.DataTable schema = null;
using (System.Data.SqlClient.SqlCommand cmd = database.Connection.CreateCommand())
{
cmd.CommandText = string.Format( "SELECT TOP 1 * FROM {0}", mainTable );
cmd.CommandType = System.Data.CommandType.Text;
using (System.Data.SqlClient.SqlDataReader rdr = cmd.ExecuteReader())
{
schema = rdr.GetSchemaTable();
}
}
经过一番搜索后,我在这里找到了不适用于上下文连接的列表。其中一些也记录在上面的 SQL 书籍链接中,但并未全部提及。
不适用于上下文连接的事物。