2017-05-24 55 views
0

我想要做的這些對象之間的許多一對多的關係:的EntityFramework定製多對多沒有導航屬性

class Flyer { 
    Guid Id; 
    virtual ICollection<Address> Stores; 
} 

和:

class Address { 
    Guid Id; 
} 

當然,這些模型簡化。

而我不想導航屬性爲FlyerAddress之內,因爲Address也與其他對象有關係。有可能的?

流利的API只

+0

「我不想要一個導航屬性...」 - 那麼你不希望有一個關係,多對多變得不相關/未定義。無論如何,你的意思是什麼? –

+0

'我不想要一個導航屬性Flyer inside Address,因爲Address也與其他對象有關.'如果每個鏈接表都是DB中的一個單獨的FK列,那麼可以爲每個連接類型放置一個導航屬性。如果您使用單個列輸入可引用多個表中的一個的FK,那麼您的工作超出了EF提供的範圍,並且需要添加自定義邏輯來轉換您的FK(這仍然需要屬性在您的「地址」中)轉換爲「Flyer」或任何其他連接類型。對於後者的選擇:你有什麼嘗試? – Flater

回答

0

您如何識別地址屬於什麼,如果它可以屬於多個不同的表?你有一個聯合表嗎?像AddressToFlyer表建立兩個表之間的關係?

當我有複雜的查詢需要發生像這樣一個表可以被許多表使用時,我創建連接表,並且通常創建視圖來處理連接併爲我提供我想要的數據,這樣我就可以在Entity Framework中做一個選擇,而不用擔心Navigational屬性,然後在實體框架中實現所述視圖,就像你在常規表中一樣。