2008-10-27 7 views
0

J'essaie de faire fonctionner correctement les sqlcachedependecy, mais il ne semble pas fonctionnernotification de commande ne fonctionne pas SqlCacheDependecy

Je suis les paramètres appropriés dans mon web.config et aussi global.asa, mais quand je lance cette requête et les modifications sont apportées à la base de données soit avec dans ou en dehors du site web les objets mis en cache ne sont pas mis à jour s'il vous plaît quelqu'un d'aide? Je sais que ce n'est pas parce que cette requête interroge une vue, parce que j'ai testé cela en utilisant SqlDependecy et la notification fonctionne bien.

public IQueryable<VictoryList> GetVictoryList() 
    { 
       string cacheKey = HttpContext.Current.User.Identity.Name + "victoryCacheKey"; 
       IQueryable<VictoryList> cachednews = (IQueryable<VictoryList>)HttpContext.Current.Cache.Get(cacheKey); 

       if (cachednews == null) 
       { 

        var results = from v in _datacontext.ViewVictoryLists 
            orderby _datacontext.GetNewId() 
            select new VictoryList 
            { 
             MemberID = v.MemberID, 
             Username = v.Aspnetusername, 
             Location = v.Location, 
             DaimokuGoal = v.DaimokuGoal, 
             PreviewImageID = v.PreviewImageID, 
             TotalDaimoku = v.TotalDaimoku, 
             TotalDeterminations = v.TotalDeterminations, 
             DeterminationID = v.DeterminationID, 
             DeterminationName = v.DeterminationName 
            }; 
        results = results.ToList().AsQueryable(); 
        SqlCacheDependencyAdmin.EnableNotifications(_datacontext.Connection.ConnectionString); 
        SqlCacheDependency dependency = 
        new SqlCacheDependency(_datacontext.GetCommand(results) as SqlCommand); 



        HttpContext.Current.Cache.Insert(cacheKey, results, dependency); 

        return results; 
       } 
       return cachednews; 
    } 
+0

Vous avez mentionné dans un autre commentaire que vous étiez capable de travailler avec une vue, mais pas très bien. Avez-vous déjà réglé ce problème pour que cela fonctionne de façon uniforme? – mpeterson

+0

Non, ça n'a jamais vraiment fonctionné avec linq, ça marche parfois et d'autres pas. – dswatik

Répondre

2

Selon les limites indiquées pour la création d'une requête pour la notification, la liste à msdn ...

La déclaration ne doit pas faire référence à une vue.

+0

Merci j'ai bossé à travers cela ... et je l'ai fait travailler avec la vue (en quelque sorte) apparemment, il ne fonctionne pas systématiquement. – dswatik