Compartir a través de


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 usa para crear la cláusula Select.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer la propiedad Select 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 palabra clave Key contiene la propiedad que se ha usado para agrupar datos. En este ejemplo, Key contendrá los valores compartidos de la propiedad ProductCategory.

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

Especifique las propiedades que se van a recuperar estableciendo la propiedad Select en los nombres de las propiedades que desea incluir en los datos devueltos.

Si recupera un subconjunto de propiedades del objeto de datos, el control LinqDataSource crea dinámicamente una clase que contiene solo las propiedades que especifique en la propiedad Select. 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 propiedad TableName. En su lugar, debe usar el método new en la propiedad Select para indicar que se devuelve una nueva clase de la consulta. Por ejemplo, para devolver solo las propiedades FirstName y LastName de un objeto que contiene más de estas propiedades, establezca la propiedad Select en new(FirstName, LastName). El control LinqDataSource creará dinámicamente la nueva clase que especificó en el método new.

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

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

Escoger 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 propiedad Select. En su lugar, administre la presentación a través del control enlazado a datos. Al usar el control DetailsView o el control GridView, también debe establecer el AutoGenerateRows o la propiedad AutoGenerateColumns en false. 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 propiedad Select. Puede usar los métodos agregados siguientes:

  • Count()

  • de columna de

  • de columna de

  • de columna de

  • de columna de

  • Where( ) de condición

  • Any()

  • All( ) de condición

Para obtener más información, vea Información general del control de servidor web LinqDataSource y Cómo: Agrupar y agregar datos mediante el control LinqDataSource.

Al agrupar datos, puede incluir Key y It, que se crean dinámicamente, en la propiedad Select. La propiedad Key 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 propiedad Key contendrá cada valor único en la propiedad Category. La propiedad It hace referencia a una colección de registros individuales en una agrupación de datos. Puede iterar en la propiedad It 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 propiedad It contiene todos los registros individuales que comparten un valor común en la propiedad Category.

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

Se aplica a