我遇到了一些关于首先使用EF代码映射对象的问题。
我有三个班级:
-Employee -AssesmentOnEmployee -Assesment
员工与AssesmentOnEmployee有一对多的关系 AssesmentOnEmployee与Assement有一对一的关系。
代码:
public class AssesmentOnEmployee
{
public int AssesmentOnEmployeeId { get; set; }
public DateTime CreatedDate { get; set; }
public virtual Assesment Assesments { get; set; }
public virtual int AssesmentUserId { get; set; }
public virtual Employee AssesmentUser { get; set; }
}
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public virtual ICollection<AssesmentOnEmployee> AssesmentOnEmployees { 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);
当我尝试添加迁移和更新数据库时,我收到此错误:
对象&#39; PK_dbo.AssesmentOnEmployee&#39;依赖于列&#39; AssesmentOnEmployeeId&#39;。 ALTER TABLE DROP COLUMN AssesmentOnEmployeeId失败,因为一个或多个对象访问此列。
有没有人可以解决我的问题?
答案 0 :(得分:0)
这可能是很多事情。似乎AssesmentOnEmployee
表已经存在,并且您正在尝试更改它,但它违反了PK约束。
解决问题的最简单方法是使用add-migration YourLastMigrationName -force
删除现有表并再次生成迁移。
如果这不能解决您的问题,请在下面留言,然后我们可以尝试不同的方法。