2014-05-08 2 views
3

명백한 것을 놓치고 있어야합니다. 이 쿼리의 ORDERBY의 cluase는선택 목록에 대한 Linq 쿼리에 OrderBy를 적용하는 방법

List<String> reps = (from r in db.bookings 
        where !r.bookingRep1.Contains("*") && !r.bookingRep1.Contains(" ") 
        orderby r.bookingRep1 
        select r.bookingRep1).Distinct().ToList(); 

ViewBag.rep1 = new SelectList(reps, booking.bookingRep1); 

선택 목록 ...

@Html.DropDownListFor(model => model.bookings.bookingRep1, (SelectList)ViewBag.rep1, "") 

나는에 선택 목록을하고 싶습니다 ... 내 선택 목록에 표시되는 항목의 순서에 영향을주지 않습니다 bookingrep1 알파벳 순으로 정렬 할 수

답변

5

는이 Distinct를 적용한 후 주문 적용 :

List<string> reps = 
    (from r in db.bookings 
    where !r.bookingRep1.Contains("*") && !r.bookingRep1.Contains(" ") 
    select r.bookingRep1).Distinct().OrderBy(rep => rep).ToList(); 

ViewBag.rep1 = new SelectList(reps, booking.bookingRep1); 
주문한 쿼리에 Distinct를 적용하면

, 그럼 그냥 생성 된 SQL에서 제거 순서화 : 주문이 적용

SELECT 
    [Distinct1].[bookingRep1] AS [bookingRep1] 
    FROM (SELECT DISTINCT 
     [Extent1].[bookingRep1] AS [bookingRep1] 
     FROM [dbo].[bookings] AS [Extent1] 
     WHERE [Extent1].[bookingRep1] NOT LIKE @p1 AND 
       [Extent1].[bookingRep1] NOT LIKE @p2 
    ) AS [Distinct1] 

생성 된 SQL에서 다음 현재의 Distinct 후 :

SELECT 
    [Distinct1].[bookingRep1] AS [bookingRep1] 
    FROM (SELECT DISTINCT 
     [Extent1].[bookingRep1] AS [bookingRep1] 
     FROM [dbo].[bookings] AS [Extent1] 
     WHERE [Extent1].[bookingRep1] NOT LIKE @p1 AND 
       [Extent1].[bookingRep1] NOT LIKE @p2 
    ) AS [Distinct1] 
    ORDER BY [Distinct1].[bookingRep1] ASC 
+1

딱! Sergey 감사합니다! – tintyethan

관련 문제