有一个Azure函数应该调用上下文来更新DbGeography的值。我一直得到这个例外:
此提供程序无法使用空间类型和函数,因为程序集' Microsoft.SqlServer.Types'无法找到10或更高版本。
我在Azure Function项目中安装了NuGet包。目前,Azure功能未发布,我在本地运行。即使部署了该功能,解决这些问题也会很好。
答案 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功能中的代码:
Azure门户中的结果: