Ну, я столкнулся с той же проблемой некоторое время назад, а затем я придумал LINQ для SP =). Сделайте и SP, и опустите это в свои сущности и используйте его. вы можете написать Sp в соответствии с вашими потребностями, например, потянуть ваши записи и колонку с общей записью. Это проще и быстрее по сравнению с тем, что вы используете прямо сейчас.
у меня был тот же вопрос в прошлом году, а затем, когда он пришел к производительности, то вместо того, чтобы сделать два запроса, я переехал в LINQ к SP и сделал хранимую процедуру, и назвали его через лиц, как LINQ для хранимой процедуры =). И моя хранимая процедура сделала все и вернула только те записи, которые я хотел, и я сделал подкачку на конце хранимой процедуры, чтобы получить ограниченные данные одновременно, а не все данные в приложении.
Вы можете сделать и SP и удалить это в свои объекты и использовать его. вы можете написать Sp в соответствии с вашими потребностями, например, потянуть ваши записи и полные записи также в качестве столбца. Подумайте, есть ли 1000K записей из 100 таблиц. Медленная производительность? вы можете сделать это на Linq to SQL, создав Sp на уровне базы данных и вызывая сущности. Это будет намного быстрее, чем тот, который вы пытаетесь достичь.)
Я думаю, что NHibernate - единственная ORM, которая может это сделать, с CreateMultiQuery и Future's. Обе функции не в L2S, EF, LightSpeed. (не знаю о SubSonic или какой-либо другой ORM) – Phill