2010-11-18 10 views
0

Ich finde dieses seltsame Problem. Wenn ich dies tun>Linq-Ausdruck, der null statt leeres Set zurückgibt

activities.Where(Function(a) (Not a.IsDeleted And a.ParentId = 100) 

Es gibt eine In-Memory-Abfrage &, wenn ich es versuchen eröffnen, ist es ein Objekt wirft Ausnahme nicht festgelegt. Dies geschieht nur, wenn keine Gegenstände vorhanden waren, die die Bedingung erfüllten. Sollte es nicht einen leeren Satz zurückgeben?

Wenn sind Artikel die Bedingung erfüllt, dann gibt es eine Liste & funktioniert alles gut.

Irgendwelche Ideen?

+0

Vielleicht wird das Lambda aufgerufen, wobei 'a' auf' Nothing' gesetzt ist? – cdhowie

+0

cdhowie, richtig das war das Problem. Vielen Dank. – neebz

Antwort

1

Es sieht so aus, als ob Sie mit der logischen And gebissen werden könnten. Sie bedeutete wahrscheinlich AndAlso kurzzuschließen Ihren logischen Ausdruck:

Not a.IsDeleted AndAlso a.ParentId = 100 

Durch AndAlso der zweiten Teil verwendet, wird nur dann, wenn der erste Teil wahr ausgewertet werden.

Verwandte Themen