Verwenden ein separates ProjektUsing a Separate Project

Empfiehlt es sich zum Speichern Ihrer Migrations in einer anderen Assembly als eine enthält die DbContext.You may want to store your migrations in a different assembly than the one containing your DbContext. Sie können auch diese Strategie mehrere Sätze von Migrationen, z. B. darin, dass für Entwicklung und andere für Upgrades von Version zu Version.You can also use this strategy to maintain multiple sets of migrations, for example, one for development and another for release-to-release upgrades.

AufgabeTo do this...

  1. Erstellen Sie eine neue Klassenbibliothek.Create a new class library.

  2. Fügen Sie einen Verweis auf die DbContext-Assembly hinzu.Add a reference to your DbContext assembly.

  3. Verschieben Sie die Migrationen und Modelldateien für die Momentaufnahme auf die Klassenbibliothek.Move the migrations and model snapshot files to the class library.

    • Wenn Sie alle noch nicht hinzugefügt, fügen Sie der DbContext-Projekt einen Verweis hinzu hinzu, und verschieben Sie sie.If you haven't added any, add one to the DbContext project then move it.
  4. Die Assembly Migrationen zu konfigurieren:Configure the migrations assembly:

    options.UseSqlServer(
        connectionString,
        x => x.MigrationsAssembly("MyApp.Migrations"));
    
  5. Fügen Sie einen Verweis auf die Assembly Migrationen aus der Startassembly hinzu.Add a reference to your migrations assembly from the startup assembly.

    • Wenn dies bewirkt, eine zirkuläre Abhängigkeit dass, aktualisieren Sie den Ausgabepfad der Klassenbibliothek:If this causes a circular dependency, update the output path of the class library:

      <PropertyGroup>
        <OutputPath>..\MyStarupProject\bin\$(Configuration)\</OutputPath>
      </PropertyGroup>
      

Wenn Sie alles richtig gemacht haben, sollten Sie neue Migrationen zum Projekt hinzufügen können.If you did everything correctly, you should be able to add new migrations to the project.

Add-Migration NewMigration -Project MyApp.Migrations
dotnet ef migraitons add NewMigration --project MyApp.Migrations