【发布时间】:2014-08-15 08:18:22
【问题描述】:
我在编写内部 API 时遇到了以下错误。我正在尝试以以下方式读取SqlGeography 值(SQL Server 2012):
field: public SqlGeography XY { get; set; }
object dbValue = reader["xy"];
PropertyInfo info = type.GetProperty(columnName:"xy");
info.SetValue(entity, dbValue);
虽然这看起来很奇怪,但我以这种方式阅读的原因是因为它是我编写的 Wrapper 的一部分,我们使用它来加速 sql 读写。它接受一个匿名对象,并根据属性名称或属性名称将所有 sql 值读入其中。
这适用于除SqlGeography 之外的所有内容。我进行了类型比较,但它也失败了,因为它很笨拙,我什至无法检查该列是否为SqlGeography 类型,因为它总是无法与Microsoft.SqlServer.Types.SqlGeography 进行比较。
初始异常如下:
“Microsoft.SqlServer.Types.SqlGeography”类型的对象无法转换为 t 输入“Microsoft.SqlServer.Types.SqlGeography”。
如果有什么不清楚的,请开火,我会尽量详细说明。
谢谢!
- 接受的解决方案: 安装包 Microsoft.SqlServer.Types -Version 10.50.1600.1
【问题讨论】:
-
我需要添加我引用的SqlServer.Types v11
标签: c# sql .net sql-server-2012