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

How to use Npgsql in ASP.NET Boilerplate Core 2.0 template?

我花了很多时间尝试将 PostgreSQL 与 ASP.NET 样板核心 2.x + 模块零(看起来很棒!)一起使用。

  1. 我将 Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL.Design 依赖项添加到 myApp.EntityFrameworkCore

  2. 我还更改了连接字符串,我在 myappDbContextConfigurer.cs 中使用 builder.UseNpgsql 而不是 builder.UseSqlServer

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

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

当我执行第一个时,出现错误:

Method 'Clone' in type 'Microsoft.EntityFrameworkCore.Infrastructure.Internal.NpgsqlOptionsExtension' from assembly 'Npgsql.EntityFrameworkCore.PostgreSQL, Version=1.1.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' does not have an implementation.

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

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

感谢您阅读本文post,我们将不胜感激。

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

  • 卸载软件包Microsoft.EntityFrameworkCore.SqlServer
  • 添加 Npgsql.EntityFrameworkCore.PostgreSQL (2.0.0) & Npgsql.EntityFrameworkCore.PostgreSQL.设计 (1.1.1)
  • 删除 "Migrations" 目录中的所有文件(项目 "EntityFrameworkCore/Migrations")

还有其他未成年人更改 here