Sto sviluppando un'applicazione di plug-in con EF6, prima il codice.Entity Framework: condivisione di entità tra diversi DbContexts
Ho un contesto principale con un'entità chiamata User
:
public class MainDataContext : DbContext
{
public MainDataContext(): base("MainDataContextCS") {}
public DbSet<User> Users { get; set; }
}
E poi un altro contesto per PluginX, su un altro progetto che fa riferimento alla base uno:
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; }
}
e questo crea ordinatamente, sullo stesso database (stessa stringa di connessione), la tabella PluginX.Bookings
.
Il problema qui è che l'entità Booking
contiene un riferimento a un'entità User
:
public class Booking
{
public int Id { get; set;}
public virtual User CreationUser { get; set;}
public BookingStatus Status { get; set; }
}
E quando si esegue Add-Migration
per il contesto plug-EF cercherà di creare un altro User
entità chiamata PluginX.User
.
Come può essere risolto? C'è un modo per condividere un'entità comune, in un altro DbContext
?
perché non ereditare PluginContext da MainContext. – hazimdikenli