Zajmuję się tworzeniem wtyczki z EF6, kod pierwszy.Entity Framework: Udostępnianie obiektów w różnych kontekstach DbContours
Mam jeden główny kontekst z podmiotem o nazwie User
:
public class MainDataContext : DbContext
{
public MainDataContext(): base("MainDataContextCS") {}
public DbSet<User> Users { get; set; }
}
A potem inny kontekst PluginX, na innym projekcie, który odwołuje się do jednej bazy:
public class PluginDataContext : DbContext
{
public PluginDataContext() : base("MainDataContextCS") {
}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.HasDefaultSchema("PluginX");
base.OnModelCreating(modelBuilder);
}
public DbSet<Booking> Bookings { get; set; }
}
I to starannie tworzy, na tej samej bazie danych (ten sam ciąg połączenia), tabela PluginX.Bookings
.
Problem polega na tym, że jednostka Booking
zawiera odniesienie do User
jednostki:
public class Booking
{
public int Id { get; set;}
public virtual User CreationUser { get; set;}
public BookingStatus Status { get; set; }
}
i kiedy uruchomiony Add-Migration
dla kontekstu wtyczki EF będzie starał się stworzyć kolejny User
podmiot zwany PluginX.User
.
Jak można to rozwiązać? Czy istnieje sposób udostępniania wspólnego elementu w innym DbContext
?
dlaczego nie dziedziczymy PluginContext z MainContext. – hazimdikenli