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方法并配置模型构建器以忽略所需的实体.
查看此博客文章了解更多详情 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |