2012-03-01 2 views
0

gridview 내 엔터티 모델에서 함수 가져 오기 (저장된 proc)를 사용하는 내 objectdatasource로 정렬하려고합니다. 내가 추적했다 가이드는이 코드를 가지고 http://www.asp.net/web-forms/tutorials/continuing-with-ef/using-the-entity-framework-and-the-objectdatasource-control-part-3-sorting-and-filtering함수 가져 오기 엔터티 프레임 워크 orderby

에서였다

public IEnumerable<Department> GetDepartments(string sortExpression) 
    { 
     if (String.IsNullOrWhiteSpace(sortExpression)) 
     { 
      sortExpression = "Name"; 
     } 
     return context.Departments.Include("Person").OrderBy("it." + sortExpression).ToList(); 
    } 

내가 저장된 프로 시저를 호출하고있어 경우에 내가있는 OrderBy을 할 수 있습니까?

내 코드 :

If String.IsNullOrWhiteSpace(sortExpression) Then 
       sortExpression = "Status" 
      End If 

      retReq = dataContext.usp_GetReport(Nothing, Nothing, Nothing, period, Nothing, Nothing, _ 
          Nothing, Nothing, Nothing).ToList() 

어떤 아이디어?

사전

감사 업데이트 - 해상도

내 경우에는 정렬 기능 작업을 만드는 더 나은 방법이 있다고 확신합니다. 그러나 이것이 내가 한 방법입니다. 작동하지만, 단순화하는데 도움이되는 사람이 있다면, 감사드립니다. 저장된 절차 - 내부 MSDN 설명서 http://msdn.microsoft.com/en-us/library/bb534966(v=vs.96).aspx#Y1200

If sortExpression IsNot Nothing Then 
       If sortExpression = "StatusDate DESC" Then 
        retReq = dataContext.usp_GetReport(Nothing, Nothing, Nothing, period, Nothing, Nothing, _ 
         Nothing, Nothing, Nothing).OrderByDescending(Function(test As usp_GetReport_Result) test.StatusDate).ToList() 

       ElseIf sortExpression = "StatusDate" Then 
        retReq = dataContext.usp_GetReport(Nothing, Nothing, Nothing, period, Nothing, Nothing, _ 
         Nothing, Nothing, Nothing).OrderBy(Function(test As usp_GetReport_Result) test.StatusDate).ToList() 

       End If 
End If 

답변

0

어느 1) 분류 유래

또는 2) 객체를 사용 Linq에 반환 된 데이터를 정렬.

var sorted = retReq.OrderBy(x=>x.SomeProperty); 

분명 2) 예를 들어 당신의 sproc)의 상단 (N을 반환하는 경우, 무엇을 필요로하지 않을 수 있습니다 결과를 정렬하는 것입니다.

+0

제공하신 코드를 사용했지만 Intellisense를 "OrderBy"기능으로 사용할 수 없었습니다. 다시 응용 프로그램 계층으로 값을 반환 한 후에 사용합니까? 코드는 IEnumerable (of usp_GetReport_Result)을 반환하고 내 objectdatasource의 SelectMethod를 통해 연결된 함수 안에 있습니다. – beachbum320

+0

실제로 결과 정렬은 내가하려는 것입니다. 정확히 말하면 열 머리글을 클릭하면 gridview를 정렬하고 싶습니다. – beachbum320

+0

C#의 "using System.Linq;"와 동등한 것이 필요할 것입니다. 아마도 "import System.Linq" – Phil