다음을 통해 공유


DataServiceQuery<TElement>.AddQueryOption 메서드

반환된 쿼리에 의해 생성되는 URI에 설정된 쿼리 옵션을 사용하여 새 DataServiceQuery<TElement>를 만듭니다.

네임스페이스:  System.Data.Services.Client
어셈블리:  Microsoft.Data.Services.Client(Microsoft.Data.Services.Client.dll)

구문

‘선언
Public Function AddQueryOption ( _
    name As String, _
    value As Object _
) As DataServiceQuery(Of TElement)
‘사용 방법
Dim instance As DataServiceQuery
Dim name As String
Dim value As Object
Dim returnValue As DataServiceQuery(Of TElement)

returnValue = instance.AddQueryOption(name, _
    value)
public DataServiceQuery<TElement> AddQueryOption(
    string name,
    Object value
)
public:
DataServiceQuery<TElement>^ AddQueryOption(
    String^ name, 
    Object^ value
)
member AddQueryOption : 
        name:string * 
        value:Object -> DataServiceQuery<'TElement> 
public function AddQueryOption(
    name : String, 
    value : Object
) : DataServiceQuery<TElement>

매개 변수

  • name
    유형: System.String
    추가할 쿼리 문자열 옵션의 이름을 포함하는 문자열 값입니다.
  • value
    유형: System.Object
    쿼리 문자열 옵션의 값을 포함하는 개체입니다.

반환 값

유형: System.Data.Services.Client.DataServiceQuery<TElement>
제공된 쿼리의 URI에 추가되는 요청된 쿼리 옵션을 포함하는 새 쿼리입니다.

주의

?name=value&name2=value2... 구문을 사용하여 쿼리 옵션이 결과 URI에 추가됩니다. 여기서 이름은 name 매개 변수에 직접 매핑되고 value는 value 매개 변수에서 ToString을 호출하여 구합니다. name은 $로 시작합니다.

비 WCF Data Services 구문은 $로 시작하지 않습니다. 비 WCF Data Services 쿼리 옵션은 이 메서드를 사용하여 추가할 수 있습니다. 옵션이 WCF Data Services 쿼리 옵션이 아닌 경우 동일한 쿼리 옵션을 두 번 추가할 수 있습니다. 기본 URI에 이미 있는 쿼리 옵션을 추가하면 예외가 throw됩니다.

$select 쿼리 옵션은 AddQueryOption(String, Object) 메서드를 사용하여 쿼리 URI에 추가할 수 없습니다. LINQ Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) 메서드를 사용하여 클라이언트에서 요청 URI에 $select 쿼리 옵션을 생성하도록 하는 것이 좋습니다.

다음 예제에서는 순차적 AddQueryOption 메서드 호출과 함께 사용되어 운송료가 $30를 초과하는 주문만 반환하고 운송 날짜의 내림차순으로 결과를 정렬하는 DataServiceQuery<TElement>를 보여 줍니다.

' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)

' Define a query for orders with a Freight value greater than 30
' and that is ordered by the ship date, descending.
Dim selectedOrders As DataServiceQuery(Of Order) = context.Orders _
.AddQueryOption("$filter", "Freight gt 30") _
.AddQueryOption("$orderby", "OrderID desc")

Try
    ' Enumerate over the results of the query.
    For Each order As Order In selectedOrders
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}", _
                order.OrderID, order.ShippedDate, order.Freight)
    Next
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);

// Define a query for orders with a Freight value greater than 30
// and that is ordered by the ship date, descending.
DataServiceQuery<Order> selectedOrders = context.Orders
    .AddQueryOption("$filter", "Freight gt 30")
    .AddQueryOption("$orderby", "OrderID desc");

try
{
    // Enumerate over the results of the query.
    foreach (Order order in selectedOrders)
    {
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}", 
            order.OrderID, order.ShippedDate, order.Freight);
    }
}
catch (DataServiceQueryException ex)
{
    throw new ApplicationException(
        "An error occurred during query execution.", ex);
}

다음 예제에서는 AddQueryOption을 사용한 앞의 쿼리와 동등한 LINQ 쿼리를 작성하는 방법을 보여 줍니다.

' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)

' Define a query for orders with a Freight value greater than 30
' and that is ordered by the ship date, descending.
Dim selectedOrders = From o In context.Orders _
        Where (o.Freight > 30) _
        Order By o.ShippedDate Descending _
        Select o

Try
    ' Enumerate over the results of the query.
    For Each order As Order In selectedOrders
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}", _
                order.OrderID, order.ShippedDate, order.Freight)
    Next
Catch ex As DataServiceQueryException
    Throw New ApplicationException( _
            "An error occurred during query execution.", ex)
End Try
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);

// Define a query for orders with a Freight value greater than 30
// and that is ordered by the ship date, descending.
var selectedOrders = from o in context.Orders
                     where o.Freight > 30
                     orderby o.ShippedDate descending 
                     select o;

try
{
    // Enumerate over the results of the query.
    foreach (Order order in selectedOrders)
    {
        Console.WriteLine("Order ID: {0} - Ship Date: {1} - Freight: {2}",
            order.OrderID, order.ShippedDate, order.Freight);
    }
}
catch (DataServiceQueryException ex)
{
    throw new ApplicationException(
        "An error occurred during query execution.", ex);
}

참고 항목

참조

DataServiceQuery<TElement> 클래스

System.Data.Services.Client 네임스페이스