相关疑难解决方法(0)

是否可以使用Linq to Sql的SqlGeography?

我尝试使用时遇到了很多问题Microsoft.SqlServer.Types.SqlGeography.我完全知道在Linq to Sql中对此的支持并不是很好.我尝试了很多方法,从预期的方式(数据库类型geography,CLR类型SqlGeography)开始.这产生了NotSupportedException,这通过博客广泛讨论.

然后我走了将geography列视为一个路径varbinary(max),就像geography存储为二进制的UDT一样.这似乎工作正常(使用一些二进制读取和写入扩展方法).

但是,我现在遇到了一个相当模糊的问题,这似乎并没有发生在许多其他人身上.

System.InvalidCastException:无法将类型为"Microsoft.SqlServer.Types.SqlGeography"的对象强制转换为"System.Byte []".

ObjectMaterializer在迭代查询时抛出此错误.它似乎只有在包含地理列的表隐式包含在查询中时(即使用EntityRef<>属性进行连接)才会出现.

System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()

我的问题:如果我正在检索geographyvarbinary(max),我可能会发现反向错误:无法转换byte[]SqlGeography.我明白了.我没有.我对部分LINQ to SQL类有一些隐藏二进制转换的特性......那可能是问题吗?

任何帮助表示赞赏,我知道可能没有足够的信息.

附加功能:

  • 一个geography在Visual Studio DBML"服务器数据类型" =设计师列geography生成此错误:The specified type 'geography' is not a valid provider type.
  • 一个geography在Visual Studio DBML没有"服务器数据类型"列设计师生成此错误:Could not format node 'Value' for execution as SQL.

c# sql-server geography linq-to-sql sqlgeography

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

geography ×1

linq-to-sql ×1

sql-server ×1

sqlgeography ×1