Udostępnij za pośrednictwem


LinqDataSource.Select Właściwość

Definicja

Pobiera lub ustawia właściwości i wartości obliczeniowe uwzględnione w pobranych danych.

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

Wartość właściwości

Ciąg używany do tworzenia klauzuli Select.

Przykłady

W poniższym przykładzie pokazano, jak ustawić właściwość Select na podzestaw właściwości w obiekcie danych.

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

W poniższym przykładzie pokazano, jak pobrać wartości we właściwości użytej do grupowania danych oraz pobrać średnią dla pogrupowanych rekordów. Słowo kluczowe Key zawiera właściwość, która została użyta do grupowania danych. W tym przykładzie Key będzie zawierać wartości udostępnione z właściwości 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>

Uwagi

Jeśli nie ustawisz właściwości Select, kontrolka LinqDataSource pobiera wszystkie właściwości (kolumny danych) z obiektu danych. Właściwość Select służy do pobierania podzestawu właściwości z obiektu lub obliczania nowych wartości podczas pobierania danych.

Określ właściwości do pobrania, ustawiając właściwość Select na nazwy właściwości, które mają zostać uwzględnione w zwracanych danych.

Jeśli pobierasz podzestaw właściwości z obiektu danych, kontrolka LinqDataSource dynamicznie tworzy klasę zawierającą tylko właściwości określone we właściwości Select. Klasa jest również tworzona dynamicznie, jeśli obliczasz właściwości, które nie są właściwościami w obiekcie danych. W takich przypadkach obiekt zwrócony z zapytania nie jest wystąpieniem klasy określonej we właściwości TableName. Zamiast tego należy użyć metody new we właściwości Select, aby wskazać, że nowa klasa jest zwracana z zapytania. Aby na przykład zwrócić tylko właściwości FirstName i LastName z obiektu zawierającego więcej niż te właściwości, ustaw właściwość Select na wartość new(FirstName, LastName). Kontrolka LinqDataSource będzie dynamicznie tworzyć nową klasę określoną w metodzie new.

Możesz użyć słowa kluczowego As, aby przypisać alias do wybranej wartości. Jeśli przypiszesz alias, musisz uwzględnić właściwości aliasu w metodzie new. Każda kontrolka powiązana z danymi powiązana z wynikami kontrolki LinqDataSource musi odwoływać się do właściwości za pomocą aliasu. Jeśli na przykład ustawisz właściwość Select na new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), kontrola powiązana z danymi będzie mogła uzyskać dostęp do dwóch właściwości, SalesRegion i RevenueThousands.

Funkcja new jest używana we właściwości Select zgodnie z warunkami wymienionymi w poniższej tabeli.

Wybrać Korzystanie z nowych Przykład
Pojedyncza właściwość. new nie są potrzebne. Select="Category"
Wiele właściwości. new potrzebne. Select="new(Category, Name)"
Pojedyncze lub wiele właściwości, które mają alias. new potrzebne. Select="new(Category As CategoryGroup)"

Jeśli chcesz włączyć automatyczne modyfikacje danych, ale nie chcesz wyświetlać wszystkich właściwości z obiektu danych, nie ustawiaj właściwości Select. Zamiast tego zarządzaj wyświetlaniem za pomocą kontrolki powiązanej z danymi. W przypadku używania kontrolki DetailsView lub kontrolki GridView należy również ustawić AutoGenerateRows lub właściwość AutoGenerateColumns na false. Wszystkie wartości, które nie są wyświetlane w kontrolce powiązanej z danymi, są przechowywane w stanie widoku. Są one przekazywane bez zmian do źródła danych podczas wykonywania aktualizacji danych.

Podczas grupowania danych w zapytaniu można uwzględnić metody agregacji we właściwości Select. Można użyć następujących metod agregacji:

  • Count()

  • kolumny

  • kolumny

  • kolumny

  • kolumny

  • Where( warunek)

  • Any()

  • All( warunek)

Aby uzyskać więcej informacji, zobacz LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control.

Podczas grupowania danych można uwzględnić Key i It, które są dynamicznie tworzonymi właściwościami, we właściwości Select. Właściwość Key odnosi się do wartości we właściwości lub właściwościach, które zostały użyte do grupowania danych. Jeśli na przykład grupujesz według właściwości o nazwie Category, właściwość Key będzie zawierać każdą unikatową wartość we właściwości Category. Właściwość It odnosi się do kolekcji poszczególnych rekordów w grupowaniu danych. Można iterować po właściwości It, aby pobrać poszczególne rekordy, które zostały skonsolidowane w operacji grupowania. Jeśli na przykład grupujesz według właściwości o nazwie Category, właściwość It zawiera wszystkie pojedyncze rekordy, które mają wspólną wartość we właściwości Category.

W przypadku uwzględnienia słowa kluczowego It we właściwości Select podczas grupowania danych należy przypisać alias do słowa kluczowego It. Kontrolka LinqDataSource zgłosi wyjątek, jeśli It nie ma aliasu. Możesz przypisać alias do słowa kluczowego Key, ale nie jest to wymagane.

Dotyczy