При первой миграции кода ядра EF автоматически ставится префикс таблиц с помощью db_owner - PullRequest
0 голосов
/ 28 ноября 2018

В настоящее время я использую первые миграции кода EF Core 2.1 для создания схемы SQL-сервера.Когда я использую следующую команду для создания / обновления моих таблиц на SQL-сервере "

dotnet ef database update

, она ставит мои таблицы перед префиксом" db_owner ". Например," db_owner.drivers ".

Есть лиспособ установить имя префикса db из моего файла конфигурации ef в коде? Или это то, что на самом деле настраивается в самом SQL-сервере?

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете использовать ToTable в вашем dbContext для установки имени схемы, если вы не укажете это, ядро ​​EF будет использовать dbo по соглашению.

 public class MyDbContext
 {
   private string schemaName = "MyPrefix";
   protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyEntity>().ToTable("MyTable", schemaName );
    }
 }   

Если вы хотите установить schemaNameв файле конфигурации (appsettings.json):

{
  "schemaName": "MyPrefix",
}

Вы можете получить конфигурацию в файле dbContext, используя DI.

public class MyDbContext
{
    private readonly IConfiguration _configuration;     
    public MyDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration)
        : base(options)
    {
        _configuration = configuration;
    }

    ...// DbSet<>

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<MyEntity>().ToTable("MyTable", _configuration["schemaName"]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...