Mi riferisco agli esempi in How to: Combin Data with Linq by using joins. Abbiamo due elenchi il primo detiene oggetti persona (Primo e Cognome). La seconda lista contiene oggetti Pet (Nome) che contengono un oggetto persona (proprietario dell'animale domestico). Una persona può possedere> = 0 animali domestici.Linq produce ridondanze?
Cos'è successo ora è ho eseguito il gruppo si uniscono
Dim result1 = From pers in people
Group Join pet in pets
on pers Equals pet.Owner
Into PetList = Group
LINQPad mi mostra il risultato:
Questo sembra a me come LINQ sta producendo un sacco di licenziamenti (ma io potrebbe essere sbagliato qui!). Il primo oggetto risultato manterrebbe l'oggetto persona tre volte. Qui sorgono due domande per me come Linq nooby (ma forse ho letto l'output non nel modo giusto):
- Le referenze degli oggetti persona sono? Purtroppo non ho trovato nulla a riguardo.
- Seguendo l'esempio di cui sopra la query prosegue con
Select pers.FirstName , pers.LastName, PetName = If(pet is Nothing, String.Empty, pet.Name)
Se abbiamo tutte le informazioni relative all'oggetto Persona nel PetList, perché non basta interrogare questo oggetto? Secondo me, non abbiamo più bisogno dell'oggetto pers.
Penso che i fatti chiave qui sono linq utilizza l'esecuzione posticipata e questo dovrebbe essere compilato in un formato che significa che queste ridondanze non sono create (il più possibile) – Sayse