我有一个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过滤器,我正在考虑删除rhe orderby
和toList()
并做像是这样的事情:
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 :(得分:0)
调用Where
不会影响您调用它的对象 - 返回新应用过滤器的查询。所以你想要适当地使用返回值。例如:
if (idTipoConsulta != -1)
{
scheduledList = scheduledList.Where(m => m.id_ps_schedule == idTipoConsulta);
}
// etc