Compartilhar via


LinqDataSource.Select Propriedade

Definição

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 coluna

  • Sum( ) de coluna

  • Max( ) de coluna

  • Min( ) de coluna

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

Aplica-se a