Entity Framework не отображает последнее изменение из базы данных - PullRequest
2 голосов
/ 04 мая 2010

Entity Framework не отображает последние изменения из базы данных, но через некоторое время показывает обновленное содержимое. У меня нет специального кэша на сервере или на странице. Заранее спасибо. Джек Вот код, который я использую, чтобы получить список, у которого есть проблема:

var m =
    from relation in ett.Article_Relations
    from article in ett.Article_Articles
    from content in ett.Article_Contents
    where relation.MenuItemID == id
    where relation.Article_Articles.ArticleID == article.ArticleID 
    where content.LanguageID == LanguageID 
    where article.ArticleID == content.Article_Articles.ArticleID
    select new ArticleViewModel
    {
        ArticleID = article.ArticleID,
        IsActive = article.IsActive,
        Author = article.ArticleAuthor,
        Content =  content,
        DateCreated = article.DateCreated
    };

1 Ответ

1 голос
/ 04 мая 2010

В отображаемом запросе нет ничего плохого, поэтому я ожидаю, что вы используете ObjectContext дольше, чем предполагалось. Вы кэшируете контекст объекта в кэше ASP.NET или сеансе? Если это так, вы должны создать ObjectContext хотя бы один раз для каждого запроса. Никогда меньше.

Дело в том, что Entity Framework ObjectContext - это единица работы . Он кэширует объекты в течение своей жизни. Это означает, что когда вы запрашиваете в базе данных объект, который уже находится в кэше, EF будет извлекать это значение из базы данных (большую часть времени), но отбрасывает результаты и возвращает кэшированный объект. Это может объяснить, почему вы не видите обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...