内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我有两个实体,一对多。当实体框架创建表时,它会创建两个外键,一个用于我用FLUENT接口指定的键,另一个用于IC管束。我该如何处理重复的外键?
public class Person { public long RecordId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } public string Username { get; set; } public long DepartmentId { get; set; } public virtual Department Department { get; set; } } public class Department { public long RecordId { get; set; } public string Name { get; set; } public virtual ICollection<Person> People { get; set; } } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Person>() .HasRequired(p => p.Department) .WithMany() .HasForeignKey(p => p.DepartmentId) .WillCascadeOnDelete(false); }
您必须明确地指定关联的多个端:
modelBuilder.Entity<Person>() .HasRequired(p => p.Department) .WithMany(d => d.People) .HasForeignKey(p => p.DepartmentId) .WillCascadeOnDelete(false);