LinqDataSource.Select Propriété

Définition

Obtient ou définit les propriétés et les valeurs calculées incluses dans les données récupérées.

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

Valeur de propriété

Chaîne utilisée pour créer la clause Select.

Exemples

L’exemple suivant montre comment définir la propriété Select sur un sous-ensemble de propriétés dans l’objet de données.

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

L’exemple suivant montre comment récupérer des valeurs dans une propriété utilisée pour regrouper des données et récupérer la moyenne des enregistrements groupés. Le mot clé Key contient la propriété utilisée pour le regroupement de données. Dans cet exemple, Key contiendra les valeurs partagées de la propriété 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>

Remarques

Si vous ne définissez pas la propriété Select, le contrôle LinqDataSource récupère toutes les propriétés (colonnes de données) de l’objet de données. Vous utilisez la propriété Select pour récupérer un sous-ensemble de propriétés à partir de l’objet ou pour calculer de nouvelles valeurs lorsque les données sont récupérées.

Vous spécifiez les propriétés à récupérer en définissant la propriété Select sur les noms des propriétés que vous souhaitez inclure dans les données retournées.

Si vous récupérez un sous-ensemble de propriétés à partir de l’objet de données, le contrôle LinqDataSource crée dynamiquement une classe qui contient uniquement les propriétés que vous spécifiez dans la propriété Select. Une classe est également créée dynamiquement si vous calculez des propriétés qui ne sont pas des propriétés dans l’objet de données. Dans ces cas, l’objet retourné par la requête n’est pas une instance de la classe spécifiée dans la propriété TableName. Au lieu de cela, vous devez utiliser la méthode new dans la propriété Select pour indiquer qu’une nouvelle classe est retournée par la requête. Par exemple, pour renvoyer uniquement les propriétés FirstName et LastName d’un objet qui contient plus de ces propriétés, définissez la propriété Select sur new(FirstName, LastName). Le contrôle LinqDataSource crée dynamiquement la nouvelle classe que vous avez spécifiée dans la méthode new.

Vous pouvez utiliser le mot clé As pour affecter un alias à une valeur sélectionnée. Si vous attribuez un alias, vous devez inclure les propriétés alias dans la méthode new. Tout contrôle lié aux données qui se lie aux résultats du contrôle LinqDataSource doit faire référence à la propriété par l’alias. Par exemple, si vous définissez la propriété Select sur new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), le contrôle lié aux données peut accéder à deux propriétés, SalesRegion et RevenueThousands.

Vous utilisez la fonction new dans la propriété Select en fonction des conditions répertoriées dans le tableau suivant.

Choisir Utilisation de nouvelles Exemple
Propriété unique. new pas nécessaire. Select="Category"
Plusieurs propriétés. new nécessaire. Select="new(Category, Name)"
Propriétés uniques ou multiples qui ont un alias. new nécessaire. Select="new(Category As CategoryGroup)"

Si vous souhaitez activer les modifications automatiques des données, mais que vous ne souhaitez pas afficher toutes les propriétés de l’objet de données, ne définissez pas la propriété Select. Au lieu de cela, gérez l’affichage via le contrôle lié aux données. Lorsque vous utilisez le contrôle DetailsView ou le contrôle GridView, vous devez également définir la AutoGenerateRows ou la propriété AutoGenerateColumns sur false. Toutes les valeurs qui ne sont pas affichées dans le contrôle lié aux données sont stockées dans l’état d’affichage. Ils sont passés inchangés à la source de données lorsque la mise à jour des données est effectuée.

Lorsque vous regroupez des données dans la requête, vous pouvez inclure des méthodes d’agrégation dans la propriété Select. Vous pouvez utiliser les méthodes d’agrégation suivantes :

  • Count()

  • Average( ) de colonne

  • Sum( ) de colonne

  • Max( ) de colonne

  • Min( ) de colonne

  • Where( condition)

  • Any()

  • All( condition)

Pour plus d’informations, consultez Vue d’ensemble du contrôle serveur web LinqDataSource et Guide pratique pour regrouper et agréger des données à l’aide du contrôle LinqDataSource.

Lorsque vous regroupez des données, vous pouvez inclure Key et It, qui sont créées dynamiquement, dans la propriété Select. La propriété Key fait référence aux valeurs de la propriété ou des propriétés utilisées pour regrouper les données. Par exemple, si vous regroupez par une propriété nommée Category, la propriété Key contiendra chaque valeur unique dans la propriété Category. La propriété It fait référence à une collection d’enregistrements individuels dans un regroupement de données. Vous pouvez itérer sur la propriété It pour récupérer les enregistrements individuels qui ont été consolidés dans l’opération de regroupement. Par exemple, si vous regroupez par une propriété nommée Category, la propriété It contient tous les enregistrements individuels qui partagent une valeur commune dans la propriété Category.

Si vous incluez le mot clé It dans la propriété Select lorsque vous regroupez des données, vous devez affecter un alias au mot clé It. Le contrôle LinqDataSource lève une exception si It n’a pas d’alias. Vous pouvez affecter un alias au mot clé Key, mais cela n’est pas obligatoire.

S’applique à