Azure功能和Spatial类型以及程序集' Microsoft.SqlServer.Types'

时间:2018-04-12 13:45:38

标签: entity-framework azure azure-functions

有一个Azure函数应该调用上下文来更新DbGeography的值。我一直得到这个例外:

  

此提供程序无法使用空间类型和函数,因为程序集' Microsoft.SqlServer.Types'无法找到10或更高版本。

我在Azure Function项目中安装了NuGet包。目前,Azure功能未发布,我在本地运行。即使部署了该功能,解决这些问题也会很好。

1 个答案:

答案 0 :(得分:2)

根据您的错误消息,我想您的问题是当您尝试部署到没有安装SQL Server的CLR类型的计算机时。

您说您已经安装了Nuget软件包,因此我建议您还可以检查是否将相应版本的本机 SqlServerSpatial110.dll 程序集复制到输出目录并随应用程序一起部署。有关此问题的详细信息,请参阅此article

您还可以检查是否已安装Microsoft System CLR类型。有关详细信息,请参阅此SO thread

  

经过大量研究后,我刚刚安装了" SQL Server 2012的Microsoft System CLR类型"从:

     

X86 - http://go.microsoft.com/fwlink/?LinkID=239643&clcid=0x409

     

X64 - http://go.microsoft.com/fwlink/?LinkID=239644&clcid=0x409

     

像魅力一样工作!

此外,如果我在Microsoft.SqlServer.Types包中使用SqlGeography,它在我身边工作正常:

Azure功能中的代码:

enter image description here

Azure门户中的结果:

enter image description here