Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System.Linq.Expressions.Expression помогите составить выражение. / 4 сообщений из 4, страница 1 из 1
14.09.2015, 12:42
    #39050746
vlsaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Linq.Expressions.Expression помогите составить выражение.
Всем доброго времени суток!

В некоторой базе есть записи. (Не так важно в какой базе и что за записи)
В записи есть поле isSent типа bool? (nullable)

Надо сказать следующее: Выбери все записи, у которых поле isSent не true.
Т.е. нужно получить все записи у которых поле isSent равно null или false.

Делаю так:
Код: c#
1.
2.
3.
4.
var sentProp = Expr.Property(parameter, "isSent");
bool? myBool = true;
var sentValue = Expr.Constant(myBool);
var filterBySent = Expr.NotEqual(sentProp, sentValue);



И тут на последней строке возникает ошибка.
Двоичный оператор NotEqual не определен для типов "System.Nullable`1[System.Boolean]" и "System.Boolean".

Подскажите, как правильно составить выражение для фильтра filterBySent?
М.б. у nullable поля можно как-то выяснить null оно или нет, и если нет, то взять значение?
Не умею пока делать такого с выражениями. :(
...
Рейтинг: 0 / 0
14.09.2015, 13:39
    #39050798
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Linq.Expressions.Expression помогите составить выражение.
vlsaf,

.. похоже, что надо использовать .IsFalse, а не то, что вы подумали ...
...
Рейтинг: 0 / 0
15.09.2015, 18:20
    #39052181
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Linq.Expressions.Expression помогите составить выражение.
vlsafу nullable поля можно как-то выяснить null оно или нет

Свойство "HasValue"
...
Рейтинг: 0 / 0
02.10.2015, 10:56
    #39066816
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
System.Linq.Expressions.Expression помогите составить выражение.
vlsaf,
Тут все в одну, значит можно воспользоваться помощью компилятора.
Пишем
Код: c#
1.
Expression<Func<Nullable<bool>, bool>> ex = (b) => !b.HasValue || b == false;


И смотрим в дебаггере что получилось.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / System.Linq.Expressions.Expression помогите составить выражение. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]