Eu tenho uma pergunta sobre a .AsNoTracking()
extensão, pois tudo isso é bastante novo e bastante confuso.
Estou usando um contexto por solicitação para um site.
Muitas das minhas entidades não mudam, portanto, não precisam ser rastreadas, mas tenho o seguinte cenário em que não tenho certeza do que está acontecendo no banco de dados, ou mesmo se isso faz diferença nesse caso.
Este exemplo é o que estou fazendo atualmente:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
É o mesmo que acima, mas remove o .AsNoTracking()
da Etapa 1:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
As etapas 1 e 2 usam o mesmo contexto, mas ocorrem em momentos diferentes. O que não consigo descobrir é se existe alguma diferença. Como a Etapa 2 é uma atualização, acho que ambos atingirão o banco de dados duas vezes.
Alguém pode me dizer qual é a diferença?