如何修改 EF-Core 数据库优先 (PostgreSQL) 项目以同时使用 SQLite 和 Xamarin.Forms

How do you modify a EF-Core Database-First (PostgreSQL) project to also work with SQLite and Xamarin.Forms

我的场景

我有一个 PostgreSQL 数据库。我已经使用 EntityFrameworkCore "database first" 方法为其创建了模型(Scaffold-Db 命令)。 EntityFrameworkCore classes 位于 .NET Standard 2.0 class 库中,因为我计划在多个平台上使用它(WPF、Xamarin.Forms)。

PostgreSQL 与我的 WPF 项目一起工作。为了让它与我的 Xamarin.Forms 项目一起工作,我使用命令 Add-Migration 为 SQLite 创建了一个迁移。

然后我尝试 运行 Update-Database 命令,它失败了,并告诉我我不能在 SQLite 数据库中有序列。所以我打开迁移文件并删除了所有添加序列的行。然后,Update-Database 命令工作得很好。

问题

问题是,当我 运行 Xamarin.Forms 项目并尝试使用数据库时,我得到一个异常提示“SQLite 不支持序列".

问题

有没有人有过手动编辑迁移以便它可以与 SQLite 一起使用的经验?

这是我正在使用的:

没关系,我想我已经弄明白了。 我忘记在我的 DbContextOnModelCreating 方法中删除这部分 modelBuilder.HasSequence("some_sequence_id");

现在数据库在 WPFXamarin.Forms 上都可以工作,唯一剩下要做的就是 DbContext 的决定机制,以便它根据平台使用正确的提供者。

我希望这对某人有所帮助。