在我的数据库表Layout中,有一列类型为hierarchyid
(列索引= 4)。
当我尝试设置新环境(从XEN服务器创建的虚拟Web服务器),然后运行网站时,我遇到了这个问题:
异常信息:DataReader.GetFieldType(4)返回null。 异常数据:System.Collections.ListDictionaryInternal
我进行了一些搜索,并发现已经有一些相关主题(例如在MSDN上)。
但即使我添加了C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll
库,似乎结构中的db类型SqlHierarchyId
仍未被识别。
仍会抛出"DataReader.GetFieldType(4)返回null"的异常。
注意:如果我在环境(Windows Server 2008 RC2)上安装VS2010中的C#包,则可以解决此问题,但我的老板不接受,因为这只是一个简单的Web服务器。
Microsoft.SQLServer.Types
版本为 v11,无法使用。请参考 OP 的帖子获取 DLL 路径;按照此处所示手动将其添加到您的项目中;然后您就可以使用GetFieldType
并返回Microsoft.SqlServer.Types.SqlHierarchyId
了。 - Mendhak