2017-03-06 46 views
-1

enter image description here我如何使LINQ查詢從子類別獲取類別明智的數據ID

我有EDMX模型。我有三個表格:CostType,SubCostTypeProjectCostSubCostTypeCostTypeProjectCost有關係,與SubCostType有關。我不能從ProjectCost表中得到CostType明智的數據嗎? (我加入CostTypeProjectCost一個額外的關係應該怎麼辦呢?) 在ProjectCost表,如果我存儲SubCostType與他人信息的話,我怎麼能得到的數據與CostType明智?我目前的關係是否與額外關係一致? 有沒有需要接點表?我如何使LINQ查詢獲得我想要的結果? 我只有CostTypeID從用戶那麼我應該告訴他有關這個CostTypeID的所有數據。但在ProjectCost表我只有SubCostTypeID

====================================我的預期結果==================== 用戶從下拉列表中選擇CostType ID,然後我必須向他們展示與該CostType相關的所有ProjectCost數據。但在ProjectCost表中,我只有SubCostTypeID。

+0

你能舉一個預期的查詢結果的例子嗎? – Sami

+0

我編輯了我的問題與預期的結果。 @Sami – Fawel

+0

但是你的'ProjectCost'模型似乎有一個'CostTypeID'的引用。它不工作,或爲什麼你不能使用它?或者我誤解了這個問題。 – Sami

回答

2

您無需爲CostTypeProjectCostCostType列添加額外關係。如果我理解正確,你有一個項目;項目指ProjectCost; ProjectCostSubCostTypeSubCostTypeCostType。因此,您可以從SubCostType訪問帶有列SubCostType的CostType,表ProjectCost中的列CostType是不必要的。

來到您的問題,您可以選擇它與此查詢;

var result = (from projectCost in db.ProjectCost 
       join subCostType in db.SubCostType on projectCost.SubCostType equals subCostType.SubCostTypeId 
       join costType in db.CostType on subCostType.CostType equals costType.CostTypeId 
       where costType.CostTypeId == selectedCostTypeId 
       select projectCost); 
+0

不,你不明白。項目涉及ProjectCost; ProjectCost引用SubCostType並且SubCostType具有CostType。在圖像上,我與CostType形成了額外的關係,因爲它不需要額外的關係就可以獲取CostType明智的數據。 – Fawel

+0

@Fawel ok,現在我理解並編輯了它們之間的關係。現在是否正確? –

+0

太棒了!有用!這很簡單,但我雖然複雜的方式。 – Fawel