LinqDataSource.Select Egenskap

Definition

Hämtar eller anger de egenskaper och beräknade värden som ingår i hämtade data.

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

Egenskapsvärde

En sträng som används för att skapa Select-satsen.

Exempel

I följande exempel visas hur du anger Select egenskapen till en delmängd av egenskaper i dataobjektet.

<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>

I följande exempel visas hur du hämtar värden i en egenskap som har använts för att gruppera data och hämta medelvärdet för de grupperade posterna. Nyckelordet Key innehåller den egenskap som har använts för att gruppera data. I det här exemplet Key innehåller de delade värdena från egenskapen 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>

Kommentarer

Om du inte anger Select egenskapen LinqDataSource hämtar kontrollen alla egenskaper (datakolumner) från dataobjektet. Du använder Select egenskapen för att hämta en delmängd av egenskaper från objektet eller för att beräkna nya värden när data hämtas.

Du anger vilka egenskaper som ska hämtas genom att ange Select egenskapen till namnen på de egenskaper som du vill inkludera i de returnerade data.

Om du hämtar en delmängd av egenskaper från dataobjektet LinqDataSource skapar kontrollen dynamiskt en klass som endast innehåller de egenskaper som du anger i Select egenskapen. En klass skapas också dynamiskt om du beräknar egenskaper som inte är egenskaper i dataobjektet. I dessa fall är objektet som returneras från frågan inte en instans av klassen som anges i egenskapen TableName . I stället måste du använda new -metoden i Select egenskapen för att indikera att en ny klass returneras från frågan. Om du till exempel bara FirstName vill returnera egenskaperna och LastName från ett objekt som innehåller mer än de här egenskaperna anger du Select egenskapen till new(FirstName, LastName). Kontrollen LinqDataSource skapar dynamiskt den nya klass som du angav i new -metoden.

Du kan använda nyckelordet As för att tilldela ett alias till ett valt värde. Om du tilldelar ett alias måste du inkludera aliasegenskaperna new i -metoden. Alla databundna kontroller som binder till resultatet från LinqDataSource kontrollen måste referera till egenskapen med aliaset. Om du till exempel anger Select egenskapen till new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)kan den databundna kontrollen komma åt två egenskaper SalesRegion och RevenueThousands.

Du använder new funktionen i egenskapen Select enligt de villkor som anges i följande tabell.

Välj Användning av nya Example
Enskild egenskap. new behövs inte. Select="Category"
Flera egenskaper. new Behövs. Select="new(Category, Name)"
En eller flera egenskaper som har ett alias. new Behövs. Select="new(Category As CategoryGroup)"

Om du vill aktivera automatiska dataändringar, men inte vill visa alla egenskaper från dataobjektet, anger du inte egenskapen Select . Hantera i stället visningen via den databundna kontrollen. När du använder DetailsView kontrollen eller GridView kontrollen måste du också ange AutoGenerateRows egenskapen eller AutoGenerateColumns till false. Alla värden som inte visas i den databundna kontrollen lagras i visningstillstånd. De skickas oförändrade till datakällan när datauppdateringen utförs.

När du grupperar data i frågan kan du inkludera aggregeringsmetoder i egenskapen Select . Du kan använda följande aggregeringsmetoder:

  • Count()

  • Average( Kolumn)

  • Sum( Kolumn)

  • Max( Kolumn)

  • Min( Kolumn)

  • Where( tillstånd)

  • Any()

  • All( tillstånd)

Mer information finns i LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control (Översikt över webbserverkontroll för LinqDataSource) och How to: Group and Aggregate Data Using the LinqDataSource Control (Hur du grupperar och aggregerar data med hjälp av LinqDataSource-kontrollen).

När du grupperar data kan du inkludera Key och It, som skapas dynamiskt i Select egenskapen. Egenskapen Key refererar till värdena i egenskapen eller egenskaperna som användes för att gruppera data. Om du till exempel grupperar efter en egenskap med namnet CategoryKey innehåller egenskapen varje unikt värde i egenskapenCategory. Egenskapen It refererar till en samling enskilda poster i en gruppering av data. Du kan iterera över It egenskapen för att hämta de enskilda poster som har konsoliderats i grupperingsåtgärden. Om du till exempel grupperar efter en egenskap med namnet CategoryIt innehåller egenskapen alla enskilda poster som delar ett gemensamt värde i Category egenskapen.

Om du inkluderar nyckelordet ItSelect i egenskapen när du grupperar data måste du tilldela nyckelordet It ett alias. Kontrollen LinqDataSource utlöser ett undantag om It den inte har något alias. Du kan tilldela nyckelordet Key ett alias, men det krävs inte.

Gäller för