如何修改 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 一起使用的经验?
这是我正在使用的:
- Visual Studio2019版本16.3.5
- Microsoft.EntityFrameworkCore2.2.4
- Microsoft.EntityFrameworkCore.sqlite 2.2.4
- Microsoft.EntityFrameworkCore.设计 2.2.4
- Microsoft.EntityFrameworkCore.工具 2.2.4
- Xamarin.Forms 4.2.0.709249
没关系,我想我已经弄明白了。
我忘记在我的 DbContext
的 OnModelCreating
方法中删除这部分 modelBuilder.HasSequence("some_sequence_id");
。
现在数据库在 WPF
和 Xamarin.Forms
上都可以工作,唯一剩下要做的就是 DbContext
的决定机制,以便它根据平台使用正确的提供者。
我希望这对某人有所帮助。
我的场景
我有一个 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 一起使用的经验?
这是我正在使用的:
- Visual Studio2019版本16.3.5
- Microsoft.EntityFrameworkCore2.2.4
- Microsoft.EntityFrameworkCore.sqlite 2.2.4
- Microsoft.EntityFrameworkCore.设计 2.2.4
- Microsoft.EntityFrameworkCore.工具 2.2.4
- Xamarin.Forms 4.2.0.709249
没关系,我想我已经弄明白了。
我忘记在我的 DbContext
的 OnModelCreating
方法中删除这部分 modelBuilder.HasSequence("some_sequence_id");
。
现在数据库在 WPF
和 Xamarin.Forms
上都可以工作,唯一剩下要做的就是 DbContext
的决定机制,以便它根据平台使用正确的提供者。
我希望这对某人有所帮助。