LinqDataSource.Select 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 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ónAny()
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.