LinqDataSource.Select Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Alınan verilere dahil edilen özellikleri ve hesaplanan değerleri alır veya ayarlar.
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
Özellik Değeri
Select yan tümcesini oluşturmak için kullanılan dize.
Örnekler
Aşağıdaki örnekte, özelliğinin veri nesnesindeki Select özelliklerin bir alt kümesine nasıl ayarlanacağı gösterilmektedir.
<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>
Aşağıdaki örnekte, verileri gruplandırmak için kullanılan bir özellikteki değerlerin nasıl alındığı ve gruplandırılmış kayıtların ortalamasının nasıl alındığı gösterilmektedir.
Key anahtar sözcüğü, verileri gruplandırma için kullanılan özelliği içerir. Bu örnekte özelliğinden KeyProductCategory paylaşılan değerleri içerecektir.
<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>
Açıklamalar
Özelliğini ayarlamazsanız Select , LinqDataSource denetim veri nesnesinden tüm özellikleri (veri sütunları) alır. nesnesinden özelliklerin Select bir alt kümesini almak veya veriler alınırken yeni değerleri hesaplamak için özelliğini kullanırsınız.
Özelliği döndürülen verilere eklemek istediğiniz özelliklerin adlarına ayarlayarak Select hangi özelliklerin alınacağını belirtirsiniz.
Veri nesnesinden özelliklerin bir alt kümesini alırsanız, LinqDataSource denetim dinamik olarak yalnızca özelliğinde Select belirttiğiniz özellikleri içeren bir sınıf oluşturur. Veri nesnesinde özellik olmayan özellikleri hesaplarsanız bir sınıf da dinamik olarak oluşturulur. Bu gibi durumlarda, sorgudan döndürülen nesne özelliğinde TableName belirtilen sınıfın bir örneği değildir. Bunun yerine, sorgudan yeni bir sınıf döndürüldüğünü belirtmek için özelliğinde Select yöntemini kullanmanız new gerekir. Örneğin, bu özelliklerden daha fazlasını içeren bir nesneden yalnızca FirstName ve LastName özelliklerini döndürmek Select için özelliğini olarak new(FirstName, LastName)ayarlayın. Denetim, LinqDataSource yönteminde new belirttiğiniz yeni sınıfı dinamik olarak oluşturur.
Seçili bir değere diğer ad atamak için anahtar sözcüğünü As kullanabilirsiniz. Bir diğer ad atarsanız, yöntemine diğer ad özellikleri new eklemeniz gerekir. Denetimden LinqDataSource sonuçlara bağlanan herhangi bir veriye bağlı denetim, diğer adıyla özelliğine başvurmalıdır. Örneğin, özelliğini olarak ayarlarsanızSelect, veriye bağlı denetim ve RevenueThousandsolmak üzere iki özelliğe SalesRegionnew(Region As SalesRegion, Revenue / 1000 As RevenueThousands)erişebilir.
özelliğindeki newSelect işlevini, aşağıdaki tabloda listelenen koşullara göre kullanırsınız.
| Seçmek | Yeni kullanımı | Örnek |
|---|---|---|
| Tek özellik. |
new gerekli değildir. |
Select="Category" |
| Birden çok özellik. |
new Gerekli. |
Select="new(Category, Name)" |
| Diğer adı olan tek veya birden çok özellik. |
new Gerekli. |
Select="new(Category As CategoryGroup)" |
Otomatik veri değişikliklerini etkinleştirmek istiyorsanız ancak veri nesnesinden tüm özellikleri görüntülemek istemiyorsanız, özelliğini ayarlamayın Select . Bunun yerine, görüntüyü veriye bağlı denetim aracılığıyla yönetin. Denetimi veya GridView denetimi kullandığınızdaDetailsView, veya AutoGenerateColumns özelliğini falseolarak da ayarlamanız AutoGenerateRows gerekir. Veriye bağlı denetimde görüntülenmeyen tüm değerler görünüm durumunda depolanır. Bunlar, veri güncelleştirmesi gerçekleştirildiğinde veri kaynağına değiştirilmeden geçirilir.
Sorgudaki verileri gruplandırdığınızda, özelliğine Select toplama yöntemleri ekleyebilirsiniz. Aşağıdaki toplama yöntemlerini kullanabilirsiniz:
Count()Average(Sütun)Sum(Sütun)Max(Sütun)Min(Sütun)Where(koşul)Any()All(koşul)
Daha fazla bilgi için bkz. LinqDataSource Web Sunucusu Denetimine Genel Bakış ve Nasıl yapılır: LinqDataSource Denetimini Kullanarak Verileri Gruplandırma ve Toplama.
Verileri gruplandırırken, özelliğine dinamik olarak oluşturulan özellikler Select olan ve ItekleyebilirsinizKey. özelliği, Key verileri gruplandırmak için kullanılan özellik veya özelliklerdeki değerlere başvurur. Örneğin, adlı CategoryKey bir özelliğe göre gruplandırdığınızda, özelliği özelliğindeki Category her benzersiz değeri içerir. özelliği, It bir veri grubundaki tek tek kayıtların koleksiyonunu ifade eder. Gruplandırma işleminde birleştirilmiş tek tek kayıtları almak için özelliğini yineleyebilirsiniz It . Örneğin, adlı CategoryIt bir özelliğe göre gruplandırma yaparsanız, özelliği özelliğinde Category ortak bir değeri paylaşan tüm tek tek kayıtları içerir.
Verileri gruplandırırken anahtar sözcüğünü It özelliğine Select eklerseniz anahtar sözcük için It bir diğer ad atamanız gerekir. Denetimin LinqDataSource bir diğer adı yoksa It bir özel durum oluşturur. Anahtar sözcüğüne Key bir diğer ad atayabilirsiniz, ancak bu gerekli değildir.