LinqDataSource.AutoGenerateWhereClause Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si el control LinqDataSource crea dinámicamente una cláusula Where según los valores definidos en la colección WhereParameters.
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
Valor de propiedad
Es true
si el control LinqDataSource va a crear la cláusula Where; de lo contrario, es false
. De manera predeterminada, es false
.
Implementaciones
Ejemplos
En el ejemplo siguiente se muestra un LinqDataSource control con el AutoGenerateWhereClause establecido en true
. Un GridView control se enlaza al LinqDataSource control para mostrar los datos que se devuelven de la consulta. Se incluye un DropDownList control que se rellena con tres valores. Un parámetro se incluye en la WhereParameters colección con el nombre establecido en el Category,
que coincide con una de las propiedades del objeto de datos. Su ControlID propiedad se establece en el identificador del DropDownList control. El LinqDataSource control crea automáticamente la Where propiedad para filtrar los registros en función del valor que el usuario selecciona en el DropDownList control. La consulta devuelve los registros cuya Category
propiedad coincide con el valor seleccionado por el usuario del 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>
Comentarios
Al establecer la AutoGenerateWhereClause propiedad true
en , el LinqDataSource control crea dinámicamente la cláusula Where a partir de los parámetros de la WhereParameters colección. Cada parámetro que agregue a la WhereParameters colección debe tener su Name propiedad establecida en un valor que coincida con una propiedad en el objeto de datos que se está consultando. La cláusula Where generada automáticamente comprobará si el valor especificado en la WhereParameters colección es igual al valor de la propiedad coincidente en el objeto de datos. Si proporciona más de un parámetro, los parámetros se vinculan con una operación lógica AND
. Los parámetros que contienen null
o un valor vacío no se incluyen en la cláusula Where.
La cláusula generada Where automáticamente solo puede probar la igualdad y solo puede vincular parámetros con la AND
operación. No establezca la AutoGenerateWhereClause propiedad true
en si tiene que agregar una condición que no pruebe la igualdad o si tiene que relacionar parámetros con la OR
operación. Puede realizar estas tareas estableciendo la AutoGenerateWhereClause propiedad false
en y agregando marcadores de posición en la Where propiedad para cada parámetro de la WhereParameters colección. En la Where propiedad , antepone cada nombre de marcador de posición con el símbolo @ .
No establece la Where propiedad cuando la AutoGenerateWhereClause propiedad es true
, porque el analizador crea dinámicamente la cláusula Where. El LinqDataSource control produce una excepción si la AutoGenerateWhereClause propiedad es true
y la Where propiedad tiene valores asignados.