3 messaggi dal 02 agosto 2010
www.softyweb.it
Salve, volevo sapere se è possibile effetture una query LINQ basata sul risultato di un'altra query, mi spiego con un esempio:

sottoinsieme_clienti = from c in clienti where c.nome = 'Mario' select c

sottinsieme_indirizzi = from i in indirizzi join c in sottoinsieme_clienti On i Equals c.indirizzo select i


Grazie
Mauro
perchè non fare il join delle tabelle:

from c in clienti
join i in indirizzi on c.indirizzo equals i.indirizzo
where c.nome = 'Mario'
select i

se non ho scritto male dovresti avere lo stesso risultato

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
3 messaggi dal 02 agosto 2010
www.softyweb.it
il mio scopo è quello di utilizzare il risultato "sottoinsieme_clienti" perchè esso dipende da più variabili ed è inserito in una istruzione "select case", mentre la query "sottinsieme_indirizzi" è sempre relativa al risultato sottinsieme_clienti e quindi trovavo più comodo utilizzare il risultato come se fosse una variabile, altrimenti dovrei ripetere anche la query sottinsieme_indirizzi per ogni "case", quando in linea di principio potrei evitarlo (se tecnicamente EF me lo permette).
Ho sempre saputo che è meglio una query complessa di 2 o più query, specie ora che è possibile usare plinq.
Se ci sono più nomi in cui cercare puoi provare con Contains a cui passi una lista/array di nome...

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
3 messaggi dal 02 agosto 2010
www.softyweb.it
Ho risolto usando la classe ObjectQuery(Of T) di EF: http://msdn.microsoft.com/it-it/library/bb345303.aspx

Dim sottoinsieme_clienti As ObjectQuery(Of clienti)

a questo punto funziona la join:

sottoinsieme_clienti = from c in clienti where c.nome = 'Mario' select c

sottinsieme_indirizzi = from i in indirizzi join c in sottoinsieme_clienti On i Equals c.indirizzo select i

Non so se è il modo più pulito, ad ogni modo così ho raggiunto il mio obbiettivo.

Mauro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.