EntityDataSource.AutoGenerateWhereClause 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示 EntityDataSource 控件是否基于 WhereParameters 集合中定义的值来动态创建 WHERE 子句。
public:
property bool AutoGenerateWhereClause { bool get(); void set(bool value); };
public bool AutoGenerateWhereClause { get; set; }
member this.AutoGenerateWhereClause : bool with get, set
Public Property AutoGenerateWhereClause As Boolean
属性值
如果 EntityDataSource 控件创建 WHERE 子句,则为 true
;否则为 false
。 默认值是 false
。
实现
例外
当 AutoGenerateWhereClause 属性设置为 true
,同时 Where 属性设置为非 null。
示例
在下面的示例中,将 AutoGenerateWhereClause 属性设置为 true
。 因此, Name 属性的必须与查询结果中包含的实体类型属性名称相匹配。 查询选择 SalesOrderHeader 实体类型的 SalesOrderID 和 TotalDue 属性。 自动生成的 WHERE
子句将通过将 TotalDue 值与在 "TotalDueList 列表框" 控件中选择的值进行比较来筛选查询结果。
<asp:EntityDataSource ID="SalesOrderHeaderWithAutoParam" runat="server"
ConnectionString="name=AdventureWorksEntities"
DefaultContainerName="AdventureWorksEntities"
EntitySetName="SalesOrderHeaders"
Select="it.SalesOrderID, it.TotalDue"
AutoGenerateWhereClause="True">
<WhereParameters>
<asp:ControlParameter ControlID="TotalDueList"
Name="TotalDue" PropertyName="SelectedValue" DbType="Decimal" />
</WhereParameters>
</asp:EntityDataSource>
默认情况下,AutoGenerateWhereClause 属性设置为 false
。 这意味着我们必须提供该 WHERE
子句。 在下面的示例中, WHERE
子句为, Where="it.TotalDue < @totalDueParam"
totalDueParam 为参数名称。
<asp:EntityDataSource ID="SalesOrderHeaderWithOutAutoParam" runat="server"
ConnectionString="name=AdventureWorksEntities"
DefaultContainerName="AdventureWorksEntities"
EntitySetName="SalesOrderHeaders"
Where="it.TotalDue < @totalDueParam"
Select="it.SalesOrderID, it.TotalDue">
<WhereParameters>
<asp:ControlParameter ControlID="TotalDueList"
Name="totalDueParam" PropertyName="SelectedValue" DbType="Decimal" />
</WhereParameters>
</asp:EntityDataSource>
注解
若要通过使实体类型属性等于表达式来筛选查询结果,可以使用 AutoGenerateWhereClause 属性。 将 AutoGenerateWhereClause 控件的属性 EntityDataSource 设置为时 true
,控件会自动 WHERE
从属性的中的参数生成子句 ParameterCollection WhereParameters 。 Name每个参数的属性必须与查询结果中包含的实体类型属性名称相匹配。 如果将属性设置 AutoGenerateWhereClause 为 true
,则不应显式将子句分配 WHERE
给 Where 属性。