Как сказал Ренат, удалите: db.Books.Attach(book);
Кроме того, измените ваш запрос результата на использование «AsNoTracking», потому что этот запрос выкидывает состояние модели сущности. Он считает, что «результат» - это книга для отслеживания сейчас, и вы этого не хотите.
var result = db.Books.AsNoTracking().SingleOrDefault(b => b.BookNumber == bookNumber);