2016-12-12 3 views
0

Ich habe die folgende Abfrage, Problem ist es gibt alle Ergebnisse zurück, wenn keine Übereinstimmung gefunden wird. Kann jemand sehen, wo ich falsch liege?Linq Abfrage gibt alle Zeilen zurück, wenn die Suche keine übereinstimmenden Ergebnisse hat

var searchResults = (from gId in dc.tbl1 
    join data in dc.tbl2 on gId.ID equals data.UserId into joinTbls 
    from data in joinTbls.DefaultIfEmpty() 
    where (data.OrderId == orderId) || 
     (data.CardHolderName == cardHolderName) || 
     (gId.Email == emailAddress) || 
     (gId.FirstName == firstName) || 
     (gId.LastName == lastName) || 
     ((IdGuid == null || gId.ID == IdGuid)) 

Ich denke, es ist etwas mit dem zu tun hat:

from data in joinTbls.DefaultIfEmpty() 

Aber ich bin nicht sicher, wie es zu lösen.

+3

Haben Sie versucht, das Entfernen DefaultIfEmpty()? –

+1

IMO ist, weil Sie "OR" (||) in Ihrer Where-Klausel haben. versuchen, es durch "AND" (&&) zu ersetzen – BMaximus

+0

Ja, aber das dann nur Datensätze aus tbl1 –

Antwort

0

IMO, weil Sie "OR" (||) in Ihrer Where-Klausel haben. versuchen, es zu ersetzen mit "AND" (& &)

Froh, dass es

half
Verwandte Themen