我正在做这样的查询:
加入
public IEnumerable<ProblemsViewModel_Base> GetProblemsSearchClassification(string searchTerm)
{
var subjectProblems =
from p in aux_problem
join sub in Subject on p.aux_ClassificationID.Id equals sub.Id
where sub.Title.Contains(searchTerm)
orderby p.CreatedOn descending
select new ProblemsViewModel_Base
{
aux_CustomID = p.aux_CustomID
,
Id = p.aux_problemId.Value
,
title = p.aux_name
,
CreatedOn = p.CreatedOn.Value
};
return subjectProblems;
}
没有加入
public IEnumerable<ProblemsViewModel_Base> GetProblemsSearchDetails(string searchTerm){
var detailsProblems = aux_problem
.Where(p => p.aux_CustomID.Contains(searchTerm))
.OrderByDescending(c => c.CreatedOn)
.Select(i => new ProblemsViewModel_Base
{
aux_CustomID = i.aux_CustomID
,
Id = i.aux_problemId.Value
,
title = i.aux_name
,
CreatedOn = i.CreatedOn.Value
});
return detailsProblems;}
经过三次查询后,我加入并得到了结果:
var joinedResults = detailsResults.Union(requestorResults).Union(classificationResults);
var distinctResults = joinedResults.GroupBy(p => p.Id).Select(p => p.First())
我的问题出现在结果中我使用第二个查询(没有连接的那个)进行联盟,结果没有排序,但是如果我避免这个查询,那么做所有查询的联盟加入,结果是有序的。
这可能是问题所在?谢谢!
答案 0 :(得分:0)
根据我的经验
.Union()
。不同()
其他一些人将取消订购
在呈现结果之前尝试排序,但是在所有代码之后
请反馈
答案 1 :(得分:0)
我找到了修改比较的解决方案,如:
var distinctResults = joinedResults.GroupBy(p => p.Id).Select(p => p.First()).OrderByDescending(p => p.CreatedOn);
我在所有查询中都注释掉了OrderBy,因为我之后就这样做了,我想没有它,查询会更快。