ObjectQuery<T>.Include(String) ObjectQuery<T>.Include(String) ObjectQuery<T>.Include(String) ObjectQuery<T>.Include(String) Method

定義

クエリの結果に含める関連オブジェクトを指定します。Specifies the related objects to include in the query results.

public:
 System::Data::Objects::ObjectQuery<T> ^ Include(System::String ^ path);
public System.Data.Objects.ObjectQuery<T> Include (string path);
member this.Include : string -> System.Data.Objects.ObjectQuery<'T>
Public Function Include (path As String) As ObjectQuery(Of T)

パラメーター

path
String String String String

クエリの結果で返す関連オブジェクトをドットで区切った一覧。Dot-separated list of related objects to return in the query results.

戻り値

定義されたクエリ パスを使用する新しい ObjectQuery<T>A new ObjectQuery<T> with the defined query path.

例外

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Define an object query with a path that returns 
    // orders and items for a specific contact.
    Contact contact =
        context.Contacts.Include("SalesOrderHeaders.SalesOrderDetails")
        .FirstOrDefault();

    // Execute the query and display information for each item 
    // in the orders that belong to the first contact.
    foreach (SalesOrderHeader order in contact
        .SalesOrderHeaders)
    {
        Console.WriteLine(String.Format("PO Number: {0}",
            order.PurchaseOrderNumber));
        Console.WriteLine(String.Format("Order Date: {0}",
            order.OrderDate.ToString()));
        Console.WriteLine("Order items:");
        foreach (SalesOrderDetail item in order.SalesOrderDetails)
        {
            Console.WriteLine(String.Format("Product: {0} "
                + "Quantity: {1}", item.ProductID.ToString(),
                item.OrderQty.ToString()));
        }
    }
}
Using context As New AdventureWorksEntities()
    ' Define an object query with a path that returns 
    ' orders and items for a specific contact. 
    Dim contact As Contact = context.Contacts.Include("SalesOrderHeaders.SalesOrderDetails").FirstOrDefault()

    ' Execute the query and display information for each item 
    ' in the orders that belong to the first contact. 
    For Each order As SalesOrderHeader In contact.SalesOrderHeaders
        Console.WriteLine(String.Format("PO Number: {0}", order.PurchaseOrderNumber))
        Console.WriteLine(String.Format("Order Date: {0}", order.OrderDate.ToString()))
        Console.WriteLine("Order items:")
        For Each item As SalesOrderDetail In order.SalesOrderDetails
            Console.WriteLine(String.Format("Product: {0} Quantity: {1}", _
                                              item.ProductID.ToString(), item.OrderQty.ToString()))
        Next
    Next
End Using

注釈

クエリ パスは、Entity SQL および LINQ クエリで使用できます。Query paths can be used with Entity SQL and LINQ queries.

パスは包括的です。Paths are all-inclusive. たとえば、include 呼び出しがを示しInclude("Orders.OrderLines")ている場合、 OrderLinesだけでなく、もOrders含まれます。For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. 詳細については、「関連オブジェクトの読み込み」を参照してください。For more information, see Loading Related Objects.

Include メソッドを呼び出した場合、クエリ パスは ObjectQuery<T> の返されたインスタンスでのみ有効です。When you call the Include method, the query path is only valid on the returned instance of the ObjectQuery<T>. ObjectQuery<T> の他のインスタンスとオブジェクト コンテキスト自体は影響を受けません。Other instances of ObjectQuery<T> and the object context itself are not affected.

Include メソッドはクエリ オブジェクトを返すので、このメソッドを ObjectQuery<T> で複数回呼び出すことで、次の例のようにクエリに複数のパスを指定できます。Because the Include method returns the query object, you can call this method multiple times on an ObjectQuery<T> to specify multiple paths for the query, as in the following example:

// Create a SalesOrderHeader query with two query paths, 
// one that returns order items and a second that returns the 
// billing and shipping addresses for each order.
ObjectQuery<SalesOrderHeader> query =
    context.SalesOrderHeaders.Include("SalesOrderDetails").Include("Address");
' Create a SalesOrderHeader query with two query paths, 
' one that returns order items and a second that returns the 
' billing and shipping addresses for each order. 
Dim query As ObjectQuery(Of SalesOrderHeader) = context.SalesOrderHeaders.Include("SalesOrderDetails").Include("Address")

適用対象

こちらもご覧ください