2013-09-12 2 views
0

У меня есть запрос Linq, который возвращает график врача в определенной дате, которая работает нормально:где положение оценивается, если

var scheduledList = db_hms.Scheduled 
    .Include("Natural_Person") 
    .Include("Type_Schedule") 
    .Where(s => s.id_medical_doctor == idMedic && s.date_time >= date && s.date_time <= EndDate).OrderBy(s => s.date_time).ToList();   

но теперь у меня есть 2 дополнительных поля мне нужно фильтровать, так я нужен способ, чтобы оценить, если applay фильтр или нет, я думал, в отдалении летящего orderby и toList() и сделать Somthing как:

if (idTipoConsulta != -1) 
{ 
    scheduledList.Where(m => m.id_ps_schedule == idTipoConsulta); 
} 

if (idEspecialidad != -1) 
{ 
    scheduledList.Where(m => m.id_specialty == idTipoConsulta); 
}  

return scheduledList.OrderBy(s => s.date_time).ToList(); 

, но это не похоже на работу.

+0

«Кажется, что это не работает» никогда не бывает достаточно информации. В этом случае я, возможно, смог диагностировать проблему, но, пожалуйста, помните о списке в http://tinyurl.com/so-list, задавая вопрос. –

+0

tks для подсказок! – EricGS

ответ

0

Вызов Where не влияет на объект, на который вы его называете - он возвращает новый запрос с примененным фильтром. Таким образом, вы хотите использовать возвращаемое значение соответствующим образом. Например:

if (idTipoConsulta != -1) 
{ 
    scheduledList = scheduledList.Where(m => m.id_ps_schedule == idTipoConsulta); 
} 
// etc 
+0

tks, простая ошибка rookie – EricGS

Смежные вопросы