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 个额外的字段需要过滤,所以我需要一种方法来评估是否应用过滤器,我正在考虑删除 rheorderbytoList()做类似的事情:

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();

但它似乎不起作用。

4

1 回答 1

0

调用Where不会影响您调用它的对象 - 它会返回一个应用了过滤器的新查询。所以你想适当地使用返回值。例如:

if (idTipoConsulta != -1)
{
    scheduledList = scheduledList.Where(m => m.id_ps_schedule == idTipoConsulta);
}
// etc
于 2013-09-12T10:53:55.860 回答