Linq Оценка типов Nullable в предложении select - PullRequest
1 голос
/ 14 мая 2009

Я получаю странное исключение: "Unknown Expression type: IIF(e.Accredited.Value, 1, 0)" запустив следующий оператор:

var x = from e in _EntityManager.TrainingCourses
            select new { Disabled = (e.Accredited.Value ? 1 : 0) };

Пожалуйста, помогите! Как мне оценить (bool?) В выборе

Спасибо

Ответы [ 2 ]

1 голос
/ 14 мая 2009

Этот код отвечает на ваш вопрос? Очевидно, что проверка значения bool явно помогает:

void Main()
{

    var a = new List<acc>() { 
        new acc(){Accredited = false}, 
        new acc(){Accredited = true}, 
        new acc(){Accredited = null}
        };

    var x = from e in a
        select new { Disabled = (e.Accredited == true ? 1 : 0) };

    foreach (var i in x)
    {
        Console.WriteLine(i);
    }
}
public struct acc
    {
       public bool? Accredited;
    }

Выход: 0 1 0

0 голосов
/ 14 мая 2009

Предполагая, что e.Accredited является Nullable<bool> (bool?), попробуйте это:

var x = from e in _EntityManager.TrainingCourses
        select new { Disabled = (e.Accredited.HasValue && e.Accredited.Value) };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...