Основная проблема Entity Framework - Обновление базы данных Создание «пользовательских» схем - PullRequest
0 голосов
/ 10 декабря 2018

Я довольно долго работал над рабочим приложением, использующим .NET Core 2.0 (первоначально 1.0) и EF Core.

Это приложение, разработанное Code-First, поэтому все изменения в базе данных были внесены с помощью миграций.

Вплоть до недавнего развертывания Update-Database будет вносить изменения правильно, однако в последнее время оносоздает новые схемы каждый раз при добавлении модели (вместо добавления в схему dbo, как обычно).

Пример:

New Class Model: Test.cs
Table created in Database: DOMAIN\CurrentUser.Test

Есть идеи, почему это происходит?

Полагаю, я могу глубоко вникнуть в миграционный модуль, чтобы выяснить, как он принимает решения Схемы, но, похоже, что-то простое должно было измениться, чтобы изменить поведение.

"DOMAIN \ CurrentUser" имеетПрава dbo на данный сервер.

1 Ответ

0 голосов
/ 12 декабря 2018

Для изменения схемы с EF Core, попробуйте настроить с builder.HasDefaultSchema("newschema"); или builder.Entity<User>().ToTable.

Для изменения схемы для всех таблиц.

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<User> User { get; set; }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        builder.HasDefaultSchema("newschema");
    }
}

Для изменения схемы для конкретной таблицы.

public class ApplicationDbContext : IdentityDbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public DbSet<User> User { get; set; }
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        builder.Entity<User>().ToTable("User", "newSchema");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...