实体框架不显示数据库的最后一个更改

时间:2010-05-04 10:15:10

标签: c# 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 个答案:

答案 0 :(得分:1)

您显示的查询没有任何问题,因此我希望您使用ObjectContext的时间比预期的要长。您是否在ASP.NET缓存或会话中缓存对象上下文?如果是这样,您应该为每个请求至少创建一次ObjectContext。永远不会少。

问题是实体框架ObjectContextunit of work。它在其生命周期中缓存对象。这意味着当您在数据库中查询已在高速缓存中的对象时,EF将从数据库中检索该值(大多数时间),但会丢弃结果,并返回高速缓存的对象。这可以解释为什么你没有看到更新。