Харпер - Я чувствовал почти то же самое в отношении Linq-To-SQL, пока не понял, что все дело в том, как вы думаете об ORM ... это помогает думать о Linq2SQL как о не более чем "строго типизированной ADO. NET провайдер "...
Если вы просто хотите "быстро просмотреть" пару полей, то проекции LINQ вернут вам анонимные типы, которые содержат только те поля, которые вас интересуют. Это означает, что размер класса сущности не имеет отношения к производительности сети и памяти по вашему запросу.
На противоположной стороне спектра DataContexts (или UnitOfWork в других ORM) обычно являются тем, что вы используете и утилизируете как можно быстрее. Из этого следует, что объекты, которые они генерируют, должны быть ограничены в своей роли просто «держателями данных». Иными словами, если вы хотите создать сложные или долгоживущие объекты, проектируйте их отдельно от сущностей LINQ (т.е. разных классов) и просто используйте L2S для заполнения / создания экземпляров этих объектов.