Как добавить миграцию в многопроектное решение? - PullRequest
0 голосов
/ 26 февраля 2020

Я использую VSCode и изо всех сил пытаюсь добавить свою первую миграцию в «многопроектное решение». Обычно я делал по одному .csproj на проект, но недавно я решил поиграть с файлом .sln и ударил по стене во время миграции. Это структура моего проекта:

MyApi
  - src
     - MyApi.Domain
     - MyApi.Infrastructure (this is where my DbContext is)
     - MyApi.WebApi (this is where my connection sting is)
  - tests
  - MyApi.sln

Я пытаюсь создать базу данных в базе данных PostgreSQL, поэтому это пакеты, которые я установил в моем проекте MyApi.Infrastructure.

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.2">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    <PackageReference Include="Microsoft.NETCore.App" Version="2.2.8" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.2" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.1" />
  </ItemGroup>

Я пытаюсь запустить миграцию, находясь в проекте Infrastructure, но получаю эту ошибку:

Невозможно создать объект типа 'MyDbContext'. Для различных шаблонов, поддерживаемых во время разработки, см. https://go.microsoft.com/fwlink/?linkid=851728

Это не удивительно, потому что он даже не знает строку подключения.

Как мне обрабатывать миграции в такой структуре проекта?

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Попробуйте использовать это в папке root:

dotnet ef --startup-project src\MyApi.WebApi\  migrations add MyMigration --project src\MyApi.Infrastructure
1 голос
/ 26 февраля 2020

Go в MyApi.Infrastructure и команду запуска:

dotnet ef --startup-project ..\MyApi.WebApi\ migrations add First_Migration -c DBContextName
...