EF Core 1.1和SQL Server 2016
我们正在运行一个微服务应用程序,其中一些微服务具有独立的几个表。为个人微服务提供许多表的解决方案之一是为这些服务提供一个独特的模式(例如,不是DBO),并将所有这些模式放在一个数据库中(有利于成本和维护)。
在EF 6中工作正常,但是,查看核心中生成的dbo .__ EFMigrationsHistory,看起来核心不会考虑架构。
我知道EF Core中的迁移已经改为查看代码而不是数据库,但我的问题是dbo中记录的版本.__ EFMigrationsHistory表与模式无关
您是否知道在将迁移写入数据库时如何使EF Core架构感知?
N.B。 builder.HasDefaultSchema(Constants.SCHEMA);
已在DBContext中设置。
答案 0 :(得分:6)
builder.HasDefaultSchema()
用于为模型设置架构。 MigrationHistory表的配置位不同。您可以阅读更多相关信息here
从链接
最简单的方案是您只想更改表名称或架构。这可以使用OnConfiguring中的MigrationsHistoryTable方法(或ASP.NET Core上的ConfigureServices)来完成。这是一个例子。
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));