2010-12-21 2 views
3

que je reçois une erreur en essayant de se joindre contre plusieurs tables dans une requête:L'expression LINQ spécifié contient des références aux requêtes qui sont associées à des contextes différents

L'expression de LINQ spécifié contient des références à des requêtes qui sont associées avec des contextes différents

il est confus parce qu'il donne l'impression que j'utilise différents contextes dans la requête, mais je ne suis pas:

public static IQueryable<Company> GetAll(bool supportsMMAT) 
      { 
       return from c in Context.Companies 
          join v in Context.Vehicles on c.CompanyIdNumber equals v.CompanyIdNumber 
          join mt in Context.ModemTypes on v.ModemTypeId equals mt.Id 
          where !c.CompanyShutOff 
           && (!supportsMMAT || mt.Model == "MMAT") 
          select c; 
      } 

Toute idée s? J'utilise le code EF4 CTP5 première approche, si cela fait une différence ...

+1

est votre propriété de contexte nouveau contexte renvoyant un chaque appel? – DamienG

+0

Oui, c'est exactement ce qu'il faisait, mon « ContextWorker » classe que j'utilise pour accéder statiquement le contexte de données a été conçu pour des applications web et stockait le contexte dans httpRuntime. Cependant, je l'exécutais à partir d'un scénario de test, donc httpruntime n'était pas disponible et créait de nouveaux contextes. S'il vous plaît poster votre commentaire comme une nouvelle réponse afin que je puisse vous donner crédit. – Justin

Répondre

8

Cela peut se produire si votre propriété Context renvoie une nouvelle instance à chaque fois.

Questions connexes