2010-05-04 6 views
1

Entity Framework는 데이터베이스의 마지막 변경 내용을 표시하지 않지만 언젠가는 업데이트 된 내용을 표시합니다. 서버 나 페이지에 특별한 캐시가 없습니다. 감사합니다. 잭 여기에 그 문제가, 내가 목록을 얻기 위해 사용하는 코드입니다 : 거기 당신이 보여 쿼리 아무 문제가 없다, 따라서 당신이 의도 한 것보다 더 긴 기간 동안 ObjectContext를 사용하는 기대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

. ASP.NET 캐시 또는 세션에서 개체 컨텍스트를 캐시하고 있습니까? 그렇다면 요청 당 적어도 한 번 ObjectContext을 작성해야합니다. 절대로.

엔터티 프레임 워크 ObjectContextunit of work입니다. 그것은 그것의 평생 동안 객체를 캐싱합니다. 즉, 캐시에 이미있는 개체에 대해 데이터베이스를 쿼리하면 EF는 데이터베이스에서 해당 값을 검색하지만 그 결과를 버리고 캐시 된 개체를 반환합니다. 이렇게하면 왜 업데이트가 표시되지 않는지 설명 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 문제가있는 곳을 알려줍니다. 지금은 실제로 양식을 공용 클래스로 호출하는 대신 컨트롤러에 직접 코드를 작성하여 (이 프로젝트는 MVC에 있음)이 문제를 피할 수 있습니다 (해결되지는 않았습니다). – Jack

관련 문제