2009-03-21 13 views
1

ich dies schrieb:Linq to Entities: Handeln der entgegengesetzten Abfrage

 

var destinations = db.DestinationDetails. 
    Where(dd => dd.Language.Lang == "en-US" && 
     dd.Destination.Client.Any(c => c.Email == "[email protected]")); 
 

Wie kann ich destinationDetails abrufen, dass Client mit E-Mail [email protected] hat nicht?

funktioniert das nicht:

 

var destinations = db.DestinationDetails. 
    Where(dd => dd.Language.Lang == "en-US" && 
     dd.Destination.Client.Any(c => c.Email != "[email protected]")); 
 

Dank!

Antwort

4

Ich glaube, Sie alle statt Any verwenden möchten:

var destinations = db.DestinationDetails. 
    Where(dd => dd.Language.Lang == "en-US" && 
     !dd.Destination.Client.Any(c => c.Email == "[email protected]")); 
+0

die andere Antwort Werke auch! – VansFannel

+0

@Vans y, es negiert den Ausdruck: P - meine liest: Alle Clients hat diese E-Mail nicht, crhis liest: Es gibt keinen Client, der diese E-Mail hat - Sie können sehen, warum sie gleichwertig sind :) – eglasius

2

Versuchen Sie, können Sie Ergebnis erhalten ...

1
var destinations =(db.DestinationDetails. 
    Where(dd => dd.Language.Lang == "en-US" && 
    dd.Destination.Client.Any(c => c.Email != "[email protected]")).Select c).ToList(); 

Versuchen Sie, diese

dd.Destination.Client.All(c => c.Email != "[email protected]") 
Verwandte Themen