Mi riferisco a questo esempio: Return selected specified columnsSelezione di colonne specifiche tramite linq: cosa viene trasferito?
Citazione: Se BlobDetails non è l'entità LINQ, allora si può farlo direttamente:
var qry = from b in dc.Blobs
orderby b.RowVersion descending
select new BlobDetails {
Id = b.Id, Size = b.Size,
Signature = b.Signature, RowVersion = b.RowVersion};
return qry.ToList();
vedo che stanno selezionando specifica colonna in una query attraverso lo strumento ORM LINQ TO SQL. I critici degli strumenti ORM dicono che, se non ricordo male, gli strumenti ORM selezionano e restituiscono interi oggetti dalla tabella e limitano le opzioni di selezione solo di colonne specifiche, come si può fare con la classica programmazione SQL. Naturalmente, ho dei dubbi a riguardo quando vedo questo esempio, ma ciononostante continuo a pormi la domanda: il database restituisce solo le colonne selezionate, oppure restituisce l'intero oggetto, lasciando il filtro della colonna al ORM-tool?
Da questo esempio, hanno anche una classe chiamata Blobdetails:
public class BlobDetails
{
public int Id { get; set; }
public string Signature { get; set; }
public int Size { get; set; }
public System.Data.Linq.Binary RowVersion { get; set; }
}
Devo creare le mie classi ogni volta solo io desidero selezionare alcune colonne di una tabella tramite LINQ?
solo passo con il debugger dopo la creazione qry oggetto e si può vedere che cosa query SQL è in realtà generato ;-) o provare LINQPad. – mipe34