Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 空间类型和函数对此提供程序不可用_Sql_Sql Server_Visual Studio 2015_Entity Framework 6 - Fatal编程技术网

Sql 空间类型和函数对此提供程序不可用

Sql 空间类型和函数对此提供程序不可用,sql,sql-server,visual-studio-2015,entity-framework-6,Sql,Sql Server,Visual Studio 2015,Entity Framework 6,我有Visual studio 2015社区版和更新3。我使用的是实体框架6。在本地运行项目时,我得到了屏幕截图中显示的错误。在代码中,我使用c.Geography;在那一点上,这是个例外 我的系统上安装了Sql Server 2016,其CLR类型如下面的屏幕截图所示 我还使用nuget包安装包Microsoft.SqlServer.types安装了Sql server类型 还是不走运。我还能做些什么来解决这个问题?没有实体框架,我已经解决了这个问题: 尝试在服务器上序列化地理列,并在客户端上

我有Visual studio 2015社区版和更新3。我使用的是实体框架6。在本地运行项目时,我得到了屏幕截图中显示的错误。在代码中,我使用c.Geography;在那一点上,这是个例外

我的系统上安装了Sql Server 2016,其CLR类型如下面的屏幕截图所示

我还使用nuget包安装包Microsoft.SqlServer.types安装了Sql server类型


还是不走运。我还能做些什么来解决这个问题?

没有实体框架,我已经解决了这个问题:

尝试在服务器上序列化地理列,并在客户端上反序列化它

将您的列序列化为varbinary,并使用SqlGeography.DeserializeSqlBytes方法对其进行反序列化 使用SqlGeography.StatInary序列化到WKB,并使用SqlGeography.StGeomeFromWKBSqlBytes反序列化, Int32 1更好,在案例2中,您无法通过srid,通常您不需要srid

要使用实体框架,请尝试以下操作

在客户端上将此字段声明为SqlBytes 服务器端的视图可以从地理位置转换为varbinary 如果在更新视图时遇到问题,请使用存储过程或而不是更新/插入触发器
我认为这不是一个很好的解决方案,但它可以帮助您解决问题

您安装了多个版本的CLR类型,因此您需要告诉您的应用程序要使用哪个版本。不确定它是什么类型的应用程序,但您需要在global.asax.cs web应用程序中放入以下代码行:

SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91";
或者在运行空间代码之前在桌面应用程序中执行以下操作:

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91";

对我们有用的是当时的答案。我们为SQL Server 2012安装了Microsoft System CLR Types,问题已得到修复。

对于Microsft.SqlServer.Types错误,您需要安装SQL Server 2012功能包,即使您已安装SQL 2016。这是一个预请求。检查下面的链接


有人请帮忙;我对这个问题已经没有希望了,并且已经花了10个小时来解决这个问题