2011-03-24 2 views
0

내 데이터 개체의 다른 값에서 파생 된 Total이라는 속성이 있습니다. 이 속성을 linq에서 SQL 문으로 순서대로 사용하려고하면 다음과 같은 결과가 발생합니다. 멤버 '...'에 SQL에 대한 지원되는 변환이 없습니다. 어떤 의미가 있지만이 시나리오에 대한 해결 방법이 있습니까? 감사!linq에서 SQL에 파생 된 속성을 사용하여 어떻게 주문할 수 있습니까?

+0

"파생 된"이란 정확히 무엇을 의미합니까 - 모델의 해당 속성 부분입니까, 아니요? – BrokenGlass

+0

@ Broken : 나는 그가 자신의 모델에서 다른 속성을 사용하여 값을 생성하는 속성이라는 것을 의미한다고 생각합니다. –

+0

이것은 몇 가지 다른 속성을 합산하는 데 사용되는 부분 클래스입니다. – Mike

답변

2

쿼리를 호출 할 수 있고 OrderBy() 절을 호출 할 수 있습니다.

var items = context.Tables.ToList().OrderBy(x=>x.Total); 

당신은 당신이 개체에 LINQ를 사용하는 것입니다 .ToList()를 호출 한 후부터이 작업을 수행 할 수 있습니다.

끊어진는이 모든 경우에 작동하지 않을 수 있습니다 언급, 다른 가능한 솔루션이 .Select()

참고에 총 계산을 재현하는 것, 내 구문과 VS이 그나마 조금 떨어져있을 수 있습니다 나 :)

var items = context.Tables.Select(t=> new {t.Item1, Total=(t.Price + t.Tax)}) 
          .OrderBy(t=>t.Total); 

은 이제 늘 어떤 더 Table로 끝날하지만 옵션이 될 수 투사 이러한 유형의 부여.

+0

쿼리에 'Skip()'또는 Take()가 포함되어 있으면 옵션이 아닐 수도 있습니다. 그렇지 않으면 DB에서 * 모든 레코드를 가져와야합니다. +1 왜냐하면 내가 더 나은 아무것도 함께 올 수 없습니다. 또한 AsEnumerable()은 더 가벼운 접근 방식입니다. – BrokenGlass

관련 문제