2009-11-13 118 views
1

我有兩個EF實體。一個有一個名爲HouseNumber的屬性。另一個有兩個屬性,一個叫StartHouseNumber,另一個叫EndHouseNumber。ADO.NET實體框架按值域的實體關聯

我想基於HouseNumber落在StartHouseNumber和EndHouseNumber之間來創建這些元素之間的多對多關聯。但是,我似乎只能在GUI中獲得等號運算符。

有沒有一種方法我錯過了完成範圍這種關聯?

回答

1

理論上你可以這樣做,參見this post創建一個由視圖支持的關聯。

但正如其他人所說,這可能不是一個好主意。

亞歷

1

因此,在對這個主題進行了更多的閱讀之後,答案是你不能這樣做,但是這也是一種不希望發生的行爲。

實體框架中的關聯必須是可讀寫的。如果我創建了我描述的關聯,如果我將其中一個實體添加到其他實體的關聯集合中,會發生什麼? HouseNumber將選擇什麼值使其落入開始值和結束值之間?

要做到這一點的正確方法是編寫一個幫助函數,該函數接受HouseNumber的參數,並將其放置在第二個實體的手形編碼的部分類上。你也可以寫一個只讀屬性來執行查找或一個getter方法。或者,您可以在數據庫中編寫一個存儲過程,然後將其導入到實體中。

1

就我所知,你不能用關聯來做到這一點,但你可以用查詢來做到這一點。