2009-05-05 3 views
2

Dites que j'ai une requête linq sélectionnez r dans db.Roles où r.RoleName NE contient PAS ("Administrator") sélectionnez r;Comment créer une requête linq qui obtient tout sauf une valeur spécifique

C'est la partie ne contient pas qui m'a confondu. Je sais que je peux le faire. Contient appel mais comment faites-vous le contraire?

Merci!

Mise à jour: Je trouve la méthode Exclure et voici comment je l'ai utilisé:

var role = (from r in db.Roles 
      orderby r.RoleName 
      select r) 
      .Except(from r in db.Roles 
        where r.RoleName == "Administrator" & r.RoleName == "DataEntry" 
        select r 
      ); 

Répondre

9

Effectuez les opérations suivantes

var query = db.Roles.Where(x => !x.RoleName.Contains("Administrator")); 

Vous pouvez simplement utiliser le C# pas l'opérateur! (point d'exclamation). syntaxe LINQ élargie Version

var query = 
    from it in db.Roles 
    where !it.RoleName.Contains("Administrator") 
    select it; 
3

Si vous aviez plusieurs rôles à exclure, vous pouvez jeter un oeil à la fonction Except.

Questions connexes