LinqDataSource.AutoGenerateWhereClause Свойство

Определение

Возвращает или задает значение, определяющее, создает ли динамически элемент управления LinqDataSource оператор Where, основываясь на значениях, определенных в коллекции WhereParameters.Gets or sets a value that indicates whether the LinqDataSource control dynamically creates a Where clause based on values defined in the WhereParameters collection.

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

Значение свойства

true, если элемент управления LinqDataSource создает оператор Where; в противном случае — false.true if the LinqDataSource control will create the Where clause; otherwise, false. Значение по умолчанию — false.The default is false.

Реализации

Примеры

В следующем примере показан элемент управления LinqDataSource с AutoGenerateWhereClause, для которого задано значение true.The following example shows a LinqDataSource control with the AutoGenerateWhereClause set to true. Элемент управления GridView привязан к элементу управления LinqDataSource для вывода данных, возвращаемых из запроса.A GridView control is bound to the LinqDataSource control to display the data that is returned from the query. Включается элемент управления DropDownList, который заполняется тремя значениями.A DropDownList control is included that is populated with three values. Параметр включается в коллекцию WhereParameters с именем, равным Category, что соответствует одному из свойств объекта данных.A parameter is included in the WhereParameters collection with the name set to Category, which matches one of the properties of the data object. Его свойству ControlID присваивается идентификатор элемента управления DropDownList.Its ControlID property is set to the ID of the DropDownList control. Элемент управления LinqDataSource автоматически создает свойство Where для фильтрации записей на основе значения, которое пользователь выбирает из элемента управления DropDownList.The LinqDataSource control automatically creates the Where property to filter records based on the value that the user selects from the DropDownList control. Запрос возвращает записи, свойство Category которых соответствует значению, выбранному пользователем из элемента управления DropDownList.The query returns the records whose Category property matches the value that the user has selected from the DropDownList control.

<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>

Комментарии

Если для свойства AutoGenerateWhereClause задано значение true, элемент управления LinqDataSource динамически создает предложение WHERE на основе параметров в коллекции WhereParameters.When you set the AutoGenerateWhereClause property to true, the LinqDataSource control dynamically creates the Where clause from the parameters in the WhereParameters collection. Каждый параметр, добавляемый в коллекцию WhereParameters, должен иметь свойство Name, для которого задано значение, совпадающее со свойством в объекте данных, к которому выполняется запрос.Each parameter that you add to the WhereParameters collection must have its Name property set to a value that matches a property in the data object that is being queried. Автоматически созданное предложение WHERE проверит, равно ли значение, указанное в коллекции WhereParameters, значению соответствующего свойства в объекте данных.The automatically generated Where clause will check whether the value specified in the WhereParameters collection equals the value of the matching property in the data object. При предоставлении более одного параметра параметры связываются с логической операцией AND.If you provide more than one parameter, the parameters are linked with a logical AND operation. Параметры, содержащие null или пустое значение, не включаются в предложение WHERE.Parameters that contain null or an empty value are not included in the Where clause.

Автоматически созданное предложение Where может проверять только на равенство и может связывать параметры только с операцией AND.The automatically generated Where clause can test only for equality and can link parameters only with the AND operation. Не устанавливайте свойство AutoGenerateWhereClause в значение true, если необходимо добавить условие, которое не проверяет на равенство, или если необходимо связать параметры с операцией OR.Do not set the AutoGenerateWhereClause property to true if you have to add a condition that does not test for equality or if you have to relate parameters with the OR operation. Эти задачи можно выполнить, задав для свойства AutoGenerateWhereClause значение false и добавив заполнители в свойство Where для каждого параметра в коллекции WhereParameters.You can accomplish these tasks by setting the AutoGenerateWhereClause property to false and adding placeholders in the Where property for each parameter in the WhereParameters collection. В свойстве Where перед именем заполнителя введите символ @.In the Where property, preface each placeholder name with the @ symbol.

Свойство Where не задается, если свойство AutoGenerateWhereClause имеет значение true, так как средство синтаксического анализа динамически создает предложение WHERE.You do not set the Where property when the AutoGenerateWhereClause property is true, because the parser dynamically creates the Where clause. Элемент управления LinqDataSource создает исключение, если свойство AutoGenerateWhereClause имеет значение true и свойству Where присваиваются значения.The LinqDataSource control throws an exception if the AutoGenerateWhereClause property is true and the Where property is assigned values.

Применяется к