Visual Studio抱怨空间类型

时间:2017-12-12 18:50:25

标签: visual-studio entity-framework sql-server-2016

我在本地https://puu.sh/yEWG5/b4f77fba7b.png

上安装了这些CLR类型

另外,我在我的本地系统上安装了SQL server 2016,但是当我尝试运行该项目时,我收到如下错误

https://puu.sh/yEWQm/78a4220830.png

有人可以帮忙吗?我尝试从https://www.nuget.org/packages/Microsoft.SqlServer.Types/安装最新的nugget包,但它没有用。

虽然我能够在本地数据库的表中添加一个类型为geography的列。当我运行我的项目时,它在运行时失败,错误如下所示

https://puu.sh/yEWQm/78a4220830.png

2 个答案:

答案 0 :(得分:0)

根据文档,如果您已安装CLR类型,则应从GAC加载,因此我不确定为什么这对您不起作用。 (我会检查你是否有正确的版本作为你的依赖)

但是,我们在应用程序中使用SQLServerTypes而不使用以下方法安装CLR类型(此方法在SqlServerTypes附带的readme.htm中描述)。

抓住SqlServerTypes.nupkg并将其解压缩到一个文件夹,从现在开始调用此文件夹SST。 (我在以下步骤中讨论的文件的位置可能因版本而异,但原理相同)

  1. 在项目中创建SqlServerTypes文件夹
  2. 将SST / nativebinaries / x86和x64文件夹复制到新的SqlServerTypes文件夹中
  3. 同时将文件从SST /内容(您应该看到Loader.cs和readme.htm)复制到SqlServerTypes文件夹中。
  4. 现在,您需要做的就是在应用程序启动时调用Loader。 我们在autofac设置期间通过此次调用来执行此操作。

    Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory)
    

    您可能需要调整传递给此方法的参数以使用您的应用程序。如果使用了正确的路径,您应该可以访问代码中的空间类型。

    编辑:如果你已经在应用程序中安装了nuget软件包,可以直接调用LoadNativeAssemblies(并避免我上面发布的所有工作)但是,我没有测试过这个,因为我们被困在一个旧的版本的SqlServerTypes。

答案 1 :(得分:0)

因为我无法发表评论我必须回答,您可以查看thatthat文章和thisthisthisthis答案,我希望它们可以引导您进行一些有用的工作。