2010-05-04 2 views
1

Entity Framework n'affiche pas les dernières modifications de la base de données, mais affiche parfois le contenu mis à jour. Je n'ai aucun cache spécial sur le serveur ou sur la page. Merci d'avance. Jack Voici le code que je l'utilise pour obtenir la liste, qui a un problème:Entity Framework n'affiche pas la dernière modification de la base de données

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 
    }; 

Répondre

1

Il n'y a rien de mal à la requête que vous montrez, donc je vous attendre utilisez le ObjectContext pour une période plus longue que prévu. Mettez-vous en cache un contexte d'objet dans le cache ou la session ASP.NET? Si c'est le cas, vous devez créer un ObjectContext au moins une fois par demande. Jamais moins. Le fait est que le Entity Framework ObjectContext est un unit of work. Il met en cache des objets au cours de sa vie. Cela signifie que lorsque vous interrogez la base de données pour un objet déjà en cache, EF récupérera cette valeur dans la base de données (la plupart du temps), mais rejettera les résultats et retournera l'objet mis en cache. Cela pourrait expliquer pourquoi vous ne voyez pas les mises à jour.

+0

Merci pour votre réponse. Cela me donne une idée du problème. En ce moment j'évite (mais pas résolu) ce problème en écrivant le code directement dans le contrôleur (mon projet est en MVC) au lieu d'appeler un formulaire public. – Jack

Questions connexes