我正在開發一個帶EF6的插件應用程序,代碼優先。實體框架:跨不同的DbContexts共享實體
我有一個實體的一個主要方面稱爲User
:
public class MainDataContext : DbContext
{
public MainDataContext(): base("MainDataContextCS") {}
public DbSet<User> Users { get; set; }
}
然後另一個上下文PluginX,在另一個項目,引用基地之一:
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; }
}
這整齊地創建,在同一個數據庫(相同的連接字符串)上,PluginX.Bookings
表。
的這裏的問題是,Booking
實體包含User
實體的引用:
public class Booking
{
public int Id { get; set;}
public virtual User CreationUser { get; set;}
public BookingStatus Status { get; set; }
}
而對於插件上下文運行Add-Migration
當EF將嘗試創建另一個User
實體,稱爲PluginX.User
。
這怎麼解決?有沒有辦法共享一個共同的實體,在另一個DbContext
?
爲什麼不從MainContext繼承PluginContext。 – hazimdikenli 2015-01-16 07:32:36