Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Möglicherweise möchten Sie Ihre Migrationen in einem anderen Projekt speichern als das, das Ihr DbContext
enthält. Sie können diese Strategie auch verwenden, um mehrere Gruppen von Migrationen zu verwalten, z. B. eine für die Entwicklung und eine für Release-zu-Release-Upgrades.
Tipp
Sie können das Beispiel dieses Artikels auf GitHubanzeigen.
Schritte
Erstellen Sie eine neue Klassenbibliothek.
Fügen Sie ihrem DbContext-Projekt einen Verweis hinzu.
Verschieben Sie die Migrationen und Modell-Snapshot-Dateien in die Klassenbibliothek.
Tipp
Wenn Sie über keine Migrationen verfügen, generieren Sie eins im Projekt, das den DbContext enthält, und verschieben Sie es. Dies ist wichtig, da der Befehl "Add-Migration" den DbContext nicht finden kann, wenn das Migrationsprojekt keine vorhandene Migration enthält.
Konfigurieren Sie die Migrationsassembly:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
Fügen Sie einen Verweis auf Ihr Migrationsprojekt aus dem Startprojekt hinzu.
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
Wenn dies zu einer Zirkelabhängigkeit führt, können Sie stattdessen den Basisausgabepfad des Migrationsprojekts aktualisieren:
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
Wenn Sie alles richtig ausgeführt haben, sollten Sie in der Lage sein, dem Projekt neue Migrationen hinzuzufügen.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations