У меня есть вопрос, касающийся .AsNoTracking()
расширения, так как это все совершенно новое и довольно запутанное.
Я использую контекст для запроса для веб-сайта.
Многие из моих сущностей не меняются, поэтому не нуждаются в отслеживании, но у меня есть следующий сценарий, в котором я не уверен, что происходит с базой данных, и даже имеет ли это значение в этом случае.
Вот пример, который я сейчас делаю:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Это то же самое, что и выше, но удаление .AsNoTracking()
из шага 1:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Шаги 1 и 2 используют один и тот же контекст, но происходят в разное время. Я не могу понять, есть ли какая-то разница. Поскольку Шаг 2 является обновлением, я полагаю, что оба все равно дважды попадут в базу данных.
Может кто-нибудь сказать мне, в чем разница?