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
從屬性(property)中的參數產生子句 ParameterCollection WhereParameters 。 Name每個參數的屬性都必須符合查詢結果中包含的實體類型屬性名稱。 如果您將 AutoGenerateWhereClause 屬性設定為 true
,您就不應該將子句明確指派 WHERE
給 Where 屬性。