Я только начал разрабатывать REST API в Net Core. Я должен создать API для фильтра. Например,
Существует три таблицы: tbl_agent, tbl_tags и tbl_agent_tags_mapping
Таблица агентов имеет следующие идентификаторы столбцов, имя, company_name
Таблица тегов имеет следующие идентификаторы столбцов, имя тега
tbl_agent_tags_mapping имеет следующие идентификаторы столбцов, agent_id (FK), tag_id (FK)
- Агенту можно назначить несколько тегов
Для фильтрации агента по тег и имя Я использую приведенный ниже код, идентификатор которого неосуществим.
IQueryable<tbl_agent> query = context.tbl_agent;
if (name != String.Empty)
{
query = query.Where(x => x.name == name);
}
if (tags.Count > 0)
{
var agent_ids = context.tbl_agent_tags_mapping
.Where(x => tags.Contains(x.id))
.Select(x => x.id).ToList();
query = query.Where(x => agent_ids.Contains(x.job_order_id));
}
List<tbl_agent> agent_list = query.ToList();
В этом примере я взял только два параметра, но на самом деле у меня есть от 10 до 12 параметров в запросе POST API-интерфейса фильтра.
Существует ли какой-либо шаблон проектирования, позволяющий преодолеть это повторяющееся утверждение If ... Else ..?