LINQ to entities - où..dans la clause avec plusieurs colonnes

Je suis en train d'interroger les données du formulaire avec LINQ-to-EF:

class Location {
    string Country;
    string City;
    string Address;
    
}

par la recherche d'un lieu par le tuple (Pays, Ville, Adresse). J'ai essayé

var keys = new[] {
    new {Country=…, City=…, Address=…},
    
}

var result = from loc in Location
             where keys.Contains(new {
                 Country=loc.Country, 
                 City=loc.City, 
                 Address=loc.Address
             }

mais LINQ ne veut pas accepter un type anonyme (ce que je comprends est la manière d'exprimer les tuples dans LINQ) en tant que paramètre à Contains().

Est-il un "gentil" la façon de l'exprimer dans LINQ, tout en étant en mesure d'exécuter la requête sur la base de données? Alternativement, si je viens de parcourir les touches et de l'Union()-ed les requêtes, ce serait mauvais pour la performance?

OriginalL'auteur millimoose | 2011-08-02