LinqDataSource.Select Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví vlastnosti a počítané hodnoty, které jsou zahrnuty v načtených datech.
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
Hodnota vlastnosti
Řetězec, který se používá k vytvoření klauzule Select.
Příklady
Následující příklad ukazuje, jak nastavit Select vlastnost na podmnožinu vlastností v datovém objektu.
<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>
Následující příklad ukazuje, jak načíst hodnoty ve vlastnosti, která byla použita k seskupení dat, a načíst průměr pro seskupené záznamy. Klíčové slovo Key
obsahuje vlastnost, která byla použita pro seskupování dat. V tomto příkladu bude Key
obsahovat sdílené hodnoty z vlastnosti 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>
Poznámky
Pokud nenastavíte vlastnost Select, ovládací prvek LinqDataSource načte všechny vlastnosti (datové sloupce) z datového objektu. Vlastnost Select slouží k načtení podmnožiny vlastností z objektu nebo k výpočtu nových hodnot při načítání dat.
Určete, které vlastnosti se mají načíst nastavením vlastnosti Select na názvy vlastností, které chcete zahrnout do vrácených dat.
Pokud z datového objektu načtete podmnožinu vlastností, ovládací prvek LinqDataSource dynamicky vytvoří třídu, která obsahuje pouze vlastnosti, které zadáte v Select vlastnosti. Třída je také vytvořena dynamicky, pokud vypočítáte vlastnosti, které nejsou vlastnostmi v datovém objektu. V těchto případech objekt vrácený z dotazu není instancí třídy, která je určena ve vlastnosti TableName. Místo toho je nutné použít new
metoda v Select vlastnost indikovat, že nová třída je vrácena z dotazu. Chcete-li například vrátit pouze vlastnosti FirstName
a LastName
z objektu, který obsahuje více než tyto vlastnosti, nastavte vlastnost Select na new(FirstName, LastName)
. Ovládací prvek LinqDataSource dynamicky vytvoří novou třídu, kterou jste zadali v metodě new
.
Pomocí klíčového slova As
můžete přiřadit alias vybrané hodnotě. Pokud přiřadíte alias, musíte do metody new
zahrnout vlastnosti aliasu. Všechny ovládací prvky vázané na data, které se sváže s výsledky z ovládacího prvku LinqDataSource, musí odkazovat na vlastnost aliasem. Pokud například nastavíte vlastnost Select na new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)
, může ovládací prvek svázaný s daty přistupovat ke dvěma vlastnostem, SalesRegion
a RevenueThousands
.
Funkci new
použijete ve vlastnosti Select podle podmínek uvedených v následující tabulce.
Vybrat | Použití nových | Příklad |
---|---|---|
Jedna vlastnost. |
new nepotřebujete. |
Select="Category" |
Více vlastností. |
new potřeba. |
Select="new(Category, Name)" |
Jedna nebo více vlastností, které mají alias. |
new potřeba. |
Select="new(Category As CategoryGroup)" |
Pokud chcete povolit automatické úpravy dat, ale nechcete zobrazit všechny vlastnosti z datového objektu, nenastavujte vlastnost Select. Místo toho můžete zobrazení spravovat prostřednictvím ovládacího prvku vázaného na data. Pokud používáte ovládací prvek DetailsView nebo ovládací prvek GridView, musíte také nastavit AutoGenerateRows nebo AutoGenerateColumns vlastnost na false
. Všechny hodnoty, které nejsou zobrazeny v ovládacím prvku vázaném na data, jsou uloženy ve stavu zobrazení. Při provedení aktualizace dat se do zdroje dat předají beze změny.
Když data v dotazu seskupíte, můžete do vlastnosti Select zahrnout agregační metody. Můžete použít následující agregační metody:
Count()
sloupce sloupce sloupce sloupce podmínky Any()
podmínky
Další informace najdete v tématu Přehled ovládacích prvků Webového serveru LinqDataSource a Postupy: Seskupení a agregace dat pomocí ovládacího prvku LinqDataSource.
Při seskupování dat můžete do vlastnosti Select zahrnout Key
a It
, které se dynamicky vytvářejí. Vlastnost Key
odkazuje na hodnoty ve vlastnosti nebo vlastnostech, které byly použity k seskupení dat. Pokud například seskupíte podle vlastnosti s názvem Category
, vlastnost Key
bude obsahovat každou jedinečnou hodnotu v Category
vlastnosti. Vlastnost It
odkazuje na kolekci jednotlivých záznamů v seskupení dat. Můžete iterovat přes vlastnost It
a načíst jednotlivé záznamy, které byly sloučeny v operaci seskupení. Pokud například seskupíte podle vlastnosti s názvem Category
, vlastnost It
obsahuje všechny jednotlivé záznamy, které sdílejí společnou hodnotu ve vlastnosti Category
.
Pokud do vlastnosti Select zahrnete klíčové slovo It
, musíte k It
klíčovému slovu přiřadit alias. Ovládací prvek LinqDataSource vyvolá výjimku, pokud It
nemá alias. Alias můžete přiřadit klíčovému slovu Key
, ale není to nutné.