Ich habe ein Projekt Klassenbibliothek namens „Core“, die CoreContext mit Eigenschaften für gemeinsame Klassen definiert:Entity Framework mehrere Projekte mit Code ersten Migrationen
public class CoreContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<UserContactInfo> UserContactInfos { get; set; }
... more common properties ...
}
Dann habe ich mehrere Projekte Bezugnahme auf das „Core“ Projekt und definieren neues Contexts vererben CoreContext:
Project1:
public class Project1Context : CoreContext
{
public DbSet<Foo> Foos { get; set; } //object defined in Project1
}
Projekt2:
public class Project2Context : CoreContext
{
public DbSet<Bar> Bars { get; set; } //object defined in Project2
}
Wenn ich etwas in Project1Context ändern erstelle ich eine neue Migration in Projekt1, die in Ordnung ist, aber wenn ich etwas in das Projekt Kern ändern, sagen wir hinzufügen Eigenschaft Company
-UserContactInfo
werde ich Projekt1 und Project2 gehen und fügen Sie eine neue Migration hinzu und ich werde mit Migrationen zum Core-Projekt in Project1 und Project2 enden.
Meine Frage ist: Gibt es eine Möglichkeit, die Migrationen für CoreContext in den Core-Projekt und Project1Context und Project2Context-Migrationen zu ihrem entsprechenden Projekt und automatisch alle Migrationen im Zusammenhang mit dem Projekt, also wenn ich Project1 starten wird ausgeführt werden eigene Migrationen und CoreContext-Migrationen?
Als Klarstellung, ich habe separate Datenbanken für Projekt1 und Project2 und vor kurzem aktualisiert EF auf Version 6.
Was versuchen Sie damit zu erreichen? Wenn Sie zwei separate Datenbanken haben, benötigen Sie die Änderungen im Basisdatenkontext in den Migrationen für Project1 und Project2. Es scheint mir, dass das, was Sie zu tun versuchen, mehr Aufwand verursachen wird als die Erstellung von Migrationen für beide Projekte. Selbst wenn Sie es können, müssen Sie die Basisänderungen immer noch auf beide Datenbanken anwenden. –