LinqDataSource.Select Propiedad

Definición

Obtiene o establece las propiedades y los valores calculados que se incluyen en los datos recuperados.

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

Cadena que se utiliza para crear la cláusula Select.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer la Select propiedad en un subconjunto de propiedades del objeto de datos.

<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 valores de una propiedad que se ha usado para agrupar datos y recuperar el promedio de los registros agrupados. La Key palabra clave contiene la propiedad que se ha usado para agrupar datos. En este ejemplo, Key contendrá los valores compartidos de la ProductCategory propiedad .

<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 establece la Select propiedad , el LinqDataSource control recupera todas las propiedades (columnas de datos) del objeto de datos. La propiedad se usa Select para recuperar un subconjunto de propiedades del objeto o para calcular nuevos valores cuando se recuperan los datos.

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.

Si recupera un subconjunto de propiedades del objeto de datos, el LinqDataSource control crea dinámicamente una clase que contiene solo las propiedades que especifique en la Select propiedad . También se crea una clase dinámicamente si calcula propiedades que no son propiedades en el objeto de datos. En estos casos, el objeto devuelto de la consulta no es una instancia de la clase especificada en la TableName propiedad . En su lugar, debe usar el new método en la Select propiedad para indicar que se devuelve una nueva clase de la consulta. Por ejemplo, para devolver solo las FirstName propiedades y LastName de un objeto que contiene más de estas propiedades, establezca la Select propiedad new(FirstName, LastName)en . El LinqDataSource control creará dinámicamente la nueva clase que especificó en el new método .

Puede usar la As palabra clave para asignar un alias a un valor seleccionado. Si asigna un alias, debe incluir las propiedades con alias en el new método . Cualquier control enlazado a datos que se enlaza a los resultados del LinqDataSource control debe hacer referencia a la propiedad por el alias. Por ejemplo, si establece la Select propiedad new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)en , el control enlazado a datos puede tener acceso a dos propiedades SalesRegion y RevenueThousands.

La función se new usa en la Select propiedad según las condiciones enumeradas en la tabla siguiente.

Seleccionar Uso de nuevo Ejemplo
Propiedad única. new no es necesario. Select="Category"
Varias propiedades. new Necesario. Select="new(Category, Name)"
Una o varias propiedades que tienen un alias. new Necesario. Select="new(Category As CategoryGroup)"

Si desea habilitar modificaciones automáticas de datos, pero no desea mostrar todas las propiedades del objeto de datos, no establezca la Select propiedad . En su lugar, administre la presentación a través del control enlazado a datos. Al usar el DetailsView control o el GridView control , también debe establecer la AutoGenerateRows propiedad falseo en AutoGenerateColumns . Los valores que no se muestran en el control enlazado a datos se almacenan en estado de vista. Se pasan sin cambios al origen de datos cuando se realiza la actualización de datos.

Al agrupar datos en la consulta, puede incluir métodos agregados en la Select propiedad . Puede usar los métodos agregados siguientes:

  • Count()

  • Average(Columna)

  • Sum(Columna)

  • Max(Columna)

  • Min(Columna)

  • Where(condition)

  • Any()

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

Al agrupar los datos, puede incluir Key y It, que se crean dinámicamente, en la Select propiedad . La Key propiedad hace referencia a los valores de la propiedad o propiedades que se usaron para agrupar los datos. Por ejemplo, si agrupa por una propiedad denominada Category, la Key propiedad contendrá cada valor único en la Category propiedad . La It propiedad hace referencia a una colección de registros individuales en una agrupación de datos. Puede iterar por la It propiedad para recuperar los registros individuales que se han consolidado en la operación de agrupación. 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 .

Si incluye la It palabra clave en la Select propiedad al agrupar los datos, debe asignar un alias a la It palabra clave . El LinqDataSource control producirá una excepción si It no tiene un alias. Puede asignar un alias a la Key palabra clave , pero esto no es necesario.

Se aplica a