정렬과 관련하여 아래의 코드가 잘못된 점은 무엇입니까? 정렬 코드는 히트되지만 정렬은 결과에 절대로 적용되지 않습니다.IQueryable 정렬 작동하지 않음
var results = new List<Location>();
var county = context.boc_County.Where(x => x.Description.Contains(phrase.ToLower())).ToList();
results.AddRange(_mapper.MapCountyFromDb(county));
var town = context.boc_Town.Where(x => x.Description.Contains(phrase.ToLower())).ToList();
results.AddRange(_mapper.MapTownFromDb(town));
if (orderBy == "Identifier")
{
if (direction == "ASC")
results = results.OrderBy(x => x.Identifier);
else
results = results.OrderByDescending(x => x.Identifier);
}
if (orderBy == "Type")
{
if (direction == "ASC")
results = results.OrderBy(x => x.LocationType.ToString());
else
results = results.OrderByDescending(x => x.LocationType.ToString());
}
if (orderBy == "Description")
{
if (direction == "ASC")
results = results.OrderBy(x => x.Description);
else
results = results.OrderByDescending(x => x.Description);
}
var model = new LocationSearchResult()
{
Locations = query.Skip(page * pageSize).Take(pageSize),
TotalCount = query.Count()
};
return model;
당신이'Queryable에서를 사용하는 이유 '여기에? 메모리 컬렉션을 가지고 있는데 (ToList를 사용하고 있습니다.) 그래서'IEnumerable'으로 유지하지 않으시겠습니까? AsQueryable을 사용하면 더 복잡해집니다. 또한 다양한 변수 값이 무엇인지 알지 못합니다 ... 문제를 보여주는 짧지 만 완전한 예제를 제공하면 훨씬 더 좋습니다. –
나는 아무것도 잘못 볼 수 없다. 물건을 삭제하여 코드를 단순화하십시오. 당신은 그것이 결국 작동한다는 것을 알게 될 것입니다. 범인은 방금 삭제 한 것입니다. – usr
간단한 설명 :'orderBy'는 당신이 테스트 한 문자열과 결코 일치하지 않습니다. 디버거를 사용하면 이러한 버그를 쉽게 찾을 수 있습니다. – usr