Когда происходит реальное выполнение запроса?
От: AlexNek  
Дата: 31.05.11 22:38
Оценка:
Делаю с помощью Linq и BLToolkit различные запросы к базе (доработка программы Янус). Все в одном запросе не объединишь.
Получаются различные части в которых почти всегда можно глянуть SQL. Вроде немного разобрался как делать простые запросы.
Но не совсем понятно когда именно происходит реальное обращение к базе и выполняется запрос.
Есть достаточно многоступенчатый запрос чисто для подсчета количества, не хотелось бы его выполнять раньше времени. (До того как он будет полностью готов.)

Вот простой пример

        protected IQueryable<IForumMessage> GetMessages(DbManager db)
        {
            return db.Messages(m => m.UserID == Config.Instance.SelfId); 
        }


            using (DbManager db = ServiceProvider.CreateDBManager())
            {
                IQueryable<IForumMessage> forumMessages = GetMessages(db);
                RepliesCount = forumMessages.Count();
                UnreadCount = forumMessages.Count(im => !im.IsRead);
            }


функция GetMessages вызывается для конструирования других запросов также.

Типа добавляем сортировку
                IOrderedQueryable<IForumMessage> messages = forumMessages.OrderByDescending(m => m.Date);

Выполняется ли допустим здесь запрос именно на этапе вызова forumMessages.Count();?
Cообщение написано в ... &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R4 rev. 3517&gt;&gt;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.