Я разрабатываю приложение-плагин с EF6, сначала код.
У меня есть один основной контекст с сущностью под названием 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
?