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