c# - 使用多个 DB 架构的 EF Core 迁移

标签 c# sql-server entity-framework entity-framework-core entity-framework-migrations

EF 核心 1.1 和 SQL Server 2016

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

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

我知道 EF Core 中的迁移已更改为查看代码而不是数据库,但我的问题是 dbo.__EFMigrationsHistory 表中记录 的版本与模式无关.

您知道我们如何在 EF Core 将迁移写入数据库时​​使其具有架构感知能力吗?

注意builder.HasDefaultSchema(Constants.SCHEMA); 已在 DBContext 中设置。

最佳答案

builder.HasDefaultSchema() 用于设置模型的架构。 MigrationHistory 表的配置略有不同。您可以阅读更多相关信息 here

来自链接,

The simplest scenario is when you just want to change the table name or schema. This can be done using the MigrationsHistoryTable method in OnConfiguring (or ConfigureServices on ASP.NET Core). Here is an example.

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

关于c# - 使用多个 DB 架构的 EF Core 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205602/

相关文章:

c# - EntityContainer 名称必须是唯一的。已定义名称为 'Entities' 的 EntityContainer

c# - 如何使用 .NET 获得以字节缩写形式的人类可读文件大小?

c# - 签名 XML 在 api 门上返回无效签名和错误的签名检查

sql-server - SQL Server 2008 到 SQL Server Compact Edition?

sql-server - SQL Server 2008 : Find out primary/foreign key in Table?

c# - Database.SqlQuery 和 EF 6.1 之间的性能有什么区别吗?

asp.net-mvc - 在 ASP.Net MVC (Microsoft.AspNet.Identity.EntityFramework) 中进行 Facebook 注册时获取姓名和电子邮件详细信息

c# - 为什么我排队的 WCF 消息悄无声息地消失了?

c# - 重新定位到 Windows Phone 8.1

sql - T-Sql 获取行数相同的值