我正在尝试将一些现有的C#代码转换为CLR存储过程。要使用的明显连接字符串是上下文连接(“context connection = true”)。
我遇到的问题是某些事情显然不适用于此连接类型。最新的事情是SqlConnection.GetSchema方法失败。该错误只表示它在上下文连接上不可用。是否存在某些无法在上下文连接上工作的列表?
答案 0 :(得分:4)
您可能已经在MSDN SQL Server 2008 Books Online中遇到过此问题,但是,以下链接解释了使用Context Connections时所施加的限制:
如果发布完整的异常和堆栈跟踪,则可以从.NET FX程序集(使用.NET Reflector)或使用SQL 2005/2008部署的那些程序中确定为什么会抛出此异常。
答案 1 :(得分:2)
有人可能会觉得这很有用:
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();
}
}
答案 2 :(得分:1)
经过一些更多的搜索后,我发现这个列表不适用于上下文连接here。其中一些也记录在上面的SQL Books链接中,但它没有全部提及。
不能与上下文连接一起使用的东西。