Вам не нужно «прикреплять» то, что вы уже извлекаете (Ладислав прав). Как только вы извлекаете объект (например, SingleOrDefault), он находится «в графе» (память EF, поэтому он может выполнять оптимистичный параллелизм).
Если вы пытаетесь выполнить ОБНОВЛЕНИЕ <и «сущность», через которую вы проходите, новая / отдельная ... </p>
Попробуйте метод заглушки :
public void Update(Site entity)
{
using (db)
{
var stub = new Site { Id = entity.Id }; // create stub with given key
db.Sites.Attach(stub); // stub is now in graph
db.Sites.ApplyCurrentValues(entity); // override graph (stub) with entity
db.SaveChanges();
}
}
При этом указанная вами ошибка указывает на другую проблему (преобразование данных).
Вы проверили значения «даты», через которые вы проходите, с типом данных в модели?