Динамическое предложение where с использованием выражения Linq, имеющего соединение с несколькими таблицами - PullRequest
0 голосов
/ 08 января 2019

У меня есть запрос linq, но в условии, где условие является условным. если eve.EventType равен нулю, он не будет включен в предложение where. Как мы можем сделать с лямбда-выражением Linq

var data= (from reg in product
                                join se in _order on reg.EventSessionId equals se.EventSessionId
                                join eve in Event on se.EventId equals eve.EventId
                                where eve.EventType == (EventType)eventType &&
                                ((!string.IsNullOrEmpty(eve.EventName) && eve.EventName.Contains(SearchText, StringComparison.OrdinalIgnoreCase))                                    
                                select (new OrderHistory
                                {
                                    RegistrationId = reg.RegistrationId,
                                    EventName = eve.EventName,
                                    EventSesionName = se.EventSesionName,                                       
                                })).ToList();

Спасибо

1 Ответ

0 голосов
/ 08 января 2019

Это может помочь вам. Сначала вы должны проверить значение null.

var data= (from reg in product
                            join se in _order on reg.EventSessionId equals se.EventSessionId
                            join eve in Event on se.EventId equals eve.EventId
                            where eve.EventType != null && eve.EventType == (EventType)eventType &&
                            ((!string.IsNullOrEmpty(eve.EventName) && eve.EventName.Contains(SearchText, StringComparison.OrdinalIgnoreCase))                                    
                            select (new OrderHistory
                            {
                                RegistrationId = reg.RegistrationId,
                                EventName = eve.EventName,
                                EventSesionName = se.EventSesionName,                                       
                            })).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...