具有多个数据库架构的EF Core迁移

Ada*_*dam 7 c# sql-server entity-framework ef-migrations entity-framework-core

EF Core 1.1和SQL Server 2016

我们正在运行一个微服务应用程序,其中一些微服务具有独立的几个表.为单个微服务提供许多表的解决方案之一是为这些服务提供一个独特的模式(例如,不是DBO),并将所有这些服务放在一个数据库中(有利于成本和维护).

这在EF 6中运行良好,但是,查看核心中生成的dbo .__ EFMigrationsHistory,看起来核心并没有考虑架构.

我知道EF Core中的迁移已经改为查看代码而不是DB,但我的问题是dbo中记录的版本.__ EFMigrationsHistory表与模式无关.

您是否知道在将迁移写入数据库时​​如何使EF Core架构感知?

NB builder.HasDefaultSchema(Constants.SCHEMA);已在DBContext中设置.

Smi*_*mit 8

builder.HasDefaultSchema()用于设置模型的模式.MigrationHistory表的配置位不同.你可以在这里阅读更多相关信息

从链接,

最简单的方案是您只想更改表名或模式.这可以使用OnConfiguring中的MigrationsHistoryTable方法(或ASP.NET Core上的ConfigureServices)来完成.这是一个例子.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options.UseSqlServer(
        connectionString,
        x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Run Code Online (Sandbox Code Playgroud)