由于某种原因,在生成我的数据库时,我得到了一个不必要的外键,我不知道如何停止它。
复制此问题的示例如下:
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public virtual ICollection<PersonRelationships> PersonRelationships { get; set; }
}
public class PersonRelationship
{
public int PersonRelationshipId { get; set; }
public Person PersonOne { get; set; }
public Person PersonTwo { get; set; }
public PersonRelationshipType RelationshipType { get; set; }
}
public enum PersonRelationshipType
{
Mother = 1,
Father = 2,
Sibling = 3
}
在我的DbContext
我有:
DbSet<Person> People { get; set; }
现在奇怪的是,当我使用代码优先迁移生成模型时,该PeopleRelationships
表将获得预期的外键PersonOne_PersonId
,PersonTwo_PersonId
但随后Person_PersonId
也会出现意外情况。我认为这与人的参考有关,但我不确定如何摆脱它,因为我需要那个参考。
我错过了什么?