title: The instance of entity type 'Item' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked
body: <p>I am aware that such question has already been asked, but solution did not help me.</p>
  
  <pre><code>[Fact]
  public async Task UpdateAsync()
  {
      string newTitle = "newTitle1";
      int newBrandId = 3;
      var item = await storeContext.Items.AsNoTracking().FirstOrDefaultAsync();
      item.BrandId = newBrandId;
      item.Title = newTitle;
      storeContext.Entry(item).State = EntityState.Detached;
      await service.UpdateAsync(item); // exception inside
      var updatedItem = await storeContext.Items.AsNoTracking().FirstOrDefaultAsync();
      Assert.Equal(newTitle, updatedItem.Title);
      Assert.Equal(newBrandId, updatedItem.BrandId);
  }
  
  public async Task UpdateAsync(T entity)
  {
      _dbContext.Entry(entity).State = EntityState.Modified; // exception when trying to change the state
      await _dbContext.SaveChangesAsync();
  }
  </code></pre>
  
  <blockquote>
    <p>Message: System.InvalidOperationException : The instance of entity type 'Item' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.</p>
  </blockquote>
  
  <p>interesting that exception is the same even if no item retreived from db, like so</p>
  
  <pre><code>//var item = await storeContext.Items.AsNoTracking().FirstOrDefaultAsync();
    var item = new Item()
    {
        Id = 1,
        BrandId = newBrandId,
        CategoryId = 1,
        MeasurementUnitId = 1,
        StoreId = 1,
        Title = newTitle
    };
  </code></pre>