View Full Version : [C#/LINQ] Query su entities multiple
Teo@Unix
26-09-2012, 16:57
Ciao,
come dice il titolo ho 2 entities.
Devo eseguire una query LINQ e combinare tabelle prendendole da entrambi i database..
Sembra che una query linq non sia in grado di interagire con pił di un database alla volta...
ho gią provato a fare 2 query separate e rifarne un'altra finale sul risultato delle precedenti.. ma stessa cosa.
Eppure sono confidente che ci dovrebbe essere un modo. ... :rolleyes: grazie.
tomminno
26-09-2012, 21:08
Ciao,
come dice il titolo ho 2 entities.
Devo eseguire una query LINQ e combinare tabelle prendendole da entrambi i database..
Sembra che una query linq non sia in grado di interagire con pił di un database alla volta...
ho gią provato a fare 2 query separate e rifarne un'altra finale sul risultato delle precedenti.. ma stessa cosa.
Eppure sono confidente che ci dovrebbe essere un modo. ... :rolleyes: grazie.
Devi eseguire le query separatamente, ottenere degli oggetti disconnessi ed elaborarli con Linq2Object
Kralizek
26-09-2012, 22:07
tecnicamente con .AsEnumerable() si riesce ad usare pił provider nella stessa query =)
tomminno
27-09-2012, 10:27
tecnicamente con .AsEnumerable() si riesce ad usare pił provider nella stessa query =)
Si perchč esegue la query e crea un elenco di oggetti, che possono essere manipolati tramite Linq2Object.
Teo@Unix
27-09-2012, 10:33
Non ho capito...
vi faccio vedere il codice che ho:
// Qery on DB SAM0
IQueryable<prj_Projects> query_DB_SAM0_prj =
from tblprj in sDB.View_DbaseProgetti_Progetti
select new prj_Projects()
{
ID = tblprj.ID,
date = DateTime.FromOADate((double)tblprj.Data),
name = tblprj.Codice,
prj_num = tblprj.NumeroComProgetto,
state = tblprj.Stato,
year = tblprj.Anno
};
IQueryable<prj_art> query_DB_SAM0_art =
from tblart in sDB.View_DbaseProgetti_Articoli
select new prj_art()
{
ID_art = tblart.ID,
cat = tblart.CATEGORIA,
classe = tblart.CLASSE,
codice = tblart.CODICE,
gruppo = tblart.GRUPPO,
linea = tblart.LINEA
};
// Final query
IQueryable<AttivitąDiProgetto> query =
from tbldbprj in DB.db_attivitą_progetti
join tblprj in query_DB_SAM0_prj on tbldbprj.ID_progetto equals tblprj.ID
join tblart in query_DB_SAM0_art on tbldbprj.ID_prodotto equals tblart.ID_art
join tblres in DB.risorse on tbldbprj.ID_risorsa equals tblres.ID_risorsa
join tblrep in DB.reparti on tblres.ID_reparto equals tblrep.ID_reparto
where tblres.ID_risorsa == UserID
select new AttivitąDiProgetto()
{
// showed
ID_Attivitą_di_progetto = tbldbprj.ID_db_attivitą_progetti,
prj_descr = tblprj.name,
prod_code = tblart.codice,
data = tbldbprj.Data,
tempo = tbldbprj.Tempo,
reparto = tblrep.descr,
risorsa = tblres.name,
// products
prod_categoria = tblart.cat,
prod_classe = tblart.classe,
prod_gruppo = tblart.gruppo,
prod_linea = tblart.linea,
// projects
prj_date = tblprj.date,
prj_name = tblprj.name,
prj_num = tblprj.prj_num,
prj_state = tblprj.state,
prj_year = tblprj.year
};
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.