Я завершил свой проект API и отредактировал ошибку, упомянутую в приложении, с помощью AsNoTracking. Однако при вводе теста моего контроллера обновлений обозреватель тестов выдает ошибку:
"Экземпляр типа сущности не может быть отслежен..".
Как я могу решить эту проблему.
Вот мой репозиторий обновлений: (работает безупречно)
public override void Update (объект книги) { var result = _context.Books.AsNoTracking().SingleOrDefault(x => x.ProductId ==entity.ProductId); если (результат == ноль) throw new InvalidOperationException("Güncellemek istediğiniz kitap bulunamadı."); base.Update(сущность); база.Сохранить(); } Вот мой тестовый класс UpdateOperation:
частный только для чтения ApplicationDbContext _context; общедоступный UpdateOperationTests() { var options = новый DbContextOptionsBuilder() .UseInMemoryDatabase(имя базы данных: Guid.NewGuid().ToString()).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking).Options; _context = новый ApplicationDbContext (параметры); _context.Database.EnsureCreated(); } [Факт] публичная пустота UpdateBook() { /* Договариваться */ вар newBook = BookMockData.UpdateBook(); _context.Books.AddRange(BookMockData.GetBooks()); _context.SaveChanges(); вар sut = новый BookRepository(_context); /* Утверждать и действовать */ FluentActions.Invoking(() => sut.Update(newBook)).Should().NotThrow(); } И вот моя ошибка:
