指定每个表模式的替代方法

问题描述

使用 EF Core、Fluent API,在表级别指定架构如下:

 modelBuilder.Entity<MyRecord>().ToTable("MyRecord","mySchema");

是否有另一种方法可以为一个表或多个表指定架构,而无需将表和架构名称串起来?

仅从编码效率的角度来看,当直接映射到每个表/实体的实体名称时,还必须包含表名称有点多余。

它可以使用 modelBuilder.HasDefaultSchema("mySchema") 全局设置,但这在处理不同架构时无济于事。

解决方法

目前 (EFC 5.x) 没有用于仅设置实体类型模式的公共 fluent API,但通常在这种情况下,您可以改用公共元数据 API。在这种特殊情况下 - SetSchema 方法:

modelBuilder.Entity<MyRecord>().Metadata.SetSchema("mySchema");