Выбор конкретных столбцов с помощью 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?