결과 정렬(EntityDataSource)

Visual Studio 2010

업데이트: 2007년 11월

OrderBy 속성을 사용하면 EntityDataSource 컨트롤에서 결과를 정렬할 수 있습니다. EntityDataSource 컨트롤의 OrderBy 속성은 Entity SQL 쿼리의 ORDER BY 식을 나타내는 문자열입니다. 이 문자열은 수정되지 않은 상태로 EntityDataSource 컨트롤의 데이터 소스 역할을 하는 ObjectQuery<T>로 전달됩니다. OrderBy 속성에 제공된 문자열은 ObjectQuery<T>OrderBy 메서드에 전달된 문자열과 동일한 형식을 사용합니다. ORDER BY 절을 사용하여 쿼리 결과를 정렬하는 방법의 예제를 보려면 방법: 데이터 정렬(Entity Framework)을 참조하십시오.

ObjectQuery<T> 클래스의 OrderBy 메서드와 마찬가지로 OrderBy 속성의 ORDER BY 절에 매개 변수를 전달할 수 있습니다. 쿼리의 ORDER BY 절에 대한 ParameterCollection을 지정하려면 EntityDataSource 컨트롤의 OrderByParameters 속성을 정의해야 합니다. OrderByParameters 속성은 명명된 인수를 사용하여 OrderBy 속성에 할당된 매개 변수를 참조합니다.

OrderByParameters 속성을 정의하지 않으면 매개 변수가 대체되지 않습니다. ORDER BY 절에서 앞에 "@" 기호가 나오는 매개 변수 이름은 ParameterCollection에 일치하는 이름이 있어야 합니다. ParameterCollection의 매개 변수에 대해서는 Null 값이 허용되지 않습니다.

EntityDataSource 컨트롤의 AutoGenerateOrderByClause 속성을 true로 설정하여 ORDER BY 절을 자동으로 생성할 수 있습니다. 그러면 EntityDataSource 컨트롤이 OrderByParameters 속성에 할당된 ParameterCollection의 매개 변수에서 ORDER BY 절을 자동으로 생성합니다. 이렇게 하면 ORDER BY 절을 OrderBy 속성에 명시적으로 할당할 필요가 없습니다. OrderByParameters 속성에서 ORDER BY 절을 자동으로 생성하는 경우 컬렉션에 있는 매개 변수의 Name 속성이 쿼리에서 반환하는 항목의 단일 속성을 나타내는지 확인해야 합니다.

예제

다음 예제에서는 ORDER BY 절을 자동으로 생성하고 orderByDropDownList의 값을 사용하여 매개 변수 값을 설정합니다.

<asp:EntityDataSource ID="SalesOrderHeader" runat="server" 
    ConnectionString="name=AdventureWorksEntities"
    DefaultContainerName="AdventureWorksEntities" EnableDelete="True" 
    EnableInsert="True" EnableUpdate="True" EntitySetName="SalesOrderHeader" 
    Where="it.OnlineOrderFlag = true" AutoGenerateOrderByClause="True">
    <OrderByParameters>
        <asp:ControlParameter Name="OrderByParameter" 
            ControlID="orderByDropDownList" Type="String" />
    </OrderByParameters>
</asp:EntityDataSource>

표시: