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 クエリ オプションでない場合、同じクエリ オプションを 2 回追加することができます。 基になる URI に既に存在するクエリ オプションを追加した場合、例外がスローされます。

AddQueryOption(String, Object) メソッドを使用してクエリ URI に $select クエリ オプションを追加することはできません。 LINQ の Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) メソッドを使用して、クライアントによって要求 URI に $select クエリ オプションが生成されるようにすることをお勧めします。

使用例

次の例は、運賃が $30 以上の注文だけを返し、結果を降順の日付で並べ替えるシーケンシャルな AddQueryOption メソッド呼び出しと一緒に使用する 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);
}

次の例は、LINQ クエリを作成する方法を示します。このクエリは、AddQueryOption を使用する前のクエリと同等です。

' 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 名前空間