Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 111
1

Кэш Entity Framework не сбрасывается

26.11.2018, 16:55. Просмотров 474. Ответов 1
Метки нет (Все метки)

Добрый день

При вызове из метода контроллера метода

C#
1
2
3
4
5
        public IEnumerable<Client> GetAllTest()
        {
            var clients = _db.Clients.AsNoTracking().ToArray();
            return rep.Get();
        }
я получаю клиентов - актуальное состояние таблицы БД.

если этот метод вызвать из юнит теста (проверяю его) - clients уже другие - состояние таблицы на тот момент, когда я экспериментрировал с клиентами чуть ранее - удалял-добавлял их.

Видимо в тестах срабатывает кэш, хотя AsNoTracking() запрещает изпользовать кэш. Почему это происходит и как от этого избавиться?

Добавлено через 2 часа 20 минут
Поправка к вопросу:
Выяснил, что этот эффект происходит не обязательно при вызове метода из тестового, а вообще из любого другого проекта в данном солюшне.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2018, 16:55
Ответы с готовыми решениями:

В чем разница между Entity Framework и Entity Framework Core?
В чем разница (если она есть) между entity framework и entity framework core?

Entity Framework. Удаление entity без удаления связей
Вечер добрый. Есть модель Coder First. Каскадное удаление запрещено. Удаление произвожу так: ...

Entity Framework

Entity Framework
Здравствуйте, есть проблема с Entity Framework, как источник данных я указал объекты созданные...

1
Эксперт .NET
7311 / 5071 / 869
Регистрация: 21.01.2016
Сообщений: 19,417
03.12.2018, 09:06 2
olegall, обратите внимание, что две строки кода между собой никак не связаны. Вы выгружаете список клиентов (вообще всех, что есть фу, но сейчас не об этом) и тут же его выбрасываете, а потом вызываете метод Get() некоего rep (видимо репозиторий), чьи данные и используете. Т.е. строка №3 создаёт вообще бесполезную нагрузку на СУБД.

Чтобы кеш EF сбрасывался, время жизни его контекста нужно ограничивать одним запросом (не к базе, а запросом браузера к веб-приложению).

Ещё одним моментом может являться сама СУБД. Если вы используете какую-то LocalDB или SQLite, с копированием файла базы из папки проекта в папку BIN, то наработки в базе будут перетираться.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2018, 09:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Entity framework One vs Zero-or-One
При настройке ассоциаций между двумя сущностями можно выбрать чтобы на конце связь была &quot;один&quot; и...

Entity Framework 6
Нарисовалась неожиданная проблемка. Штудирую Троелсена, там описание Framework 4, у меня 6-я...

Освоение entity framework
всем доброго времени, хочу освоить entity framework можете посоветовать литературу или сайты, в...

Мистика Entity Framework
Доброго вечера, дорогие форумчане. Помогите пожалуйста решить очередные мистические вопросы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.