EntityDataSource.Include 属性

定义

获取或设置指定要包含在查询结果中的相关对象的表达式。

public:
 property System::String ^ Include { System::String ^ get(); void set(System::String ^ value); };
public string Include { get; set; }
member this.Include : string with get, set
Public Property Include As String

属性值

要在查询结果中返回的以逗号分隔的查询路径列表。

示例

以下 XML 标记定义一个查询路径,该路径返回 SalesOrderHeader 与返回 Contact 的对象相关的对象。 对于每个 SalesOrderHeader,也会返回相关的 SalesOrderDetailAddress 对象。

<asp:EntityDataSource ID="ContactDataSource" runat="server"
    AutoGenerateWhereClause="True" ConnectionString="name=AdventureWorksEntities"
    DefaultContainerName="AdventureWorksEntities" EnableDelete="True"
    EnableInsert="True" EnableUpdate="True" EntitySetName="Contact"
    Include="SalesOrderHeader.SalesOrderDetail, SalesOrderHeader.Address">
    <WhereParameters>
        <asp:ControlParameter ControlID="customerId" Name="ContactID"
            PropertyName="Text" />
    </WhereParameters>
</asp:EntityDataSource>

前面的 XML 示例与以下 ObjectQuery<T> 名为 customers的相同:

ObjectQuery<Contact> customers =
      context.Contact
       .Where("it.ContactID = @ContactID",
         new ObjectParameter("ContactID", customerId))
        .Include("SalesOrderHeader.SalesOrderDetail")
        .Include("SalesOrderHeader.Address");

注解

Include控件的 EntityDataSource 属性指定以逗号分隔的查询路径列表,这些路径定义与特定查询对象一起返回的对象。 字符串中的每个逗号分隔值都作为对实体框架执行的 方法的ObjectQuery<T>单独调用Include传递,无需修改。 此查询是控件所管理的 EntityDataSource 数据的源。 属性 Include 是执行前应用于 ObjectQuery<T> 的参数。

提供给 属性的 Include 字符串使用与传递给 Include 的 方法的 ObjectQuery<T>字符串相同的格式。 有关如何使用查询路径自动加载相关对象的示例,请参阅 如何:使用查询路径来调整结果

Include使用 属性指定查询路径时,相关实体的属性只能用于只读数据绑定。 如果查询路径中未显式包含相关对象,则属性描述符仍可用于数据绑定,但属性本身会返回 null 值。 在这种情况下,必须显式加载相关对象才能显示其值。 有关详细信息,请参阅加载相关对象

适用于