【问题标题】:How do you modify a EF-Core Database-First (PostgreSQL) project to also work with SQLite and Xamarin.Forms如何修改 EF-Core Database-First (PostgreSQL) 项目以使其也与 SQLite 和 Xamarin.Forms 一起使用
【发布时间】:2020-02-19 16:14:27
【问题描述】:

我的场景

我有一个 PostgreSQL 数据库。我使用EntityFrameworkCore“数据库优先”方法为其创建了模型(Scaffold-Db 命令)。 EntityFrameworkCore 类位于 .NET Standard 2.0 类库中,因为我计划在多个平台上使用它(WPF,Xamarin.Forms)。

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

然后我尝试运行 Update-Database 命令,但失败并告诉我 SQLite 数据库中没有序列。所以我打开了迁移文件并删除了所有添加序列的行。然后,Update-Database 命令运行良好。

问题

问题是,当我运行 Xamarin.Forms 项目并尝试使用数据库时,我收到一条异常消息“SQLite 不支持序列”。

问题

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

这是我正在使用的:

  • Visual Studio 2019 版本 16.3.5
  • Microsoft.EntityFrameworkCore 2.2.4
  • Microsoft.EntityFrameworkCore.Sqlite 2.2.4
  • Microsoft.EntityFrameworkCore.Design 2.2.4
  • Microsoft.EntityFrameworkCore.Tools 2.2.4
  • Xamarin.Forms 4.2.0.709249

【问题讨论】:

    标签: postgresql sqlite xamarin.forms entity-framework-core entity-framework-migrations


    【解决方案1】:

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

    现在数据库可以在WPF 和Xamarin.Forms 上运行,唯一要做的就是为DbContext 确定机制,因此它将根据平台使用正确的提供程序。

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

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 1970-01-01
      • 2021-11-04
      • 2023-03-14
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      相关资源
      最近更新 更多