Как выполнять поиск по полям с несколькими фильтрами в ядре ASP.Net MVC.
Я хочу выполнить поиск данных в базе данных MySQL, а затем отфильтровать найденные данные с помощью нескольких фильтров в Windows Visual Studio 2017.
Класс модели
namespace i.model
{
public class CompanyRecords
{
public int? id { get; set; }
public int? user_id { get; set; }
public string product_name { get; set; }
public string Keywords { get; set; }
public string category { get; set; }
public string description { get; set; }
public string modules { get; set; }
}
[enter image description here][1]}
Модель контекста
public List<CompanyRecords> GetProducts(string data,string idd, SearchModel searchSch)
{ using (MySqlConnection conn = GetConnection())
{
conn.Open();
List<CompanyRecords> results = conn.Query<CompanyRecords>("SELECT * FROM product WHERE category LIKE '%" + data + "%' OR Keywords LIKE '%" + data + "%' OR product_name LIKE '%" + data + "%' OR description LIKE '%" + data + "%' OR modules LIKE '%" + data + "%'OR metatags LIKE '%" + data + "%'OR geographical_focus LIKE '%" + data + "%'").ToList();
//if (idd == "Category")
if (!string.IsNullOrEmpty(searchSch.category))
{
//List<CompanyRecords> result = conn.Query<CompanyRecords>("SELECT * FROM product WHERE category LIKE '%" + data + "%'").ToList();
List<CompanyRecords> result = conn.Query<CompanyRecords>(results.Where(x=>x.category.Contains(searchSch.category))).ToList();
return result;
}
else if (idd == "Keywords")
{
List<CompanyRecords> result = conn.Query<CompanyRecords>("SELECT * FROM product WHERE Keywords LIKE '%" + data + "%'").ToList();
return result;
}
else if (idd == "Modules") {
List<CompanyRecords> result = conn.Query<CompanyRecords>("SELECT * FROM product WHERE modules LIKE '%" + data + "%'").ToList();
return result;
}
return results;
//List<CompanyRecords> results = conn.Query<CompanyRecords>("SELECT * FROM product WHERE category LIKE '%" + data + "%'OR description LIKE '%" + data + "%' OR modules LIKE '%" + data + "%'OR metatags LIKE '%" + data + "%'OR geographical_focus LIKE '%" + data + "%'OR target_job_titles LIKE '%" + data + "%'OR target_industry_type LIKE '%" + data + "%'OR desktop_web_both LIKE '%" + data + "%'OR dept_user_type LIKE '%" + data + "%'OR semantic LIKE '%" + data + "%'OR cognitive LIKE '%" + data + "%'OR target_campany_size LIKE '%" + data + "%'").ToList();
//if (results != null)
//{ return results; }
//return results;
}
}
Слушайте conn.Open ();Список результатов = conn.Query ("ВЫБЕРИТЕ * ИЗ ПРОДУКТА, ГДЕ КАТЕГОРИЯ НРАВИТСЯ"% "+ данные +"% 'ИЛИ КЛЮЧЕВЫЕ КЛЮЧИ "......). ToList (); дает правильный результат Теперь я хочу отфильтроватьПоиск данных, полученных в результате нескольких фильтров, таких как категории, ключевые слова модулей и т. Д. *