Выбор ответа Junior EF Core спрашивают часто обновлено

Зачем AsNoTracking

Вопрос

Когда стоит использовать AsNoTracking()?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Для запросов только на чтение: без снимков для трекера. По умолчанию EF Core регистрирует загруженные сущности в трекере изменений и хранит исходные значения для сравнения при SaveChanges.

Варианты ответа

  1. Для запросов только на чтение: без снимков для трекераправильный ответ
  2. Когда нужно быстрее сохранить изменения загруженных сущностей
  3. Чтобы отключить кеширование SQL-плана запроса в базе данных
  4. Чтобы запрос выполнился вне транзакции и не брал блокировок

Разбор

По умолчанию EF Core регистрирует загруженные сущности в трекере изменений и хранит исходные значения для сравнения при SaveChanges. Для отчётов и API на чтение это лишняя работа. С AsNoTracking изменения сущностей не будут сохранены, поэтому для обновлений он не подходит. На план выполнения в базе и транзакции он не влияет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.