giovedì 17 luglio 2025

C# Linq To Entity Framework left join

In questo frammento di codice di Linq To Entity Framework, con il linguaggio di programmazione C#, illustra una tecnica per effettuare una select per estrapolare i dati da due tabelle.
Supponiamo di avere due tabelle e rilevare i dati da entrambi le tabelle, anche nel caso che il campo di relazione non è presente in una tabella, ma si vuole rilevare ugualmente il dato della prima tabella .
Tramite il metodo DefaultIfEmpty prende il dato anche se nella seconda tabella non sono presenti dati.

Di seguito il frammento di codice che estrapola i dati della tabella Portieri, in relazione alla tabella Condomini, anche se in quest'ultima non sono presenti dati di relazione.

C#

  var elencoPortieri = (from portiere in entita.Portieri

                                      join condominio in entita.Condomini

                                          on portiere.IdCondominio equals condominio.Id into gruppoCondomini

                                      from condominio in gruppoCondomini.DefaultIfEmpty()

                                      select new

                                      {

                                          idPortiere = portiere.IdPortieri,

                                          portiere.Nome,

                                          portiere.Cognome,

                                          portiere.DataNascita,

                                          portiere.Email,

                                          portiere.Indirizzo,

                                          portiere.Telefono,

                                          portiere.LuogoNascita,

                                          NomeFile = portiere.File!= null ? "Scarica" : "",

                                          portiere.Note,

                                          portiere.DataAssunzione,

                                          portiere.DataDimissioni,

                                          portiere.Stipendio,

                                          Condominio = condominio != null ? condominio.Nome : "Nessuno",

                                      }).OrderBy(p => p.idPortiere).ToList();

 

 

 

                DtgListaPortieri.AutoGenerateColumns = false;

                DtgListaPortieri.DataSource = elencoPortieri;






Nessun commento: