У меня была похожая ситуация в моем проекте, и вот что я закончил:
public class PersonModel
{
public int ID { get; set; }
public string Name{ get; set; }
public string Address{ get; set; }
public DateTime? DateofBirth{ get; set; }
public GenderEnum Gender{ get; set; }
public int PersonID { get; set; }
[ForeignKey("PersonID ")]
public PersonDetailModel PersonDetail { get; set; }
public int? MateID { get; set; }
[ForeignKey("MateID")]
public PersonDetailModel PersonDetailforMate { get; set; }
}
public class PersonDetailModel
{
public int ID { get; set; }
public string PhoneNumber{ get; set; }
public string OfficeAddress{ get; set; }
public MarriageStatusEnum MarriageStatus{ get; set; }
}
так что PersonModel
будет иметь два внешних ключа для PersonDetailModel
. Я использую атрибут ForeignKey
, чтобы явно указать EF, какому внешнему ключу принадлежит какое отношение - если вы используете атрибут Foreignkey
, вам не понадобятся конфигурации Fluent API ...
Приведенный выше код создаст вам таблицу PersonModel
в БД, со столбцами PersonId
и MateId
в качестве внешнего ключа.