[VB.NET 2008 + LINQ TO XML] Right outer join

mercoledì 19 marzo 2008 - 15.19

Rik142 Profilo | Junior Member

Ciao,
ho trasformato questa query creata con il linq to sql in linq to xml:

Dim query = _
From Aud In connection.T_AUDIT, _
Valut In connection.T_ANA_VALUTATORI, _
AuVl In connection.T_AUDIT_VALUTATORI, _
Forn In connection.T_ANA_FORNITORI _
Group Join Stab In connection.T_ANA_STABILIMENTI On Aud.T_ANA_STABILIMENTI.STAB_ID Equals Stab.STAB_ID Into stabilim = Group _
Where AuVl.T_ANA_VALUTATORI.VALUT_CODICE = Valut.VALUT_CODICE And _
AuVl.T_AUDIT.AUDIT_CODICE = Aud.AUDIT_CODICE And _
Forn.FORN_CODICE = Aud.T_ANA_FORNITORI.FORN_CODICE And _
(Aud.AUDIT_DATA_VALUTAZIONE = CDate(data_aud) Or data_aud = "") And _
(Forn.FORN_CODICE = codice_fornitore Or codice_fornitore = Nothing) And _
(Valut.VALUT_CODICE = codice_valutatore Or codice_valutatore = Nothing) _
Select Codice = Aud.AUDIT_CODICE, _
Data = Aud.AUDIT_DATA_VALUTAZIONE, _
Valutatore = Valut.VALUT_NOME + " " + Valut.VALUT_COGNOME, _
Fornitore = Forn.FORN_RAG_SOCIALE, _
Cod_Rif_Forn = CStr(Forn.FORN_COD_RIF_FORN), _
Stabilimento = stabilim.FirstOrDefault.STAB_DESCRIZIONE, _
Codice_Stabilimento = If(Aud.T_ANA_STABILIMENTI Is Nothing, 0, Aud.T_ANA_STABILIMENTI.STAB_ID)


Ho provato a convertirla in questo modo ma in fase di esecuzione la query non mi ritorna alcun risultato:

Dim query = From Aud In xmldocument_audit.Elements("ArrayOfDataLayer_t_audit_ItemRow").Elements("DataLayer_t_audit_ItemRow"), _
Valut In xmldocument_valutatore.Elements("ArrayOfDataLayer_t_ana_Valutatori_ItemRow").Elements("DataLayer_t_ana_Valutatori_ItemRow"), _
AuVl In xmldocument_auvl_valutatore.Elements("ArrayOfDataLayer_t_audit_valutatori_ItemRow").Elements("DataLayer_t_audit_valutatori_ItemRow"), _
Forn In xmldocument_fornitore.Elements("ArrayOfDataLayer_t_ana_fornitori_ItemRow").Elements("DataLayer_t_ana_fornitori_ItemRow") _
Group Join Stab In xmldocument_stabilimenti.Elements("ArrayOfDataLayer_t_ana_stabilimenti_ItemRow").Elements("DataLayer_t_ana_stabilimenti_ItemRow") On Aud.Element("CodStab").Value Equals Stab.Element("Id").Value Into Group _
Where AuVl.Element("AuVlValutatore_ID").Value = Valut.Element("Codice").Value And _
AuVl.Element("AuVlAudit_ID").Value = Aud.Element("Code_Audit").Value And _
Forn.Element("Codice").Value = Aud.Element("CodForn").Value _
Select Codice = CDec(Aud.Element("Code_Audit").Value), _
Fornitore = Forn.Element("Ragione_Sociale").Value, _
Valutatore = Valut.Element("Nome").Value + " " + Valut.Element("Cognome").Value, _
Data = CDate(Aud.Element("Data_Valutazione").Value), _
Cod_Rif_Forn = Forn.Element("Cod_Rif_Forn").Value, _
Stabilimento = Group.FirstOrDefault.Element("Descrizione").Value, _
Codice_Stabilimento = If(Aud.Element("CodStab").Value Is Nothing, 0, CDec(Aud.Element("CodStab").Value))

Qualche suggerimento?
Grazie mille per la collaborazione

ciao

Riccardo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5