Как определить уровень таблицы схемы - PullRequest
1 голос
/ 17 февраля 2020

Я использую 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
    }
}

Как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Как вариант, вы также можете использовать DataAnnotations вместо альтернативы FluentAPI. Оба в порядке.

[Table("Region", "dbo")]
public class Region {}
0 голосов
/ 17 февраля 2020

Использование 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");
    }
}
...