从视图中的IEnumerable中选择或过滤

时间:2016-03-23 04:06:34

标签: c# asp.net-mvc linq

这是模型:

public class PolicyDetail
{
    public Policy Policy { get; set; }
    public IEnumerable<Insured> Insured { get; set; }
    public IEnumerable<Risk> Risk { get; set; }
    public IEnumerable<Construction> Construction { get; set; }
}

施工就像这样:

public class Construction
{
    public int ConstructionID { get; set; }
    public string ConstructionType { get; set; }
}

在DB中,只有4行。它基本上是一个枚举。

在Risk中有这个属性:

public int ConstructionID { get; set; }

在将模型发送到视图之前,我们填写PolicyDetail中的每个对象,其中被保险人和风险是政策的子女。每次加载所有四行时都会加载构造。

因此,在模型中,我们列出了所有的风险。当我到达Construction时,我想显示所选的Construction Type。

正如预期的那样:

@foreach (var item in Model.Risk)
{
    ... other items in Risk
    @item.ConstructionID
}

只显示ID。 1,3,4等我尝试编写一个lynq查询,根据item.ConstructionID从Model.Construction中提取ConstructionType。我正在玩弄像:

这样的事情
@Model.Construction.Select(a => a.ConstructionID == item.ConstructionID).First()

但到目前为止,我所尝试的一切都没有。

修改

更清楚,这就是我想要的:

SELECT ConstructionType FROM Model.Construction WHERE ConstructionID = type.ConstructionID 

答案:

@ Model.Construction.First(a =&gt; a.ConstructionID == item.ConstructionID).ConstructionType

1 个答案:

答案 0 :(得分:2)

尝试:

@Model.Construction.First(a => a.ConstructionID == item.ConstructionID).ConstructionType;