Sdílet prostřednictvím


LinqDataSource.Select Vlastnost

Definice

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é Key slovo obsahuje vlastnost, která byla použita pro seskupování dat. V tomto příkladu KeyProductCategory bude obsahovat sdílené hodnoty z vlastnosti.

<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 vlastnost nenastavíte Select , LinqDataSource ovládací prvek načte všechny vlastnosti (datové sloupce) z datového objektu. Vlastnost slouží Select k načtení podmnožina vlastností z objektu nebo k výpočtu nových hodnot při načítání dat.

Určete, které vlastnosti chcete načíst nastavením Select vlastnosti na názvy vlastností, které chcete zahrnout do vrácených dat.

Pokud načtete podmnožinu vlastností z datového objektu, LinqDataSource ovládací prvek dynamicky vytvoří třídu, která obsahuje pouze vlastnosti, které zadáte ve 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 zadána TableName ve vlastnosti. Místo toho je nutné použít metodu newSelect ve vlastnosti k označení, že nová třída je vrácena z dotazu. Chcete-li například vrátit pouze FirstName vlastnosti a LastName vlastnosti z objektu, který obsahuje více než tyto vlastnosti, nastavte Select vlastnost na new(FirstName, LastName). Ovládací LinqDataSource prvek dynamicky vytvoří novou třídu, kterou jste zadali v new metodě.

Pomocí klíčového As slova můžete přiřadit alias vybrané hodnotě. Pokud přiřadíte alias, musíte do new metody zahrnout vlastnosti aliasu. Jakýkoli ovládací prvek svázaný s daty, který je vázán na výsledky z LinqDataSource ovládacího prvku, musí odkazovat na vlastnost alias. Pokud například nastavíte Select vlastnost na new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), ovládací prvek svázaný s daty má přístup ke dvěma vlastnostem SalesRegion a RevenueThousands.

Funkci ve Select vlastnosti použijete new podle podmínek uvedených v následující tabulce.

Vybrat Použití nových Příklad
Jedna vlastnost. new není potřeba. Select="Category"
Více vlastností. new Potřebné. Select="new(Category, Name)"
Jedna nebo více vlastností, které mají alias. new Potřebné. Select="new(Category As CategoryGroup)"

Pokud chcete povolit automatické úpravy dat, ale nechcete zobrazit všechny vlastnosti z datového objektu, nenastavujte Select vlastnost. Místo toho můžete zobrazení spravovat prostřednictvím ovládacího prvku vázaného na data. Při použití DetailsView ovládacího prvku nebo GridView ovládacího prvku, 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 Select vlastnosti zahrnout agregační metody. Můžete použít následující agregační metody:

  • Count()

  • Average( Sloupec)

  • Sum( Sloupec)

  • Max( Sloupec)

  • Min( Sloupec)

  • Where( podmínka)

  • Any()

  • All( podmínka)

Další informace naleznete 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.

Když data seskupíte, můžete do vlastnosti zahrnout Key a It, které jsou dynamicky vytvořeny vlastnosti Select . Tato Key vlastnost 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, Key bude tato vlastnost obsahovat každou jedinečnou hodnotu ve Category vlastnosti. Vlastnost It odkazuje na kolekci jednotlivých záznamů v seskupení dat. Můžete iterovat nad It vlastností a načíst jednotlivé záznamy, které byly sloučeny v operaci seskupení. Pokud například seskupíte podle vlastnosti s názvem Category, It tato vlastnost obsahuje všechny jednotlivé záznamy, které sdílejí společnou hodnotu ve Category vlastnosti.

Pokud do vlastnosti při seskupování dat zahrnete It klíčové slovo Select , musíte k danému klíčovému slovu It přiřadit alias. Ovládací LinqDataSource prvek vyvolá výjimku, pokud It nemá alias. K klíčovému slovu Key můžete přiřadit alias, ale není to nutné.

Platí pro