ObjectQuery<T>.Include(String) 方法

定义

指定要包含在查询结果中的相关对象。

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

要返回在查询结果中返回的相关对象的点分隔列表。

返回

具有定义的查询路径的一个新 ObjectQuery<T> 项。

例外

pathnull

pathempty

示例

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()));
        }
    }
}

注解

查询路径可与实体 SQL 和 LINQ 查询一起使用。

路径是独占的。 例如,如果 include 调用指示Include("Orders.OrderLines"),不仅将包含,而且还OrdersOrderLines包含。 有关详细信息,请参阅 “加载相关对象”。

调用 Include 该方法时,查询路径仅在返回的 ObjectQuery<T>实例上有效。 其他实例 ObjectQuery<T> 和对象上下文本身不受影响。

Include由于该方法返回查询对象,因此可以在一个ObjectQuery<T>对象上多次调用此方法,以指定查询的多个路径,如以下示例所示:

// 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");

适用于

另请参阅