如何根据条件将数据绑定到DTO属性?

时间:2019-01-22 23:08:23

标签: c# entity-framework linq

我正在尝试将数据绑定到在我的DTO(数据传输对象)中定义的名为CurrentControlled的变量,问题是我想根据从数据库返回的数据分配一个字符串。数据库。在这种情况下,如果RiskActions中的数据中有日期值,而不是分配给{{的字符串),则我的数据库中有一个名为ActionCompleteDate的表,该表的列称为ActionCompleteDate。 1}}应该是“当前”,而如果CurrentControlled中没有日期,则ActionCompleteDate的值应该是受控的。

我尝试为CurrentControlled分配条件,但是由于某种原因,编译器给我一个错误。

CurrentControlled

1 个答案:

答案 0 :(得分:3)

您需要使用conditional operator。另外,这是一个猜测,因为我在这里不知道您的数据结构,但是您可能需要使用Any而不是Where,因为它会返回一个布尔值,您可以将其用作条件:

List<RiskDTO> results = actions
    .Select(ra => new RiskDTO
    {
        CurrentControlled = ra.RiskActions.Any(m => m.ActionCompleteDate == null))
            ? TerminologyFactor.Parse("{Current}",TerminologyFactor.RMMonitor)
            : TerminologyFactor.Parse("{Controlled}",TerminologyFactor.RMMonitor)
    }