实体框架不会显示数据库中的最后更改,但有时会显示更新的内容。我在服务器或页面上没有任何特殊缓存。 预先感谢。 插口 这是我用来获取列表的代码,有问题:
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
};
答案 0 :(得分:1)
您显示的查询没有任何问题,因此我希望您使用ObjectContext
的时间比预期的要长。您是否在ASP.NET缓存或会话中缓存对象上下文?如果是这样,您应该为每个请求至少创建一次ObjectContext
。永远不会少。
问题是实体框架ObjectContext
是unit of work。它在其生命周期中缓存对象。这意味着当您在数据库中查询已在高速缓存中的对象时,EF将从数据库中检索该值(大多数时间),但会丢弃结果,并返回高速缓存的对象。这可以解释为什么你没有看到更新。