2017-03-06 48 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