Entity framework 使用EF映射对象

Entity framework 使用EF映射对象,entity-framework,model,ef-code-first,mapping,Entity Framework,Model,Ef Code First,Mapping,我遇到了一些关于先用EF代码映射对象的问题 我有三门课: -雇员 -评估被雇佣者 -评估 员工与AssessmentOnEmployee之间存在一对多关系 assessmentonemployee与assessment有一对一的关系 代码: 公共类assessmentonemployee { public int assessemontonemployeeid{get;set;} 公共日期时间CreatedDate{get;set;} 公共虚拟评估评估{get;set;} 公共虚拟int Ass

我遇到了一些关于先用EF代码映射对象的问题

我有三门课:

-雇员 -评估被雇佣者 -评估

员工与AssessmentOnEmployee之间存在一对多关系 assessmentonemployee与assessment有一对一的关系

代码:

公共类assessmentonemployee
{
public int assessemontonemployeeid{get;set;}
公共日期时间CreatedDate{get;set;}
公共虚拟评估评估{get;set;}
公共虚拟int AssessmentUserId{get;set;}
公共虚拟员工评估用户{get;set;}
}
公营雇员
{
public int EmployeeId{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection AssessmentOnEmployees{get;set;}
}
AppContext.cs:

modelBuilder.Entity<AssesmentOnEmployee>()
            .HasRequired(t => t.Assesments)
            .WithRequiredDependent(t => t.AssesmentOnEmployee);


modelBuilder.Entity<Employee>()
            .HasMany(t => t.AssesmentOnEmployees)
            .WithRequired(t => t.AssesmentUser).HasForeignKey(x => x.AssesmentUserId);
modelBuilder.Entity()
.has必需(t=>t.assessments)
.具有所需的依赖性(t=>t.对员工的评估);
modelBuilder.Entity()
.HasMany(t=>t.assessmentonemployees)
.WithRequired(t=>t.AssesMintUser)。HasForeignKey(x=>x.AssesMintUserId);
尝试添加迁移和更新数据库时,出现以下错误:

对象“PK_dbo.assessmentonemployee”依赖于列“assessmentonemployeeid”。 ALTER TABLE DROP COLUMN ASSSEMENTONEPOLYEEID失败,因为一个或多个对象访问此列


有人能解决我的问题吗?

可能有很多问题。似乎,
assessemontonemployee
表已经存在,您正试图修改它,但它违反了PK约束

解决此问题的最简单方法是删除现有表并再次生成迁移,使用
addmigration YourLastMigrationName-force


如果这不能解决您的问题,请在下面留下评论,然后我们可以尝试另一种方法。

它不起作用,我无法找出哪里出了问题。在运行添加迁移MyLastMigrationName-强制更新数据库后,我仍然收到此消息对象“PK_dbo.AssesmentOnEmployee”依赖于列“AssesmentOnEmployeeId”。由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ASSEMENTONEPOLYEEID失败。显示在迁移脚本文件中生成的代码
modelBuilder.Entity<AssesmentOnEmployee>()
            .HasRequired(t => t.Assesments)
            .WithRequiredDependent(t => t.AssesmentOnEmployee);


modelBuilder.Entity<Employee>()
            .HasMany(t => t.AssesmentOnEmployees)
            .WithRequired(t => t.AssesmentUser).HasForeignKey(x => x.AssesmentUserId);