Я не могу понять, как сравнивать логические значения в лямбда-выражении C # для EF4. Я пробовал:
cl.Where(c => c.Received == false);
и это:
cl.Where(c => !c.Received);
и это:
cl.Where(c => c.Received.Equals(false));
но я продолжаю получать эту ошибку:
Exception Details: System.NotSupportedException: Unable to create a constant value
of type 'System.Object'. Only primitive types ('such as Int32, String, and Guid')
are supported in this context.
Потратив много времени на изучение этого, я все еще что-то упускаю. Я довольно новичок в Lambdas, поэтому указатели будут оценены.
Edit2: больше кода re: comment
int bar = 42;
var cl = db.foo.Where(c => c.baz.Equals(bar));
//codez (just an if statement)
cl.Where(c => c.Received == false).OrderByDescending(c => c.dateAdded);
Вот и все. Даже если я уберу заказ, он все равно не будет работать
Edit3:
Решение:
int bar = 42;
var cl = db.foo.Where(c => c.baz == bar);
cl.Where(c => c.Received == false).OrderByDescending(c => c.dateAdded);