我正在尝试用ASP.NET MVC4做一个webapi。webapi使用了实体框架5的空间类型,我已经写了一个非常简单的代码。
public List<Area> GetAllAreas()
{
List<Area> aList = db.Areas.ToList();
return aList;
}
包含DbGeometry的区域。
当我在本地运行它时,它可以工作,但当我将它发布到azure时,它会给我这个错误:
由于找不到程序集'Microsoft.SqlServer.Types‘版本10或更高版本,因此此提供程序的
空间类型和函数不可用。
有人知道如何解决这个问题吗?:)
谢谢!
发布于 2012-11-01 18:23:06
发布于 2016-10-21 07:40:05
当可以使用程序集的版本11 (SQL Server2012)时,上面的answer运行良好。
我在这方面遇到了问题,因为我的解决方案对同一程序集的版本13 (SQL Server 2016)有其他依赖关系。在这种情况下,请注意Entity Framework (至少是v6.1.3)在其SqlTypesAssemblyLoader (此异常的来源)中进行了硬编码,以便仅查找程序集的版本10和11。
为了解决这个问题,我发现你可以像这样告诉Entity Framework你想使用哪个程序集:
SqlProviderServices.SqlServerTypesAssemblyName = typeof(SqlGeography).Assembly.FullName;
发布于 2017-06-29 16:27:04
由于某种原因,我错过了一个绑定重定向,它为我解决了这个问题。
添加以下内容解决了我的问题
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-11.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
https://stackoverflow.com/questions/13174197
复制相似问题