2009-05-05 2 views
2

sagen, dass ich in db.Roles haben eine Linq-Abfrage wählen r bekommt, wo r.RoleName NICHT („Administrator“) wählen r enthalten;Wie erstelle ich eine Linq-Abfrage, die alles andere als einen bestimmten Wert

Es ist die enthält keinen Teil, der mich verwirrt hat. Ich weiß, dass ich das tun kann. Ruft mich an, aber wie machst du das Gegenteil?

Danke!

Update: ich die Methode ausschließen gefunden und hier ist, wie ich es benutzt:

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

Antwort

9

Versuchen Sie, die folgenden

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

Sie können nur die C# nicht Operator verwenden! (Ausrufezeichen). Expanded LINQ-Syntax Version

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

Wenn Sie mehrere Rollen hatte auszuschließen, könnte nehmen Sie einen Blick auf die Except Funktion.

Verwandte Themen