최종 사용자가 반환 된 보고서의 정렬 순서에 대해 여러 필드를 선택할 수있는보고 인터페이스가 있습니다. 내가 겪고있는 문제는 정렬 필드 목록을 반복하고 있기 때문에 OrderBy/ThenBy 메서드를 실제로 연결할 수 없다는 것입니다. 나는 이런 식으로 뭔가를 생각하고 있어요 :프로그래밍 방식으로 LINQ/Entity Framework를 사용하여 OrderBy/ThenBy 체인으로 연결
foreach (string sort in data.SortParams)
{
switch (sort)
{
case "state":
query = query.ThenBy(l => l.RegionCode);
break;
case "type":
query = query.ThenBy(l => l.Type);
break;
case "color":
query = query.ThenBy(l => l.Color);
break;
case "category":
query = query.OrderBy(l => l.Category);
break;
}
}
(참고 :. 나는이 단순화하기위한 첫 번째 정렬 항목입니다 여부를 결정하는 스위치를 제거했습니다) 컬렉션을 반복하는 방법에 대한
어떤 생각 정렬 순서를 결정하려면?
광고 소재. 쿼리 성능에 영향을 미치는지 확인해야합니다. 인덱스 사용을 막을 수 있습니다. – usr
이것은 나를 위해 매력처럼 일했습니다. 처음에는 위와 똑같은 코드를 가지고 있었지만 첫 번째 OrderBy()에 대한 기본 열을 선택해야했습니다. 대신 0을 넣을 수 있는지 몰랐습니다. 0은 궁극적 인 SQL 쿼리가 모든 행에 대해 값이 0 인 추가 열을 가져온 다음 더미 정렬을 달성하여 해당 행별로 정렬 한 다음 연결된 'ThenBy()'의 모든 열을 적용합니다 '당신이 더했다. 감사! – BeemerGuy
'OrderBy (l => 0)'을 호출 할 때'ArgumentOutOfRangeException'이 발생합니다. [Here] (https://pastebin.com/raw/TZQ9g8Es)는'StackTrace'입니다. – Shimmy