Какую разницу имеет значение .AsNoTracking ()?
У меня есть вопрос относительно.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 является обновлением, я предполагаю, что оба так или иначе дважды попадут в базу данных.
Может кто-нибудь сказать мне, в чем разница?