複雜的關係花了這麼多時間試圖得到這個工作後建議,我不得不承認,我靠近拉我的頭髮,並希望得到一些幫助,實際上發生之前!需要幫助,並在創造EF 4.1
這是很難解釋的實際應用斷章取義 - 這是我能想到的最好的例子。
public class TheObject{
public int ID {get;set;}
public string name {get;set;}
public int? CategoryNavID {get;set;}
public virtual Category CategoryNav {get;set;}}
public class CategoryNav{
public int id {get;set;}
public virtual ICollection<Category> Category {get;set;}}
public class Category{
public int ID {get;set;}
public string name {get;set;}
//The category this is currently in.
public int CategoryNavID
//To create sub categories.
public int? CategoryID {get;set;}
public virtual Category Category {get;set;}}
因此,基本上,有一堆對象的,對象可以有許多種類附加,和進一步於此,一個類別可以具有附接(一個無限級)多個類別。
再次,這是很難斷章取義的解釋 - 這是不實際的系統,但是,這是最終的目標,我想實現。
很坦率地說,我一直在努力做到這一點,並且我不確定我是否最好使用CategoryNav類,或者如果有更好,更直接的方法來做到這一點。
我只是想一個解決方案,我可以很容易地得到一個對象,然後去了所有類別,那麼所有的子類別,無限的水平。 (目前,我正在考慮獲取對象,那麼如果CategoryNavID不爲空,請獲取所有內容,並且基本上繼續對所有返回的類別執行此操作)
我已經非常接近這個了,但是,我只是不能解決所需的EF FluentAPI/Data Annotations,以便將多個鏈接從Category重新導入Category nav。
最後,我還想盡可能獲得一個CategoryNav
/ID,並獲取它所屬的原始對象 - 即使它是最後一個子類別 - 鏈條中的20個。這完全沒有要求,因爲我有邏輯*
- 我只是確定我不是最有效的方法。 - 目前認爲在類別中創建「TheObject」FK會更容易 - 我知道你不應該在不需要的地方重複數據,但是,我認爲這將是迄今爲止最簡單的解決方案。
*
目前,我正在走很長的路程 - 獲取類別/ Nav的ID,檢查它是否存在爲Object/CategoryNavID
,如果不存在,則返回到類別,然後搜索將它作爲categoryID的任何類別,然後獲取該類別ID,並基本上保持循環此操作,直到找到頂級對象。
無論如何,所有/任何幫助將大大讚賞!很高興回答任何問題。
我希望這讀起來很好,如果沒有,我把它歸咎於編碼整天,幾乎沒有在哪裏....請讓我知道,我會在早上重新編輯/嘗試整理。 – Wil