我有一个方法,它接收搜索键和页码并返回一页数据。 (GetDataPage
使用Skip
和Take
方法来获取正确的页面。)
public JsonResult SearchResults(string searchKey, int page) {
var data = dbContext.MyTable.Where(x => x.Title.Contains(searchKey)).OrderByDescending(x => x.CreatedDate);
return GetDataPage(data, page);
}
这是按预期工作的。 现在我需要更改函数,以便它获取searchKeys列表,搜索MyTable以获取所有搜索键,订购结果并返回所需页面。如何组合来自多个LINQ查询的搜索结果?
答案 0 :(得分:1)
使用Any方法尝试此单个LINQ查询:
public JsonResult SearchResults(IEnumerable<string> searchKeys, int page)
{
var data = dbContext.MyTable.Where(x => searchKeys.Any(serachKey => x.Title.Contains(searchKey))).OrderByDescending(x => x.CreatedDate):
return GetDataPage(data, page);
}
答案 1 :(得分:0)
如果由于某种原因你确实需要多个查询,你可以这样做:
searchKeys.SelectMany(key => dbContext.MyTable.Where(x => x.Title.Contains(searchKey)))
.OrderByDescending(x => x.CreatedDate)