【发布时间】:2017-06-15 02:15:56
【问题描述】:
由于某种原因,在生成我的数据库时,我得到了一个不必要的外键,我不知道如何停止它。
复制此问题的示例如下:
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。我认为这与人的参考有关,但我不确定如何摆脱它,因为我需要那个参考。
我错过了什么?
【问题讨论】:
-
这就是史蒂夫的答案。逆属性修复了它。太棒了,谢谢!
-
您应该将其移至答案,以便我将其标记为答案!
-
不用担心,一点点努力。如果您正确连接 FK,流畅的方式应该也可以工作。
标签: .net entity-framework ef-code-first entity-framework-6 ef-code-first-mapping