Я так поняла, что если у меня данные IQueryable, то запрос выполняется, только когда я вызываю методы Count(), ToList() и подобные, либо начинаю перебирать в цикле.
//не загружает данные
IQueryable<Employees> employeesModels = _dbDopuskContext.Employees.AsNoTracking().Where(e => e.Deleted.Equals(0));
//не загружает данные
foreach (string s in searchValues)
{
employeesModels = employeesModels.Where(e => e.Surname.Contains(s) || e.Name.Contains(s) || e.Patronymic.Contains(s) || e.Tabnum.Contains(s));
}
//загружает, т.к. используется Take
employeesModels = employeesModels.Skip((currentPage - 1) * Defined.EmployeesPageLength)
.Take(Defined.EmployeesPageLength);
В первый раз так и отрабатывает. Во второй после первого же простого запроса лист заполняется. Может бд хэш какой сохраняет? Она у меня все время подключена, как синглтон сделана.
Мне совершенно не подходит такой способ, надо запрос накопить и потом выполнить, у меня получается данные на клиенте сортируются.
Как сделать, чтобы данные заполнялись только когда я к ним обращаюсь?
То, что вы видите в ResultsView
в дебаге - это результат работы отладчика, который сам выполняет перечисление результатов. Фактически, запрос к базе выполняется каждый раз когда вы заглядываете в ResultsView
- и к работе программы без отладчика это не имеет ни малейшего отношения.
Чтобы определить какие запросы к БД реально выполняются - нужно использовать профайлер.
Например, можно использовать встроенный в студию IntelliTrace.
Альтернативный вариант - использовать утилиты идущие в составе с СУБД, например SQL Server Profiler
Также можно использовать встроенные возможности Entity Framewwork в виде свойства DbContext.Database.Log
- этот делегат будет вызываться каждый раз когда выполняется запрос к БД.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую компонент Network Transform, позиция синхронизируется нормальноПробую использовать Netwrok Transform Child, позиция детей не синхронизируется вообще