Мы используем EntityFramework кода первого Я хочу реализовать наследование DbContext как:DbContext наследование ошибка обновления-базы данных
public class AgileDbContextBase : DbContext
{
public DbSet<Account> Accounts { get; set; }
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// base.OnModelCreating(modelBuilder);
// TODO configure relations here!
modelBuilder.Configurations.Add(new AccountEntityConfiguration())
.Add(new UserEntityConfiguration());
}
}
и
public class LoadContext : AgileDbContextBase
{
#region Public Properties
public DbSet<ProjectLoadEstimate> ProjectLoadEstimates { get; set; }
public DbSet<OccupationType> OccupationTypes { get; set; }
public DbSet<LoadReport> LoadReports { get; set; }
#endregion
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new ProjectLoadEstimateConfiguration())
.Add(new OccupationTypeEntityConfiguration())
.Add(new LoadReportEntityConfiguration());
}
}
один из объектов использует еще один, который находится в AgileDbContextBase
, а именно:
public class LoadReport : BaseEntity
{
/// <summary>
/// The date of load report has been created
/// </summary>
public virtual DateTime Created { get; set; }
/// <summary>
/// The project manager
/// </summary>
public User ProjectManager { get; set; }
/// <summary>
/// The Id of project manager
/// </summary>
public int ProjectManagerId { get; set; }
}
оба контексты используют автоматические миграции. Проблема заключается в том, что, когда я пытаюсь обновить базу данных по-LoadContext
PackageManager говорит, что
Существует уже объект с именем «Счета» в базе данных.
Похоже, что он пытается воссоздать таблицу, которая уже существует. Как этого избежать? Как узнать код, который из LoadContext
ДОЛЖЕН создавать ТОЛЬКО таблицы в базе данных, которые определены как DbSet <> в LoadContext
? (возможно, обходное решение)? P.S. Оба контекста используют ту же строку соединения.
Благодарим вас за внимание!