LinqDataSource.AutoGenerateWhereClause Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob das LinqDataSource-Steuerelement anhand von in der WhereParameters-Auflistung definierten Werten dynamisch eine Where-Klausel erstellt, oder legt diesen fest.
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
Eigenschaftswert
true
, wenn das LinqDataSource-Steuerelement die Where-Klausel erstellt, andernfalls false
. Der Standardwert ist false
.
Implementiert
Beispiele
Das folgende Beispiel zeigt ein LinqDataSource Steuerelement mit dem AutoGenerateWhereClause Satz auf true
. Ein GridView Steuerelement ist an das LinqDataSource Steuerelement gebunden, um die Daten anzuzeigen, die aus der Abfrage zurückgegeben werden. Ein DropDownList Steuerelement ist enthalten, das mit drei Werten gefüllt ist. Ein Parameter wird in der Auflistung mit dem WhereParameters Namen festgelegt, auf Category,
den eine der Eigenschaften des Datenobjekts übereinstimmt. Die ControlID Eigenschaft wird auf die ID des DropDownList Steuerelements festgelegt. Das LinqDataSource Steuerelement erstellt automatisch die Where Eigenschaft, um Datensätze basierend auf dem Wert zu filtern, den der Benutzer aus dem DropDownList Steuerelement auswählt. Die Abfrage gibt die Datensätze zurück, Category
deren Eigenschaft dem Wert entspricht, den der Benutzer aus dem DropDownList Steuerelement ausgewählt hat.
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
<asp:ListItem Value="Sports"></asp:ListItem>
<asp:ListItem Value="Garden"></asp:ListItem>
<asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
AutoGenerateWhereClause="true"
ID="LinqDataSource1"
runat="server">
<WhereParameters>
<asp:ControlParameter
Name="Category"
ControlID="DropDownList1"
Type="String" />
</WhereParameters>
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:DropDownList AutoPostBack="true" ID="DropDownList1" runat="server">
<asp:ListItem Value="Sports"></asp:ListItem>
<asp:ListItem Value="Garden"></asp:ListItem>
<asp:ListItem Value="Auto"></asp:ListItem>
</asp:DropDownList>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
AutoGenerateWhereClause="true"
ID="LinqDataSource1"
runat="server">
<WhereParameters>
<asp:ControlParameter
Name="Category"
ControlID="DropDownList1"
Type="String" />
</WhereParameters>
</asp:LinqDataSource>
<asp:GridView
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
Hinweise
Wenn Sie die Eigenschaft auf true
festlegen, erstellt das LinqDataSource Steuerelement dynamisch die AutoGenerateWhereClause Where-Klausel aus den Parametern in der WhereParameters Auflistung. Jeder Parameter, den Sie der WhereParameters Auflistung hinzufügen, muss Name auf einen Wert festgelegt sein, der einer Eigenschaft im Datenobjekt entspricht, das abgefragt wird. Die automatisch generierte Where-Klausel überprüft, ob der in der WhereParameters Auflistung angegebene Wert dem Wert der übereinstimmenden Eigenschaft im Datenobjekt entspricht. Wenn Sie mehrere Parameter bereitstellen, werden die Parameter mit einem logischen AND
Vorgang verknüpft. Parameter, die einen leeren Wert enthalten null
oder einen leeren Wert enthalten, sind in der Where-Klausel nicht enthalten.
Die automatisch generierte Where Klausel kann nur für Gleichheit getestet und Parameter nur mit dem AND
Vorgang verknüpft werden. Legen Sie die AutoGenerateWhereClause Eigenschaft nicht fest, wenn Sie eine Bedingung true
hinzufügen müssen, die nicht auf Gleichheit getestet wird, oder wenn Sie Parameter mit dem OR
Vorgang verknüpfen müssen. Sie können diese Aufgaben ausführen, indem Sie die AutoGenerateWhereClause Eigenschaft auf die Eigenschaft festlegen und Platzhalter in der Eigenschaft false
für jeden Parameter in der Where WhereParameters Auflistung hinzufügen. Stellen Sie in der Eigenschaft jeden Platzhalternamen mit dem Where @-Symbol vor.
Sie legen die Eigenschaft nicht fest, wenn die AutoGenerateWhereClause Eigenschaft lautettrue
, da der Parser dynamisch die Where Where-Klausel erstellt. Das LinqDataSource Steuerelement löst eine Ausnahme aus, wenn die Eigenschaft ist und die AutoGenerateWhereClause Where Eigenschaft true
Werte zugewiesen wird.