2014-04-04 34 views
0

這些方法是通過VS2012和C#中的實體框架和Linq創建的,因此我想調用名爲Categories的模型。 每個類別都有一個parentID(null或set),其中包含多重性。 因此,我們有1父類,那類有兒童類,一使用EF和Linq並排除select語句中的屬性

System.Data.Objects.DataClasses.EntityCollection<<Category>> 

然而,每個類別包含數據的海量負荷的一個屬性,我們只需要加載該特定財產父母。 當前的代碼:

selectedCategory = categoryObjectContext.Category.Single<Category>(cat => cat.CategoryID == selectedID); 
+1

什麼是確切的問題? – Neel

+0

不好意思,問題是:我怎樣才能選擇父母,並得到孩子,但只能爲孩子選擇屬性而不是整個孩子的班級。 –

回答

1

你需要使用.Select()儀從你查詢的結果,並使用Where()子句來過濾數據:

int parentID = categoryObjectContext.Category.Where(cat => cat.CategoryID == selectedID) 
        .Select(cat => cat.parentID) // Project the query results into a single field 
        .First(); // This will only select one column 
+0

好東西!雖然,我怎麼能這樣得到父母?選擇父母仍然會自動填充所有孩子。 –

+0

您可以在'Select'語句中選擇任何類別的屬性,並且只有選定的屬性將被撤回,例如, '.Select(cat => cat.parent.parentCategoryName)'只會拉回父類別名稱的字符串。 '.Select(cat => cat.parent)'選擇整個父母 – CodingIntrigue

+0

問題出在這裏,選擇父母會導致同樣的問題。 父類擁有一個包含子元素的屬性數組,這又一次在每個子元素中保存了大量的數據。也許我應該補充我想要的孩子,只是不想要他們的每一個屬性。 –