Никита Фурса@UnderNickOfficial
Backend разработчик на языке программирования C#
Информация
- В рейтинге
- Не участвует
- Откуда
- Киев, Киевская обл., Украина
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Бэкенд разработчик, Фулстек разработчик
Младший
От 2 000 $
HTML
CSS
.NET Core
Entity framework
Blazor
ASP.NET
ASP.NET WEB API
SQL
C#
Разработка программного обеспечения
Проблема именно в том, что все эти 50 запросов будут выполнены одновременно, из разных потоков и в одном контексте. А так как DbContext не является thread-safe, то есть не позволяет двум потокам одновременно с ним работать, возникает первая ошибка.
Это верно, но эта статья создана для тех, кто видит такое исключение впервые и именно на Blazor, так как например при создании API-сервера такие ошибки почти не возникают.
Решение с одним контекстом не всегда можно использовать. Особенно если у вас большой проект и вам нужно разделить страницу на множество компонентов, для которых нужны свои данные из БД. Вытягивать все данные в родительском компоненте и после передавать их в качестве параметра - не всегда удобно. Например, если у вас вложенная структура и нужно передать данные 4-му дочернему компоненту. По поводу .AsNoTracking() - он выполняет тот же функционал, что и удаление контекста.