У меня есть приложение MVC3, которое использует POCO / репозитории EF4. Всякий раз, когда элемент открывается пользователем на веб-сайте, он помечается в базе данных. Существует серверная служба, которая постоянно проверяет наличие каких-либо элементов, помеченных в течение более «х» секунд, и отключает их. Проблема, с которой я сталкиваюсь, заключается в том, что в моей бэкэнд-службе выполняемый запрос обнаруживает помеченные элементы, но когда я проверяю, помечен ли отдельный элемент, сущность не обновляется.
Вот мой код, который ищет помеченные элементы
var list = Context.Transactions
.Where(t => t.Locked).ToList() ;
list.Count () возвращает мне правильный номер. Но когда я начинаю перебирать список, я обнаруживаю, что t.Locked = false
Когда я запускаю профилировщик SQL, я вижу, что для моего кода выше данные правильно извлекаются из базы данных. Это проблема с кэшированием или картой идентификации, из-за которой я неправильно использую EF.