這裏有一個有趣的位,我以前沒有遇到過。我們使用註釋手動創建在EF6一個多一對多的關係:不再贅述EF6中的多對多實體
public class User
{
public int Id { get; set; }
}
public class School
{
public int Id { get; set; }
}
public class UserSchool
{
[Key]
[Column(Order = 1)]
public int UserId { get; set; }
[Key]
[Column(Order = 2)]
public int SchoolId { get; set; }
[Required]
public virtual User User { get; set; }
[Required]
public virtual School School { get; set; }
}
(其它附加的屬性 - 我只想說,我們對結表的附加屬性,因此爲什麼我們已經創造了它明確)
所以這工作得很好 - 我們可以使用流暢的API來映射覆雜的鍵,它是無關緊要的。基本上我們已經通過交匯點將兩個標準表加入了多對多。優勝者。
現在,我們需要加入結表(UserSchool
)到另一個表,也可作爲許多一對多:
public class IPAddress
{
public int Id { get; set; }
public string IPAddress { get; set; }
}
public class UserSchoolIPAddress
{
?? what to put in here
public virtual UserSchool UserSchool { get; set; }
public virtual IPAddress IPAddress { get; set; }
}
我都試過了一口流利的API映射和通過命名約定和註釋來指定ID屬性:流暢的API映射只是失敗,因爲我認爲它不喜歡使用導航實體的屬性;帶註釋的ID綁定僅在表模式中第二次複製了UserSchool
屬性,導致我們出現同步問題。
那麼,有沒有人遇到過這種情況,並找到了解決方案?
正如我在我原來的問題提到的,我們實際存儲的數據對象作爲結映射的性能 - 例如'UserSchool'對象實際上有連接其它外鍵和權限級別。所以我們需要手動配置它們。 – Katstevens