LinqDataSource.Select Propiedad

Definición

Obtiene o establece las propiedades y los valores calculados que se incluyen en los datos recuperados.Gets or sets the properties and calculated values that are included in the retrieved data.

public:
 property System::String ^ Select { System::String ^ get(); void set(System::String ^ value); };
public string Select { get; set; }
member this.Select : string with get, set
Public Property Select As String

Valor de propiedad

String

Cadena que se utiliza para crear la cláusula Select.A string that is used to create the Select clause.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer la Select propiedad en un subconjunto de propiedades del objeto de datos.The following example shows how to set the Select property to a subset of properties in the data object.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

En el ejemplo siguiente se muestra cómo recuperar los valores de una propiedad que se ha utilizado para agrupar los datos y para recuperar el promedio de los registros agrupados.The following example shows how to retrieve values in a property that has been used to group data, and to retrieve the average for the grouped records. La Key palabra clave contiene la propiedad que se ha utilizado para agrupar los datos.The Key keyword contains the property that has been used for grouping data. En este ejemplo, contendrá Key los valores compartidos de la ProductCategory propiedad.In this example, Key will contain the shared values from the ProductCategory property.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Comentarios

Si no se establece la Select propiedad, el LinqDataSource control recupera todas las propiedades (columnas de datos) del objeto de datos.If you do not set the Select property, the LinqDataSource control retrieves all the properties (data columns) from the data object. La propiedad se usa Select para recuperar un subconjunto de propiedades del objeto o para calcular los nuevos valores cuando se recuperan los datos.You use the Select property to retrieve a subset of properties from the object or to calculate new values when the data is being retrieved.

Para especificar las propiedades que se van a recuperar, establezca la Select propiedad en los nombres de las propiedades que desea incluir en los datos devueltos.You specify which properties to retrieve by setting the Select property to the names of the properties that you want to include in the returned data.

Si recupera un subconjunto de propiedades del objeto de datos, el LinqDataSource control crea dinámicamente una clase que solo contiene las propiedades que se especifican en la Select propiedad.If you retrieve a subset of properties from the data object, the LinqDataSource control dynamically creates a class that contains only the properties that you specify in the Select property. Una clase también se crea dinámicamente si se calculan propiedades que no son propiedades en el objeto de datos.A class is also created dynamically if you calculate properties that are not properties in the data object. En estos casos, el objeto devuelto de la consulta no es una instancia de la clase que se especifica en la TableName propiedad.In these cases, the object returned from the query is not an instance of the class that is specified in the TableName property. En su lugar, debe utilizar el new método en la Select propiedad para indicar que la consulta devuelve una nueva clase.Instead, you must use the new method in the Select property to indicate that a new class is returned from the query. Por ejemplo, para devolver solo las FirstName LastName propiedades y de un objeto que contenga más de estas propiedades, establezca la Select propiedad en new(FirstName, LastName) .For example, to return only the FirstName and LastName properties from an object that contains more than these properties, set the Select property to new(FirstName, LastName). El LinqDataSource control creará dinámicamente la nueva clase que especificó en el new método.The LinqDataSource control will dynamically create the new class that you specified in the new method.

Puede usar la As palabra clave para asignar un alias a un valor seleccionado.You can use the As keyword to assign an alias to a selected value. Si asigna un alias, debe incluir las propiedades con alias en el new método.If you assign an alias, you must include the aliased properties in the new method. Los controles enlazados a datos que se enlazan a los resultados del LinqDataSource control deben hacer referencia a la propiedad mediante el alias.Any data-bound control that binds to the results from the LinqDataSource control must refer to the property by the alias. Por ejemplo, si establece la Select propiedad en new(Region As SalesRegion, Revenue / 1000 As RevenueThousands) , el control enlazado a datos puede tener acceso a dos propiedades, SalesRegion y RevenueThousands .For example, if you set the Select property to new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), the data-bound control can access two properties, SalesRegion and RevenueThousands.

La función se utiliza new en la Select propiedad según las condiciones que se indican en la tabla siguiente.You use the new function in the Select property according to the conditions listed in the following table.

SeleccionarSelect Uso de NewUse of new EjemploExample
Propiedad única.Single property. new no es necesario.new not needed. Select="Category"
Varias propiedades.Multiple properties. new necesarias.new needed. Select="new(Category, Name)"
Una o varias propiedades que tienen un alias.Single or multiple properties that have an alias. new necesarias.new needed. Select="new(Category As CategoryGroup)"

Si desea habilitar las modificaciones de datos automáticas, pero no desea mostrar todas las propiedades del objeto de datos, no establezca la Select propiedad.If you want to enable automatic data modifications, but you do not want to display all the properties from the data object, do not set the Select property. En su lugar, administre la presentación a través del control enlazado a datos.Instead, manage the display through the data-bound control. Al utilizar el DetailsView control o el GridView control, también debe establecer la AutoGenerateRows AutoGenerateColumns propiedad o en false .When you use the DetailsView control or the GridView control, you must also set the AutoGenerateRows or the AutoGenerateColumns property to false. Los valores que no se muestran en el control enlazado a datos se almacenan en el estado de vista.Any values that are not displayed in the data-bound control are stored in view state. Se pasan sin cambios al origen de datos cuando se realiza la actualización de datos.They are passed unchanged to the data source when the data update is performed.

Al agrupar los datos en la consulta, puede incluir métodos de agregación en la Select propiedad.When you group data in the query, you can include aggregate methods in the Select property. Puede usar los siguientes métodos de agregado:You can use the following aggregate methods:

  • Count()

  • Average( column )Average( column )

  • Sum( column )Sum( column )

  • Max( column )Max( column )

  • Min( column )Min( column )

  • Where( condición )Where( condition )

  • Any()

  • All( condición )All( condition )

Para obtener más información, vea información general sobre el control de servidor Web LinqDataSource y Cómo: agrupar y agregar datos mediante el control LinqDataSource.For more information, see LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control.

Al agrupar los datos, puede incluir Key y It , que son propiedades creadas dinámicamente, en la Select propiedad.When you group data, you can include Key and It, which are dynamically created properties, in the Select property. La Key propiedad hace referencia a los valores de la propiedad o de las propiedades que se usaron para agrupar los datos.The Key property refers to the values in the property or properties that were used to group the data. Por ejemplo, si agrupa por una propiedad denominada Category , la propiedad contendrá Key cada valor único en la Category propiedad.For example, if you group by a property named Category, the Key property will contain each unique value in the Category property. La It propiedad hace referencia a una colección de registros individuales en una agrupación de datos.The It property refers to a collection of individual records in a grouping of data. Puede recorrer en iteración la It propiedad para recuperar los registros individuales que se han consolidado en la operación de agrupación.You can iterate over the It property to retrieve the individual records that have been consolidated in the grouping operation. Por ejemplo, si agrupa por una propiedad denominada Category , la It propiedad contiene todos los registros individuales que comparten un valor común en la Category propiedad.For example, if you group by a property named Category, the It property contains all the individual records that share a common value in the Category property.

Si incluye la It palabra clave en la Select propiedad al agrupar los datos, debe asignar un alias a la It palabra clave.If you include the It keyword in the Select property when you group data, you must assign an alias to the It keyword. El LinqDataSource control producirá una excepción si It no tiene un alias.The LinqDataSource control will throw an exception if It does not have an alias. Puede asignar un alias a la Key palabra clave, pero esto no es necesario.You can assign an alias to the Key keyword, but this is not required.

Se aplica a