Diciamo che ho dei progetti e documentiLINQ to SQL e unire due tavoli con clausola OR
Dim myPlans = _context.Plans.Where(predicate1)
Dim myDocuments = _context.Documents.Where(predicate2)
ho strutturato la clausola WHERE per ogni utilizzo PredicateBuilder. Quindi, myPlans e myDocuments hanno un'istruzione SQL corretta.
Quello che mi piacerebbe fare è unire queste due tabelle in un'unica istruzione linq. Il problema che sto avendo è che, per impostazione predefinita, la condizione AND sta unendo le clausole where.
Clausola myPlans Where: (p.name come "% test%" AND p.name come "% bed%") OR (p.descrizione come "% test%" AND p.description come "% bed%")
myDocuments Clausola where: (d.name come "% test%" AND d.name come "% bed%") OR (d.descrizione come "% test%" AND d.descrizione come "% letto% ")
Quando combino il risultato due il desiderata dove clausola è:
dove (d.ID = p.ID) E (myplans where sopra) OR (mydocument clausola dove sopra). Significato, mi piacerebbe che le due clausole in cui le tabelle fossero "o" invece di "E".
Il risultato corrente dove clausola è: Dove (d.ID = p.ID) E (myplans where sopra) E (mydocument clausola dove sopra). Significato, mi piacerebbe che le due clausole in cui le tabelle fossero "o" invece di "E".
che sto formando la dichiarazione come questa:
Dim test = From d in myDocuments _
Join p in MyPlans on d.ID Equals p.ID _
Select d.Name, p.Name
Mi piace la tua risposta troppo. +1 –