[英]Search From database and sort using Entity Framework
在我的項目中,我有一個用於搜索的文本框現在假設有人正在搜索熱披薩然后我必須向他們展示所有結果,包括熱或披薩但我必須訂購它們,而不是結果包含披薩首先出現然后顯示結果熱和然后披薩目前我正在使用這個
List<Project> allSearchedProject = new List<Project>();
List<string> queryList = query.ToLower().Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries).Where(q => q.Length > 3).ToList();
foreach (var q in queryList)
{
var matchedProjects = (from project in unitOfWork.ProjectRepository
.Find(p => p.IsActive && p is Project && new[] { p.Name, p.ProjectAddress.City.Name, p.ProjectAddress.Address1 }
.Any(prjt=>prjt.Contains(q)))
select project as Project).AsParallel().ToList();
allSearchedProject.AddRange(matchedProjects);
}
return allSearchedProject;
但是問題是它為每個單詞命中數據庫,如何在一次命中中獲得類似結果任何人都可以告訴我如何在單擊中搜索和排序
-謝謝
更改
foreach (var q in queryList)
{
var matchedProjects = (from project in unitOfWork.ProjectRepository
.Find(p => p.IsActive && p is Project && new[] { p.Name, p.ProjectAddress.City.Name, p.ProjectAddress.Address1 }
.Any(prjt=>prjt.Contains(q)))
select project as Project).AsParallel().ToList();
allSearchedProject.AddRange(matchedProjects);
}
至
var matchedProjects = (from project in unitOfWork.ProjectRepository
where project.IsActive
&& project is Project
&& (queryList.Contains(project.Name)
|| queryList.Contains(project.ProjectAddress.City.Name)
|| queryList.Contains(project.ProjectAddress.Address1))
select project as Project).AsParallel().ToList();
allSearchedProject.AddRange(matchedProjects);
編輯:刪除投影並制作包含顯式搜索正在搜索的項目的字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.