Добавить к выражениюC#

Место общения программистов C#
Ответить
Anonymous
 Добавить к выражению

Сообщение Anonymous »

Я следил за этой веткой: текст ссылки

Джейсон приводит пример:

Код: Выделить всё

public static Expression AndAlso(this Expression left, Expression right)
{
return Expression.Lambda(Expression.AndAlso(left, right), left.Parameters);
}
и его использование как таковое:

Код: Выделить всё

Expression clientWhere = c => true;
if (filterByClientFName)
{
clientWhere = clientWhere.AndAlso(c => c.ClientFName == searchForClientFName);
}
if (filterByClientLName)
{
clientWhere = clientWhere.AndAlso(c => c.ClientLName == searchForClientLName);
}
У меня есть таблица заказов, и я последовал приведенному выше примеру, изменив имена столбцов, и получил ту же ошибку, что и создатель сообщения


Бинарный оператор AndAlso не определен для типов 'System.Func

Код: Выделить всё

2[Models.Order,System.Boolean]' and 'System.Func
2[Models.Order,System.Boolean]'.


У кого-нибудь есть мысли о том, чего мне не хватает?< /p>

ОБНОВЛЕНО:

Эрик, я продолжил то, о чем спрашивал пользователь предыдущего поста, здесь текст ссылки< /p>

Это есть у пользователя

Код: Выделить всё

Expression clientWhere = c => true;
Expression orderWhere = o => true;
Expression productWhere = p => true;

if (filterByClient)
{
clientWhere = c => c.ClientID == searchForClientID;
}
Теперь, если бы у него были различные условия в filterByClient, скажем, у него либо есть clientid и/или какое-то другое имя столбца, как бы это сделать? построить выражение clientWhere?


Подробнее здесь: https://stackoverflow.com/questions/223 ... expression
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»