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