需要帮助编写 LINQ 语句

Isa*_*son 2 c# linq entity-framework

我有一个与表具有一对多关系的许可实体/表PermitDetailsPermitDetails包含有关许可证表中所示气体的限制信息。限值以特定单位表示(GPerBhpHr、LbPerHr 等...)。

许可 许可证详情 许可证构成类型

我有一组属性,我的视图数据绑定到(WPF/MVVM),它们代表每个 PermitConstituentType 及其相应的“限制”。例如:

    // this set of properties is duplicated for each gas type (PermitConstiutentType)
    public double NitrousOxidesPpmAt15PercentOxygen {get; set;}
    public double NitrousOxidesLbMmbtuHHV {get; set;}
    public double NitrousOxidesGbhph {get; set;}
    public double NitrousOxidesC3LbHr {get; set;}
    public double NitrousOxidesTpy {get; set;}
Run Code Online (Sandbox Code Playgroud)

我想使用 EF/LINQ 查询 PermitDetails 表,并为每个 PermitConstituentType 返回与 PermitDetails 计量单位相对应的值,以便可以将其分配给正确的属性。

在某些情况下,它将返回 null,而在其他情况下,它将返回 double 值。例如,在 PermitConstituentTypeId = 2 的情况下,我的查询将为 PpmAt15PercentOxygen 返回 92.2。同样,无论返回的是 null 还是值,我都想将该值分配给相应的属性。

我尝试过的这条语句让我获得了与我想要的 PermitConstituentId 匹配的记录:

var noxRecord = CurrentPermit.PermitDetails.Where(a => a.PermitConstituentTypeId == 2);
Run Code Online (Sandbox Code Playgroud)

但从那里我不知道如何开始获取我需要的每个限制/指标的值,例如PpmAt15PercentOxygenLbPerMmBtuHHv等等。

有人可以帮助我完成此 LINQ 语句或修改它,以便我可以根据 PermitConstituentTypeID 撤回特定限制/指标吗?

Ben*_*aum 5

首先,我们选择第一个元素:

var noxRecord = CurrentPermit.PermitDetails
                            .FirstOrDefault(a => a.PermitConstituentTypeId == 2);
Run Code Online (Sandbox Code Playgroud)

然后如果它不为空,我们就可以像对象一样使用它

if(noxRecord!=null){
    noxRecord.PpmAt15PercentOxygen;// This should be 92.2
}
Run Code Online (Sandbox Code Playgroud)