Maison > développement back-end > C++ > Comment utiliser la fonction Contains() dans Linq to Entities ?

Comment utiliser la fonction Contains() dans Linq to Entities ?

Susan Sarandon
Libérer: 2024-10-29 11:14:29
original
558 Les gens l'ont consulté

How to Use the Contains() Function in Linq to Entities?

Solution de contournement de la fonction Contains() utilisant Linq to Entities

Question :

Comment utiliser la fonction Contains() dans les requêtes Linq to Entities, malgré son manque de support ?

Réponse :

Mise à jour : Depuis Entity Framework ( EF) version 4 et ultérieure, Contains() est directement pris en charge.

Pour les versions antérieures d'EF, une solution de contournement est nécessaire :

Méthode d'extension personnalisée pour Contains()

Créez la méthode d'extension suivante :

<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>(
    this ObjectQuery<TEntity> query,
    Expression<Func<TEntity, TValue>> selector,
    IEnumerable<TValue> collection)
{
    // ... (implementation remains the same as in the provided code)
}</code>
Copier après la connexion

Version de collection statique facultative

En option, vous pouvez créer une version qui permet une collection statique comme input :

<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>(
    this ObjectQuery<TEntity> query,
    Expression<Func<TEntity, TValue>> selector,
    params TValue[] collection)
{
    return WhereIn(query, selector, (IEnumerable<TValue>)collection);
}</code>
Copier après la connexion

Utilisation :

Avec cette méthode d'extension, vous pouvez utiliser Contains() dans vos requêtes Linq to Entities comme suit :

<code class="csharp">public static void Main()
{
    using (MyObjectContext context = new MyObjectContext())
    {
        // Using method 1 - collection provided as collection
        var contacts1 = context.Contacts.WhereIn(c => c.Name, GetContactNames());

        // Using method 2 - collection provided statically
        var contacts2 = context.Contacts.WhereIn(c => c.Name,
            "Contact1",
            "Contact2",
            "Contact3",
            "Contact4");
    }
}</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal