如何在ASP.NET Boilerplate Core 2.0模板中使用Npgsql?

时间:2017-11-26 09:12:47

标签: postgresql migration npgsql asp.net-core-2.0 aspnetboilerplate

我花了很多时间尝试将PostgreSQL与ASP.NET Boilerplate Core 2.x + Module Zero一起使用(看起来很棒!)。

  1. 我添加了Npgsql.EntityFrameworkCore.PostgreSQL& Npgsql.EntityFrameworkCore.PostgreSQL.Design myApp.EntityFrameworkCore的{​​{1}}依赖关系。

  2. 我还更改了连接字符串,并在builder.UseNpgsql中使用builder.UseSqlServer代替myappDbContextConfigurer.cs

  3. 作为一个新项目,我从Npgsql v2.0.0开始。但是在遇到一些问题之后,我发现这个版本存在一些问题。所以我回到1.1.1发布。

    我很确定这部分工作正常。下一步是删除所有现有迁移并重新加载它们:

    • Add-Migration "Initial_Migrations"
    • Add-Migration "AbpZero_Initial"

    当我做第一个时,我收到一个错误:

      

    “Microsoft.EntityFrameworkCore.Infrastructure.Internal.NpgsqlOptionsExtension”类型中的方法“克隆”   来自程序集'Npgsql.EntityFrameworkCore.PostgreSQL,Version = 1.1.1.0,Culture = neutral,   PublicKeyToken = 5d8b90d52f46fda7'没有实现。

    我在这里找到了解决方案的开头(第6个帖子):https://forum.aspnetboilerplate.com/viewtopic.php?t=5304&p=13013

    该帖子似乎有点过时,我不知道在哪里实施NpgsqlMigrationSqlGenerator(我的意思是,在哪个项目中)。

    感谢您阅读本文,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

要使用Abp模板(v3.4.0 .NET core + mvc + modulezero)解决您的问题,您必须:

  • 卸载程序包Microsoft.EntityFrameworkCore.SqlServer
  • 添加Npgsql.EntityFrameworkCore.PostgreSQL(2.0.0)& Npgsql.EntityFrameworkCore.PostgreSQL.Design(1.1.1)
  • 删除"迁移"中的所有文件目录(Project" EntityFrameworkCore / Migrations")

其他未成年人的变化指向here