首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Azure上找不到'Microsoft.SqlServer.Types‘版本10或更高版本

在Azure上找不到'Microsoft.SqlServer.Types‘版本10或更高版本
EN

Stack Overflow用户
提问于 2012-11-01 17:28:37
回答 12查看 65.1K关注 0票数 103

我正在尝试用ASP.NET MVC4做一个webapi。webapi使用了实体框架5的空间类型,我已经写了一个非常简单的代码。

代码语言:javascript
复制
  public List<Area> GetAllAreas()
    {
        List<Area> aList = db.Areas.ToList();
        return aList;
    }

包含DbGeometry的区域。

当我在本地运行它时,它可以工作,但当我将它发布到azure时,它会给我这个错误:

由于找不到程序集'Microsoft.SqlServer.Types‘版本10或更高版本,因此此提供程序的

空间类型和函数不可用。

有人知道如何解决这个问题吗?:)

谢谢!

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-11-01 18:23:06

我找到解决方案了!只需安装nuget包Microsoft.SqlServer.Types即可

PM>安装-软件包Microsoft.SqlServer.Types

Link for more info

票数 134
EN

Stack Overflow用户

发布于 2016-10-21 07:40:05

当可以使用程序集的版本11 (SQL Server2012)时,上面的answer运行良好。

我在这方面遇到了问题,因为我的解决方案对同一程序集的版本13 (SQL Server 2016)有其他依赖关系。在这种情况下,请注意Entity Framework (至少是v6.1.3)在其SqlTypesAssemblyLoader (此异常的来源)中进行了硬编码,以便仅查找程序集的版本10和11。

为了解决这个问题,我发现你可以像这样告诉Entity Framework你想使用哪个程序集:

代码语言:javascript
复制
SqlProviderServices.SqlServerTypesAssemblyName = typeof(SqlGeography).Assembly.FullName;
票数 118
EN

Stack Overflow用户

发布于 2017-06-29 16:27:04

由于某种原因,我错过了一个绑定重定向,它为我解决了这个问题。

添加以下内容解决了我的问题

代码语言:javascript
复制
    <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>
票数 75
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13174197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档