Правильный способ установить несколько параметров AddDbContext ()? - PullRequest
0 голосов
/ 30 июня 2018

У меня есть решение для моего сайта, разделенное на несколько проектов, в одном из которых есть классы для базы данных. Когда я пытался сгенерировать первую миграцию, я получаю следующую ошибку:

Entity Framework Core 2.0.3-rtm-10026 инициализировал 'SiteDBContext' используя поставщика «Microsoft.EntityFrameworkCore.SqlServer» с параметрами: Ни один

Измените сборку миграции с помощью DbContextOptionsBuilder. Например. options.UseSqlServer (соединение, b => b.MigrationsAssembly ( "")). По умолчанию миграции сборка - это сборка, содержащая DbContext.

Измените целевой проект на проект миграции, используя Раскрывающийся список проекта по умолчанию консоли диспетчера пакетов или выполнение "dotnet ef" из каталога, содержащего миграции проект.

Ваш целевой проект '' не соответствует вашим миграциям сборка ». Либо поменяйте целевой проект, либо поменяйте Сборка ваших миграций.

Измените сборку миграции с помощью DbContextOptionsBuilder. Например. options.UseSqlServer (соединение, b => b.MigrationsAssembly ( "")). По умолчанию миграции сборка - это сборка, содержащая DbContext. Изменить цель проект для проекта миграции с помощью диспетчера пакетов Раскрывающийся список проекта консоли по умолчанию или путем выполнения «dotnet ef» из каталога, содержащего проект миграции.

Я хочу добавить опцию MigrationsAssembly рядом с моей строкой подключения, но не могу понять, как именно это сделать.

Мой текущий код:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddDbContext<SiteDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("FFInfoDB")));
    }

Я пытался:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddDbContext<SiteDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("FFInfoDB"), options.MigrationsAssembly("FFInfo.DAL")));
    }

но я получаю ошибку

DbContextOptionsBuilder не содержит определения для MigrationsAssembly

Как правильно добавить этот второй параметр?

1 Ответ

0 голосов
/ 30 июня 2018

Вы довольно близки, но второй уровень конфигурации выполняется через Action<SqlServerDbContextOptionsBuider>, а не через оригинальный параметр Action<DbContextOptionsBuilder> options.

Итак, используйте это:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddDbContext<SiteDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("FFInfoDB"), sqlServerOptions => sqlServerOptions.MigrationsAssembly("FFInfo.DAL")));
}
...