【发布时间】:2015-03-20 22:37:17
【问题描述】:
我知道有相关主题:two Foreign Keys from same table,但我找不到解决我的问题的方法。我对 EF 很陌生。
我有以下模型类(代码优先):
public class Member
{
[Key]
public int MemberID { get; set; }
public string Name {get; set;}
public string Surname { get; set; }
public virtual ICollection<Marriage> Marriages { get; set; }
}
public class Marriage
{
[Key]
public int MarriageID { get; set; }
public string MarriagePlace { get; set; }
public DateTime MarriageDate { get; set; }
[ForeignKey("Husband")]
public int HusbandID { get; set; }
[ForeignKey("Wife")]
public int WifeID { get; set; }
public virtual Member Husband { get; set; }
public virtual Member Wife { get; set; }
}
我的问题是丈夫和妻子都应该在会员类中连接到同一个婚姻集合。我做到了:
modelBuilder.Entity<Marriage>()
.HasRequired<Member>(m => m.Husband)
.WithMany(m => m.Marriages)
.HasForeignKey(m => m.HusbandID)
.WillCascadeOnDelete(false);
丈夫现在已连接到 Merriages 收藏。但是当我尝试为 Wife 属性添加相同的内容时,一切都会中断:
modelBuilder.Entity<Marriage>()
.HasRequired<Member>(m => m.Wife)
.WithMany(m => m.Marriages)
.HasForeignKey(m => m.WifeID)
.WillCascadeOnDelete(false);
我收到一个错误:
错误 1 指定的架构无效。错误:未加载关系“FamilyTree.Models.Marriage_Husband”,因为“FamilyTree.Models.Member”类型不可用。 C:\Users\Sumiteru\Documents\Visual Studio 2013\Projects\FamilyTree\FamilyTree\App.xaml 9 21 FamilyTree
【问题讨论】:
标签: c# .net entity-framework ef-code-first