ObjectQuery<T>.Include(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定要包括在查询结果中的相关对象。
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>,它具有定义的查询路径。
例外
path
为 null
。
path
为 empty
。
示例
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()));
}
}
}
注解
查询路径可以用于 Entity SQL 和 LINQ 查询。
路径是完全内包含的。 例如,如果 include 调用指示 Include("Orders.OrderLines")
,则不仅将 OrderLines
包含 ,还会 Orders
包含 。 有关详细信息,请参阅加载相关对象。
在调用 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");