当前位置: 首页 > 面试题库 >

SqlGeography类型不匹配

松亦
2023-03-14
问题内容

编写内部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);

现在,虽然看起来有些奇怪,但我以这种方式阅读的原因是因为它是我编写的包装程序的一部分,我们使用它来加快sql的读写速度。它接受一个匿名对象,并根据属性名称或属性名称将所有sql值读入其中。

这适用于除以外的所有内容SqlGeography。我进行了类型比较,它也同样失败,因此很hacky,我什至无法检查该列是否为类型,SqlGeography因为它总是无法与之进行比较Microsoft.SqlServer.Types.SqlGeography

最初的异常如下:

类型为“ Microsoft.SqlServer.Types.SqlGeography”的对象不能转换为“
Microsoft.SqlServer.Types.SqlGeography”。

如果有任何不清楚的地方,请开除,我将尽力详细说明。

谢谢!

  • 接受的解决方案:Install-Package Microsoft.SqlServer.Types-版本10.50.1600.1

问题答案:

您可能在Types程序集上存在版本不匹配的情况。这是版本10和11之间的一个已知问题。不幸的是,错误消息不包含版本信息,这就是为什么它看起来很废话!

为了解决这个问题,您可以反序列化类型的二进制表示形式,即类似这样的内容(如果您的地理位置列在结果集中的第一列):

var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));

还有其他解决方法,包括对程序集进行绑定重定向。

此处的更多信息:https :
//connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-
retrieving-sqlgeography-column-in-ado-net-data-
reader



 类似资料:
  • 我在这里复制代码;https://developer.android.com/codelabs/kotlin-android-training-view-model#5 但我从DataBindingUtil中得到了一个类型不匹配。充气方法。正在返回ViewDataBinding!,当需要FragmentPlayBinding时。 我https://github.com/google-develop

  • 问题内容: 链接是 http://iipacademy.in/askpoll/ten_feed.php 异常在onPostExecute()方法(第4行)中: LOGCAT: 消息是一个数组,所以它的代码应该是什么或如何解决? 提前致谢 。。。 问题答案: 看起来响应是一个字符串而不是json数组 结果是一个json对象而不是json数组 应该

  • 我对Kotlin是新来的,这是我的问题: 我使用android studio 3.2.1 kotlin版本:1.2.71 对此有什么想法吗?

  • 问题内容: 我试图在Swift中使用JSONDecoder将JSON转换为Structs,所以我编写了所有Structs,将它们修改了几个小时,但它仍然给我这个错误。我不知道是否有办法查看给出此信息的行。我将在下面发布我的struct,并在其后发布Json File链接。 完整的错误描述是: typeMismatch(Swift.Dictionary ,Swift.DecodingError.Co

  • 使用任意数量的属性定义任何类型的简单react函数组件时出现类型脚本错误,包括使用FC、ComponentWithChildren等... 这是一个最小的复制品 给了我错误 类型“({ className }: { className?:未定义;}) = 我不明白这就是我总是定义组件的方式。打字稿中有什么我不知道的新东西吗?

  • 我对闪身是个新手。我正在尝试使用Flink1.3.2从我们的Kinesis流中读取并将输出写入一个Cassandra表。该程序能够从Kinesis流式传输数据。 提前道谢!