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

6
我花了很多时间尝试使用PostgreSQL和ASP.NET Boilerplate Core 2.x + Module Zero(看起来很棒!)。
以下是我所做的步骤:
1.在myApp.EntityFrameworkCore中添加了Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL.Design依赖项。
2.我还更改了连接字符串,并在myappDbContextConfigurer.cs中使用builder.UseNpgsql而不是builder.UseSqlServer
作为一个新项目,我开始使用Npgsql v2.0.0。但是在遇到一些问题后,我发现这个版本有一些问题。所以我返回了1.1.1 版本。
我相信这部分工作得很好。下一步是删除所有现有的迁移并重新加载它们:
- Add-Migration "Initial_Migrations" - Add-Migration "AbpZero_Initial" 当我执行第一个命令时,出现错误:
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篇帖子):https://forum.aspnetboilerplate.com/viewtopic.php?t=5304&p=13013 这篇帖子似乎有点过时,我不知道要在哪个项目中实现NpgsqlMigrationSqlGenerator
感谢您阅读此帖,任何帮助将不胜感激。

Npgsql v1.1.1 的目标是 .NETStandard 1.3,与 ABP for .NET Core 2.x 不兼容。 - aaron
谢谢 @aaron :) - chrisonstack
不用谢。这意味着您已使用 Npgsql v2.0.0 成功运行了它吗? - aaron
不,我还在努力工作中。 - chrisonstack
1个回答

5
要解决使用 Abp 模板(v3.4.0 .NET core + mvc + modulezero)的问题,需要执行以下操作:
  • 卸载 Microsoft.EntityFrameworkCore.SqlServer 包
  • 添加 Npgsql.EntityFrameworkCore.PostgreSQL (2.0.0) 和 Npgsql.EntityFrameworkCore.PostgreSQL.Design (1.1.1)
  • 删除“Migrations”目录中的所有文件(项目“EntityFrameworkCore/Migrations”)
还有其他一些小的更改,请参考这里

1
在SO上已经是2年7个月的会员了,没有提出任何问题,这次您被吸引发表第一个答案?不错 :) - aaron
你能解释一下为什么需要降级吗? - aaron
谢谢 @GeorgeDuke! 一切看起来都不错,表格已经创建并且项目已编译完成。 我现在能够转到Swagger视图,即使我在运行迁移时仍然有一个警告... 在类“Program”的方法'BuildWebHost'调用期间发生错误。 在没有应用程序服务提供程序的情况下继续。 错误:42P01:关系“AbpEditions”不存在 - chrisonstack
@aaron:谢谢。之前,如果没有这个降级,我无法执行数据库迁移指令。但经过新的测试,这一步骤已经不必要了。(我的先前回答已经更新) - GeorgeDuke
https://github.com/JbmOnGitHub/changeDbInAspnetboilerplate/blob/master/abptemplate_3_4_0_NETcore_mvc_modulezero.md 运行良好。 - Munna Bhakta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接