ObjectQuery<T>.Include(String) Método

Definição

Especifica os objetos relacionados para inclusão nos resultados da consulta.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)

Parâmetros

path
String

Lista separada por pontos de objetos relacionados para serem retornados nos resultados da consulta.Dot-separated list of related objects to return in the query results.

Retornos

Um novo ObjectQuery<T> com o caminho da consulta definido.A new ObjectQuery<T> with the defined query path.

Exceções

path é null.path is null.

path é empty.path is empty.

Exemplos

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

Comentários

Os caminhos de consulta podem ser usados com consultas Entity SQL e LINQ.Query paths can be used with Entity SQL and LINQ queries.

Os caminhos são todos-inclusivos.Paths are all-inclusive. Por exemplo, se uma chamada include indicar Include("Orders.OrderLines"), não só OrderLines será incluída, mas também Orders.For example, if an include call indicates Include("Orders.OrderLines"), not only will OrderLines be included, but also Orders. Para obter mais informações, consulte carregando objetos relacionados.For more information, see Loading Related Objects.

Quando você chama o método Include, o caminho de consulta só é válido na instância retornada do ObjectQuery<T>.When you call the Include method, the query path is only valid on the returned instance of the ObjectQuery<T>. Outras instâncias de ObjectQuery<T> e o próprio contexto de objeto não são afetados.Other instances of ObjectQuery<T> and the object context itself are not affected.

Como o método Include retorna o objeto Query, você pode chamar esse método várias vezes em uma ObjectQuery<T> para especificar vários caminhos para a consulta, como no exemplo a seguir: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")

Aplica-se a

Veja também