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

В некоторой базе есть записи. (Не так важно в какой базе и что за записи)
В записи есть поле 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
System.Linq.Expressions.Expression помогите составить выражение.
    #39050798
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf,

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

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


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


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