Ecco una situazione in cui mi imbatto frequentemente: ho oggetti Parent e Child e l'oggetto Child ha una proprietà Parent. Voglio eseguire una query che ottiene gli oggetti figlio e si unisce a ciascuno di l'oggetto padre corretto:Qual è il modo giusto per selezionare e combinare oggetti con LINQ?
Dim db = New DataContextEx()
get the children, along with the corresponding parent
Dim Children = From x In db.ChildTable
Join y In db.ParentTable
On x.ParentId Equals y.Id
Execute x.Parent = y <-- pseudocode
Select x
La pseudo mostra quello che voglio realizzare: per restituire l'oggetto figlio x, ma con il codice dopo la (falso) Esegui dichiarazione eseguita. Posso pensare a molti modi per raggiungere l'obiettivo finale, ma tutti hanno molte più linee di codice e/o creazione di oggetti temporanei o funzioni che trovo poco eleganti. (Nota questa è la sintassi VB.NET, ma non è una domanda di sintassi VB, poiché AFAIK C# avrebbe lo stesso problema.)
Quindi quale sarebbe il modo più pulito per fare ciò che sto cercando di fare?
Modifica: le persone hanno chiesto quale ORM sto usando, ma questa è una domanda LINQ semplice e lineare; Non sto cercando di convertire questo in logica per essere eseguito sul server, voglio solo un po 'di zucchero sintattico per eseguire il lato client del codice dopo che la query è stata eseguita sul server.
Che cos'è x.Parent nel codice se x e y sono record tabella? – Paul
Può essere d'aiuto se si indica quale fornitore si sta utilizzando. Linq-to-SQL, Linq-to-Entities, ecc., E inoltre se si può capitare di utilizzare prima il codice EF. –
Sono solo oggetti fortemente tipizzati dal mio ORM, ma in realtà ciò si applicherebbe ugualmente a Linq To Objects. –