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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta