LinqDataSource.Select Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define as propriedades e os valores calculados incluídos nos dados 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 da propriedade
Uma cadeia de caracteres usada para criar a cláusula Select.
Exemplos
O exemplo a seguir mostra como definir a propriedade Select para um subconjunto de propriedades no objeto de dados.
<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>
O exemplo a seguir mostra como recuperar valores em uma propriedade que foi usada para agrupar dados e recuperar a média dos registros agrupados. A palavra-chave Key
contém a propriedade que foi usada para agrupar dados. Neste exemplo, Key
conterá os valores compartilhados da propriedade 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>
Comentários
Se você não definir a propriedade Select, o controle LinqDataSource recuperará todas as propriedades (colunas de dados) do objeto de dados. Você usa a propriedade Select para recuperar um subconjunto de propriedades do objeto ou para calcular novos valores quando os dados estão sendo recuperados.
Especifique quais propriedades recuperar definindo a propriedade Select para os nomes das propriedades que deseja incluir nos dados retornados.
Se você recuperar um subconjunto de propriedades do objeto de dados, o controle LinqDataSource criará dinamicamente uma classe que contém apenas as propriedades especificadas na propriedade Select. Uma classe também será criada dinamicamente se você calcular propriedades que não são propriedades no objeto de dados. Nesses casos, o objeto retornado da consulta não é uma instância da classe especificada na propriedade TableName. Em vez disso, você deve usar o método new
na propriedade Select para indicar que uma nova classe é retornada da consulta. Por exemplo, para retornar apenas as propriedades FirstName
e LastName
de um objeto que contém mais do que essas propriedades, defina a propriedade Select como new(FirstName, LastName)
. O controle LinqDataSource criará dinamicamente a nova classe especificada no método new
.
Você pode usar a palavra-chave As
para atribuir um alias a um valor selecionado. Se você atribuir um alias, deverá incluir as propriedades aliased no método new
. Qualquer controle associado a dados que se associe aos resultados do controle LinqDataSource deve se referir à propriedade pelo alias. Por exemplo, se você definir a propriedade Select como new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)
, o controle associado a dados poderá acessar duas propriedades, SalesRegion
e RevenueThousands
.
Use a função new
na propriedade Select de acordo com as condições listadas na tabela a seguir.
Selecionar | Uso de novo | Exemplo |
---|---|---|
Propriedade única. |
new não é necessário. |
Select="Category" |
Várias propriedades. |
new necessário. |
Select="new(Category, Name)" |
Propriedades simples ou múltiplas que têm um alias. |
new necessário. |
Select="new(Category As CategoryGroup)" |
Se você quiser habilitar modificações automáticas de dados, mas não quiser exibir todas as propriedades do objeto de dados, não defina a propriedade Select. Em vez disso, gerencie a exibição por meio do controle associado a dados. Ao usar o controle DetailsView ou o controle GridView, você também deve definir o AutoGenerateRows ou a propriedade AutoGenerateColumns para false
. Todos os valores que não são exibidos no controle associado a dados são armazenados no estado de exibição. Eles são passados inalterados para a fonte de dados quando a atualização de dados é executada.
Ao agrupar dados na consulta, você pode incluir métodos de agregação na propriedade Select. Você pode usar os seguintes métodos de agregação:
Count()
Average(
)
de colunaSum(
)
de colunaMax(
)
de colunaMin(
)
de colunaWhere(
condição)
Any()
All(
condição)
Para obter mais informações, consulte Visão geral do controle do servidor Web LinqDataSource e Como agrupar e agregar dados usando o controle LinqDataSource.
Ao agrupar dados, você pode incluir Key
e It
, que são propriedades criadas dinamicamente, na propriedade Select. A propriedade Key
refere-se aos valores na propriedade ou propriedades que foram usadas para agrupar os dados. Por exemplo, se você agrupar por uma propriedade chamada Category
, a propriedade Key
conterá cada valor exclusivo na propriedade Category
. A propriedade It
refere-se a uma coleção de registros individuais em um agrupamento de dados. Você pode iterar pela propriedade It
para recuperar os registros individuais que foram consolidados na operação de agrupamento. Por exemplo, se você agrupar por uma propriedade chamada Category
, a propriedade It
conterá todos os registros individuais que compartilham um valor comum na propriedade Category
.
Se você incluir a palavra-chave It
na propriedade Select ao agrupar dados, deverá atribuir um alias à palavra-chave It
. O controle LinqDataSource gerará uma exceção se It
não tiver um alias. Você pode atribuir um alias à palavra-chave Key
, mas isso não é necessário.