如何定义架构 table 级别
How to define schema table level
我的应用程序使用 EF Core 2.1 和 C#。
出于某种原因,我希望一些表的架构为 dbo
,而其他表的架构为 app
public class MyAppContext : DbContext
{
private const string _dbSchema = "app";
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(_dbSchema);
modelBuilder.ApplyConfiguration(new RegionConfiguration());
base.OnModelCreating(modelBuilder);
}
}
虽然对于某些实体,我想覆盖默认架构并进行设置。
public class RegionConfiguration : IEntityTypeConfiguration<Region>
{
public void Configure(EntityTypeBuilder<Region> builder)
{
// Didn't find any such method -> builder.HasSchema("dbo");
builder.HasKey(x => x.RegionId); //Primary Key
}
}
如何解决这个问题?
使用ToTable方法:
public class RegionConfiguration : IEntityTypeConfiguration<Region>
{
public void Configure(EntityTypeBuilder<Region> builder)
{
builder.HasKey(x => x.RegionId); //Primary Key
builder.ToTable("TableName", "dbo");
// or builder.ToTable(nameof(<entity>), "dbo");
}
}
作为一种选择,您还可以使用 DataAnnotations 作为 FluentAPI 的替代方法。两个都很好
[Table("Region", "dbo")]
public class Region {}
我的应用程序使用 EF Core 2.1 和 C#。
出于某种原因,我希望一些表的架构为 dbo
,而其他表的架构为 app
public class MyAppContext : DbContext
{
private const string _dbSchema = "app";
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(_dbSchema);
modelBuilder.ApplyConfiguration(new RegionConfiguration());
base.OnModelCreating(modelBuilder);
}
}
虽然对于某些实体,我想覆盖默认架构并进行设置。
public class RegionConfiguration : IEntityTypeConfiguration<Region>
{
public void Configure(EntityTypeBuilder<Region> builder)
{
// Didn't find any such method -> builder.HasSchema("dbo");
builder.HasKey(x => x.RegionId); //Primary Key
}
}
如何解决这个问题?
使用ToTable方法:
public class RegionConfiguration : IEntityTypeConfiguration<Region>
{
public void Configure(EntityTypeBuilder<Region> builder)
{
builder.HasKey(x => x.RegionId); //Primary Key
builder.ToTable("TableName", "dbo");
// or builder.ToTable(nameof(<entity>), "dbo");
}
}
作为一种选择,您还可以使用 DataAnnotations 作为 FluentAPI 的替代方法。两个都很好
[Table("Region", "dbo")]
public class Region {}