Выбор конкретных столбцов с помощью linq: что передается?

Я ссылаюсь на этот пример:Возврат выбранных указанных столбцов

Цитата: Если BlobDetails не является сущностью LINQ, вы можете сделать это напрямую:

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();

Я вижу, что они выбирают конкретный столбец в запросе через ORM-инструмент LINQ TO SQL. Критики ORM-инструментов говорят, что, если я правильно помню, ORM-инструменты выбирают и возвращают целые объекты из таблицы и ограничивают возможности выбора только определенных столбцов, как это можно сделать с помощью классического SQL-программирования. Конечно, у меня возникают сомнения по этому поводу, когда я вижу этот пример, но, тем не менее, я все еще задаю себе вопрос: возвращает ли база данных только выбранные столбцы или возвращает все объекты, оставляя фильтрацию столбцов ORM-инструмент?

В этом примере у них также есть класс 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; }     
}

Нужно ли создавать свои собственные классы каждый раз, когда я хочу выбрать только несколько столбцов из таблицы через LINQ?

Ответы на вопрос(4)

Ваш ответ на вопрос