使用空间数据进行实体框架迁移

时间:2017-03-25 19:15:17

标签: c# entity-framework spatial

我试图先做代码"添加迁移"但是我收到了错误:

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

我了解如何在正在运行的应用中加载空间DLL,但是如何在从包管理器运行迁移时执行此操作?

编辑:好的,它比我更糟糕。由于相同的错误,这个简单的控制台应用程序不会运行。我从NuGet安装了Microsoft.SqlServer.Types。怎么回事?

static void Main(string[] args)
        {
            SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
            System.Data.Entity.Spatial.DbGeography location = System.Data.Entity.Spatial.DbGeography.PointFromText("POINT(" + 10 + " " + 10 + ")", 4326);
        }

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

2 个答案:

答案 0 :(得分:1)

好的,我明白了。我的环境有问题。我卸载了与我的系统相关的所有“SQL服务器”,安装了VS 2017,安装了“Microsoft®SQLServer®2012的系统CLR类型”,错误消失了。

不确定修复它的问题,但如果您遇到同样的问题,请尝试卸载所有“Microsoft®SQLServer的CLR类型”并尝试安装最新版本。

答案 1 :(得分:0)

尝试从Package Manager控制台安装Microsoft.SqlServer.Types

PM> Install-Package Microsoft.SqlServer.Types