Seleccionando columnas específicas usando linq: ¿Qué se transfiere?
Me refiero a este ejemplo:Regresar columnas especificadas seleccionadas
Cita: Si BlobDetails no es la entidad LINQ, entonces puede hacerlo directamente:
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();
Veo que están seleccionando una columna específica en una consulta a través de la herramienta ORM LINQ TO SQL. Los críticos de las herramientas de ORM dicen que, si recuerdo correctamente, las herramientas de ORM seleccionan y devuelven objetos completos de la tabla, y limita las opciones de seleccionar solo columnas específicas como se puede hacer a través de la programación clásica de SQL. Por supuesto, tengo mis dudas al respecto cuando veo este ejemplo, pero sin embargo, sigo haciéndome la pregunta: ¿la base de datos devuelve solo las columnas seleccionadas o devuelve los objetos completos, dejando el filtro de columnas a la ORM-herramienta?
De este ejemplo, también tienen una clase llamada 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; }
}
¿Debo crear mis propias clases cada vez que solo deseo seleccionar algunas columnas de una tabla a través de LINQ?