Чем DbContext может быть опасен при неправильном использовании?
Что хотят услышать интервьюеры:
Неправильное использование DbContext опасно тем, что проблема часто проявляется не сразу, а под нагрузкой или при изменении требований. Важно уметь посмотреть сгенерированный SQL и объяснить, где запрос выполняется: в БД или в памяти.
- Суть: DbContext — единица работы EF Core: хранит Change Tracker, строит запросы и сохраняет изменения.
- Где встречается: доступ к данным, миграции, запросы, транзакции и оптимизация ORM-слоя.
- Типичная ошибка: получить N+1, использовать tracking для read-only запросов или не смотреть сгенерированный SQL.
- Как отвечать: начните с короткого определения, затем приведите пример, назовите ограничение и типичную ошибку.
- Ожидаемый уровень: Middle+. Умение учитывать production-ограничения, производительность и надежность.
Ответ:
var orders = await db.Orders.AsNoTracking().Where(o => o.UserId == userId).ToListAsync();