我有使用Update 3的Visual Studio 2015社区版。我正在使用Entity Framework 6.在我的本地运行项目时,我收到错误,如屏幕截图所示(https://puu.sh/uXFh0/64648902af.png)。就像在我使用c.Geography的代码中一样;它在那时显示例外。
我的系统上安装了带有CLR类型的Sql Server 2016,如下面的屏幕截图所示https://puu.sh/uXFqy/9f3c56a329.png
我还使用nuget包Install-Package Microsoft.SqlServer.Types。
安装了Sql server类型仍然没有运气。我还能做些什么来解决这个问题?
答案 0 :(得分:1)
您安装了多个版本的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";
答案 1 :(得分:0)
没有实体框架,我已经解决了这个问题:
尝试在服务器上序列化Geography列并在客户端上反序列化
1更好,在情况2中你不能传递srid(通常你不需要srid)
要使用实体框架,请尝试此
我认为这不是很好的解决方案,但它可以帮助您解决问题
答案 2 :(得分:0)
对我们有用的是Assembly 'Microsoft.SqlServer.Types' version 10 or higher could not be found的答案。我们为SQL Server 2012安装了Microsoft System CLR Types,问题已修复。
答案 3 :(得分:0)
对于Microsft.SqlServer.Types错误,即使安装了SQL 2016,也需要安装SQL Server 2012 Feature Pack。这是一个预先要求。请查看以下链接