我無法在EF6中先使用代碼連接多對多關係,然後再創建一個傳遞關聯。EF6多對多非關鍵列
有三個類:Person,Tag和Passing。
每個人都有一個可選的圍脖。
每個標籤都有一個可選的圍兜,不是唯一的。
每次通過都有一個必需的TagId。
我想通過獲取所有標籤與同一個Bib,然後獲取與這些標籤中的每一個關聯的所有Passings,來訪問與某人關聯的所有通行證。
我試過在我的DBContext類中使用DBModelBuilder,但無法使它正常工作,而EF6似乎試圖生成一箇中間表反正,這似乎是不必要的。
public class Person
{
[Key]
public int PersonId { get; set; }
...
public string Bib { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
public virtual ICollection<Passing> Passings
}
public class Tag
{
[Key]
public string TagId { get; set; }
public string Bib { get; set; }
public virtual ICollection<Passing> Passings { get; set; }
public virtual Person Person { get; set; }
}
public class Passing
{
[Key]
public int PassingId { get; set; }
...
public string TagId { get; set; }
public virtual Tag Tag { get; set; }
}
我在這裏看不到多對多的關係。 EF建立什麼中間表?另外,我不明白爲什麼「Bib」上的信息與此相關。 –
圍兜是該協會的來源。 Tag上的Person屬性應該獲得具有相同bib(或null)的Person,並且Person上的Passings屬性應該獲得具有相同bib的標籤列表。這可能是EF不可能的,但我希望它是這樣,所以我不需要一個混亂的解決方法。 – Nick