Bagikan melalui


LinqDataSource.Select Properti

Definisi

Mendapatkan atau mengatur properti dan nilai terhitung yang disertakan dalam data yang diambil.

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

Nilai Properti

String yang digunakan untuk membuat klausa Pilih.

Contoh

Contoh berikut menunjukkan cara mengatur properti Select ke subset properti dalam objek data.

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

Contoh berikut menunjukkan cara mengambil nilai dalam properti yang telah digunakan untuk mengelompokkan data, dan untuk mengambil rata-rata untuk rekaman yang dikelompokkan. Kata kunci Key berisi properti yang telah digunakan untuk mengelompokkan data. Dalam contoh ini, Key akan berisi nilai bersama dari properti 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>

Keterangan

Jika Anda tidak mengatur properti Select, kontrol LinqDataSource mengambil semua properti (kolom data) dari objek data. Anda menggunakan properti Select untuk mengambil subset properti dari objek atau untuk menghitung nilai baru saat data diambil.

Anda menentukan properti mana yang akan diambil dengan mengatur properti Select ke nama properti yang ingin Anda sertakan dalam data yang dikembalikan.

Jika Anda mengambil subset properti dari objek data, kontrol LinqDataSource secara dinamis membuat kelas yang hanya berisi properti yang Anda tentukan di properti Select. Kelas juga dibuat secara dinamis jika Anda menghitung properti yang bukan properti dalam objek data. Dalam kasus ini, objek yang dikembalikan dari kueri bukan instans kelas yang ditentukan dalam properti TableName. Sebagai gantinya, Anda harus menggunakan metode new di properti Select untuk menunjukkan bahwa kelas baru dikembalikan dari kueri. Misalnya, untuk mengembalikan properti FirstName dan LastName saja dari objek yang berisi lebih dari properti ini, atur properti Select ke new(FirstName, LastName). Kontrol LinqDataSource akan secara dinamis membuat kelas baru yang Anda tentukan dalam metode new.

Anda dapat menggunakan kata kunci As untuk menetapkan alias ke nilai yang dipilih. Jika Menetapkan alias, Anda harus menyertakan properti alias dalam metode new. Kontrol terikat data apa pun yang mengikat hasil dari kontrol LinqDataSource harus merujuk ke properti oleh alias. Misalnya, jika Anda mengatur properti Select ke new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), kontrol terikat data dapat mengakses dua properti, SalesRegion dan RevenueThousands.

Anda menggunakan fungsi new di properti Select sesuai dengan kondisi yang tercantum dalam tabel berikut.

Pilih Penggunaan baru Contoh
Properti tunggal. new tidak diperlukan. Select="Category"
Beberapa properti. new diperlukan. Select="new(Category, Name)"
Properti tunggal atau beberapa yang memiliki alias. new diperlukan. Select="new(Category As CategoryGroup)"

Jika Anda ingin mengaktifkan modifikasi data otomatis, tetapi Anda tidak ingin menampilkan semua properti dari objek data, jangan atur properti Select. Sebagai gantinya, kelola tampilan melalui kontrol terikat data. Saat Anda menggunakan kontrol DetailsView atau kontrol GridView, Anda juga harus mengatur properti AutoGenerateRows atau AutoGenerateColumns ke false. Nilai apa pun yang tidak ditampilkan dalam kontrol terikat data disimpan dalam status tampilan. Mereka diteruskan tidak berubah ke sumber data saat pembaruan data dilakukan.

Saat Mengelompokkan data dalam kueri, Anda bisa menyertakan metode agregat dalam properti Select. Anda dapat menggunakan metode agregat berikut:

  • Count()

  • kolom

  • kolom

  • kolom

  • kolom

  • kondisi

  • Any()

  • kondisi

Untuk informasi selengkapnya, lihat Gambaran Umum Kontrol Server Web LinqDataSource dan Cara: Mengelompokkan dan Mengagregasi Data Menggunakan Kontrol LinqDataSource.

Saat mengelompokkan data, Anda dapat menyertakan Key dan It, yang merupakan properti yang dibuat secara dinamis, di properti Select. Properti Key mengacu pada nilai dalam properti atau properti yang digunakan untuk mengelompokkan data. Misalnya, jika Anda mengelompokkan menurut properti bernama Category, properti Key akan berisi setiap nilai unik dalam properti Category. Properti It mengacu pada kumpulan rekaman individual dalam pengelompokan data. Anda dapat melakukan iterasi melalui properti It untuk mengambil rekaman individual yang telah dikonsolidasikan dalam operasi pengelompokan. Misalnya, jika Anda mengelompokkan menurut properti bernama Category, properti It berisi semua rekaman individual yang berbagi nilai umum di properti Category.

Jika Anda menyertakan kata kunci It di properti Select saat mengelompokkan data, Anda harus menetapkan alias ke kata kunci It. Kontrol LinqDataSource akan melemparkan pengecualian jika It tidak memiliki alias. Anda dapat menetapkan alias ke kata kunci Key, tetapi ini tidak diperlukan.

Berlaku untuk