Partager via


Classe générique EntityQuery

Représente une requête LINQ sur une collection d'entités.

Espace de noms: System.ServiceModel.DomainServices.Client
Assembly : System.ServiceModel.DomainServices.Client (dans system.servicemodel.domainservices.client.dll)

Utilisation

'Utilisation
Dim instance As EntityQuery(Of TEntity)

Syntaxe

'Déclaration
Public NotInheritable Class EntityQuery(Of TEntity As Entity)
    Inherits EntityQuery
public sealed class EntityQuery<TEntity> : EntityQuery where TEntity : Entity
generic<typename TEntity> where TEntity : Entity
public ref class EntityQuery sealed : public EntityQuery

GenericParameters

  • TEntity
    Type d'entité.

Exemple

Le code suivant indique comment récupérer les clients du service de domaine. Il filtre les clients ayant des numéros de téléphone qui commencent par 583 et les classe par ordre alphabétique en fonction de LastName. Les résultats s'affichent dans un DataGrid.

Partial Public Class MainPage
    Inherits UserControl

    Private _customerContext As New CustomerDomainContext

    Public Sub New()
        InitializeComponent()

        Dim query As EntityQuery(Of Customer)

        query = _
            From c In Me._customerContext.GetCustomersQuery() _
            Where c.Phone.StartsWith("583") _
            Order By c.LastName

        Dim loadOp = Me._customerContext.Load(query)
        CustomerGrid.ItemsSource = loadOp.Entities
    End Sub

End Class
public partial class MainPage : UserControl
{
    private CustomerDomainContext _customerContext = new CustomerDomainContext();

    public MainPage()
    {
        InitializeComponent();
        EntityQuery<Customer> query = 
            from c in _customerContext.GetCustomersQuery()
            where c.Phone.StartsWith("583")
            orderby c.LastName
            select c;
        LoadOperation<Customer> loadOp = this._customerContext.Load(query);
        CustomerGrid.ItemsSource = loadOp.Entities;
    }
}

Notes

Dans votre application cliente, vous pouvez appliquer un filtrage supplémentaire sur une requête pour limiter les entités retournées. Vous utilisez LINQ et un sous-ensemble d'opérateurs de requête LINQ pour modifier les résultats retournés par la requête. Vous trouverez ci-dessous les opérateurs de requête disponibles :

  • Where

  • OrderBy

  • ThenBy

  • Skip

  • Take

Après avoir appliqué un filtrage supplémentaire, vous passez l'objet EntityQuery comme un paramètre dans la méthode Load pour exécuter la requête et obtenir les résultats. Si la requête a un QueryAttribute avec la propriété IsComposable définie sur false, vous ne pouvez pas appliquer de filtrage supplémentaire sur la requête. En général, seules les requêtes qui retournent une entité unique ont IsComposable défini sur false.

Hiérarchie d'héritage

System.Object
   System.ServiceModel.DomainServices.Client.EntityQuery
    System.ServiceModel.DomainServices.Client.EntityQuery

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Membres EntityQuery
Espace de noms System.ServiceModel.DomainServices.Client