Partilhar via


LinqDataSource.Select Propriedade

Definição

Obtém ou define as propriedades e os valores calculados que são 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 que é usada para criar a cláusula Select.

Exemplos

O exemplo a seguir mostra como definir a Select propriedade como 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 Key palavra-chave contém a propriedade que foi usada para agrupar dados. Neste exemplo, Key conterá os valores compartilhados da ProductCategory propriedade .

<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 Select propriedade , o LinqDataSource controle recuperará todas as propriedades (colunas de dados) do objeto de dados. Você usa a Select propriedade 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 Select propriedade como os nomes das propriedades que você deseja incluir nos dados retornados.

Se você recuperar um subconjunto de propriedades do objeto de dados, o LinqDataSource controle criará dinamicamente uma classe que contém apenas as propriedades especificadas na Select propriedade . 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 TableName propriedade . Em vez disso, você deve usar o new método na Select propriedade para indicar que uma nova classe é retornada da consulta. Por exemplo, para retornar apenas as FirstName propriedades e LastName de um objeto que contém mais do que essas propriedades, defina a Select propriedade como new(FirstName, LastName). O LinqDataSource controle criará dinamicamente a nova classe que você especificou no new método .

Você pode usar a As palavra-chave para atribuir um alias a um valor selecionado. Se você atribuir um alias, deverá incluir as propriedades com alias no new método . Qualquer controle associado a dados que se associe aos resultados do LinqDataSource controle deve se referir à propriedade pelo alias. Por exemplo, se você definir a Select propriedade como new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), o controle associado a dados poderá acessar duas propriedades, SalesRegion e RevenueThousands.

Use a new função na Select propriedade de acordo com as condições listadas na tabela a seguir.

Selecionar Uso de novos Exemplo
Propriedade única. new não é necessário. Select="Category"
Várias propriedades. new Necessário. Select="new(Category, Name)"
Uma ou várias propriedades 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 Select propriedade . Em vez disso, gerencie a exibição por meio do controle associado a dados. Ao usar o DetailsView controle ou o GridView controle , você também deve definir a AutoGenerateRows propriedade ou AutoGenerateColumns como 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 Select propriedade . Você pode usar os seguintes métodos de agregação:

  • Count()

  • Average(Coluna)

  • Sum(Coluna)

  • Max(Coluna)

  • Min(Coluna)

  • Where(Condição)

  • Any()

  • All(Condição)

Para obter mais informações, consulte Visão geral do controle de 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 Select propriedade . A Key propriedade 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 Key propriedade conterá cada valor exclusivo na Category propriedade . A It propriedade refere-se a uma coleção de registros individuais em um agrupamento de dados. Você pode iterar sobre a It propriedade para recuperar os registros individuais que foram consolidados na operação de agrupamento. Por exemplo, se você agrupar por uma propriedade chamada Category, a It propriedade conterá todos os registros individuais que compartilham um valor comum na Category propriedade .

Se você incluir a It palavra-chave na Select propriedade ao agrupar dados, deverá atribuir um alias à It palavra-chave . O LinqDataSource controle gerará uma exceção se It não tiver um alias. Você pode atribuir um alias à Key palavra-chave , mas isso não é necessário.

Aplica-se a