哪種模型將多個一對一關係建模到同一個表(sqlite-net-extensions)的最佳方法是什麼?我正在尋找這樣的解決方案:將多個一對一關係映射到同一個表
Class WayBill
{
[PrimaryKey, AutoIncrement]
public int Id {get; set;}
[ForeignKey(typeof(Organization))]
public int ConsignerId {get; set;}
[OneToOne]
public Organization Consigner {get; set;}
[ForeignKey(typeof(Organization))]
public int ConsigneeId {get; set;}
[OneToOne]
public Organization Consignee {get; set;}
}
Class Organization
{
[PrimaryKey, AutoIncrement]
public int Id {get; set;}
public string Name {get; set;}
}
很明顯,上述不起作用。
我也考慮過其他的選擇太多:
創建表(WayBillOrganization)捕獲組織的作用: 運單 - 將要求>組織
- >> WayBillOrganization將OneToMany屬性反轉到組織中。
手動處理事物(即僅在WayBill類中存儲主鍵並單獨加載組織)。
選項2.是我想要避免的。組織與許多其他類別(不在我的例子中)相關,即使在運單的情況下,我還沒有將其他幾個關係(例如運輸公司,貨物付款方,貨運代理等)列入其中。此外,我寧願只在需要導航時使用反轉屬性(例如,我不使用組織來查找運單,因此反轉屬性只是額外的負擔。)
選項3.不是那也很吸引人。
所以選項1似乎是要走的路。但在去那裏之前,我想知道我的例子中的完美世界解決方案是否確實不可能。
所以,我的問題是:有沒有一種方法來模擬多個單向 OneToOne關係沒有顯式聲明的逆性質?
完美!謝謝** redent84 **。你爲我節省了幾個小時的工作。 – user2261054
很高興我能幫到你。如果它解決了您的問題,請考慮將upvoting/marking標記爲已接受,以便其他人可以找到它。 – redent84
感謝您輸入(Y)。 順便說一句,最好是使用連接表,而不是直接在上面的場景中映射。 – harshlal028