c# – DbContext继承更新 – 数据库错误
发布时间:2020-12-15 22:00:54 所属栏目:百科 来源:网络整理
导读:我们首先使用EntityFramework代码 我想实现DbContext继承: public class AgileDbContextBase : DbContext{ public DbSetAccount Accounts { get; set; } public DbSetUser Users { get; set; } protected override void OnModelCreating(DbModelBuilder mod
|
我们首先使用EntityFramework代码
我想实现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; }
}
两个上下文都在使用自动迁移.
看起来它试图重新创建已经存在的表.怎么避免呢? 感谢您的时间! 解决方法
重写OnModelCreating方法并配置模型构建器以忽略所需的实体.
查看此博客文章了解更多详情 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
