ho una query LINQ to SQL:LINQ to SQL Prendi w/o Ignora cause più istruzioni SQL
from at in Context.Transaction
select new {
at.Amount,
at.PostingDate,
Details =
from tb in at.TransactionDetail
select new {
Amount = tb.Amount,
Description = tb.Desc
}
}
Ciò si traduce in corso di esecuzione un'istruzione SQL. Va tutto bene.
Tuttavia, se provo a restituire tipi noti da questa query, anche se hanno la stessa struttura dei tipi anonimi, ottengo un'istruzione SQL eseguita per il livello superiore e quindi un'istruzione SQL aggiuntiva per ciascun "figlio" impostato.
C'è un modo per ottenere LINQ su SQL per emettere un'istruzione SQL e utilizzare tipi noti?
EDIT: Devo avere un altro problema. Quando ho inserito una versione molto semplicistica (ma ancora alla perfezione) della mia query in LINQPad e ho utilizzato tipi conosciuti appena creati con solo 2 o 3 membri, ho ricevuto una dichiarazione SQL. Pubblicherò e aggiornerò quando ne saprò di più.
MODIFICA 2: Ciò sembra essere dovuto a un errore in Take. Vedi la mia risposta qui sotto per i dettagli.
Funziona ma ho dovuto usare IEnumerable invece di solo IEnumerable per chiamare ToList. È anche mezzo secondo più veloce nel mio caso di test. Bella risposta. –
JohnOpincar