ObjectQuery<T>.Include(String) Metoda

Definicja

Określa obiekty pokrewne do uwzględnienia w wynikach zapytania.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)

Parametry

path
String

Rozdzielana kropkami lista obiektów pokrewnych, które mają zostać zwrócone w wynikach zapytania.Dot-separated list of related objects to return in the query results.

Zwraca

Nowy ObjectQuery<T> ze zdefiniowaną ścieżką zapytania.A new ObjectQuery<T> with the defined query path.

Wyjątki

Parametr path ma wartość null.path is null.

Parametr path ma wartość empty.path is empty.

Przykłady

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

Uwagi

Ścieżki zapytań mogą być używane z zapytaniami Entity SQL i LINQ.Query paths can be used with Entity SQL and LINQ queries.

Ścieżki są wszystkie — włącznie.Paths are all-inclusive. Na przykład, jeśli wywołanie include wskazuje Include("Orders.OrderLines"), nie tylko OrderLines być uwzględnione, ale również Orders.For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. Aby uzyskać więcej informacji, zobacz ładowanie powiązanych obiektów.For more information, see Loading Related Objects.

Po wywołaniu metody Include ścieżka zapytania jest prawidłowa tylko dla zwróconego wystąpienia ObjectQuery<T>.When you call the Include method, the query path is only valid on the returned instance of the ObjectQuery<T>. Inne wystąpienia ObjectQuery<T> i samego kontekstu obiektu nie są modyfikowane.Other instances of ObjectQuery<T> and the object context itself are not affected.

Ponieważ metoda Include zwraca obiekt zapytania, można wywołać tę metodę wiele razy na ObjectQuery<T>, aby określić wiele ścieżek dla zapytania, jak w poniższym przykładzie: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")

Dotyczy

Zobacz też