В настоящее время я пишу функцию поиска в ASP.NET MVC 4 с помощью Entity Framework. Тем не менее, я попал в блокпост, для которого я могу найти только «плохие» решения.linq to sql query с несколькими параметрами
Мои функции поиска получает обратно модель, которая состоит из 4-х параметров:
String Name
String Street
String Code
String Province
List<Query> query = (from t in Model select t).ToList();
Теперь я хотел бы, чтобы отфильтровать на мой поиск входа. Однако пользователь может решить заполнить как можно больше полей поиска. Он может решить использовать имя и улицу, или имя, улица и провинцию, или ...
Единственное реальное решение, которое я смог найти, состоит в том, чтобы сделать мой запрос и IQueryable
и проверить, было ли поле заполнено с if
, затем используйте .Where
для обновления запроса. Поскольку это в настоящее время дает m 5 запросов, мне интересно, есть ли лучшее решение, которое мне не хватает здесь.
Спасибо, что помогли мне.
Да, это решение, которое я нашел в Интернете. Мне было интересно, есть ли более чистый способ кодировать это. – whodares
Если вы хотите остановиться 'IQueryable'. Тогда это то, что я думаю, способ сделать это – Arion
Может быть, есть больше кода, но это самый оптимизированный (и, вероятно, лучший). Проверьте полученный SQL-запрос в [linqpad] (http://www.linqpad.net/) – mshsayem