Как привязать данные к атрибуту DTO на основе условия? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь привязать данные к переменной, известной как CurrentControlled, которая определена в моем DTO (объект передачи данных). Проблема в том, что я хочу назначить строку на основе того, какие данные возвращаются из базы данных. В этом случае у меня есть таблица в моей базе данных, известная как RiskActions, в которой есть столбец, известный как ActionCompleteDate, если данные внутри ActionCompleteDate содержат значение даты, а строка, присвоенная CurrentControlled, должна иметь значение «Текущий». тогда как если внутри ActionCompleteDate нет даты, то значение для CurrentControlled должно контролироваться.

Я пытался присвоить условие CurrentControlled, но по какой-то причине компилятор выдает мне ошибку.

var actions = dataContext.RiskInstances.Where(riskInstancePredicate.Compile());
actions = actions
    .OrderBy(a => a.RiskInstanceID2)
    .ThenBy(a=> a.Issue.Question);

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

1 Ответ

0 голосов
/ 23 января 2019

Вам необходимо использовать условный оператор .Кроме того, это предположение, потому что я не знаю вашу структуру данных здесь, но вам, вероятно, нужно использовать 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)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...