L'expression LINQ contient des références à des requêtes qui sont associés à différents contextes

Voici mon code:

var myStrings = (from x in db1.MyStrings.Where(x => homeStrings.Contains(x.Content))
                    join y in db2.MyStaticStringTranslations on x.Id equals y.id
                    select new MyStringModel()
                    {
                        Id = x.Id,
                        Original = x.Content,
                        Translation = y.translation
                    }).ToList();

Et je reçois le message d'erreur que l'expression LINQ contient des références à des requêtes qui sont associés à des contextes différents. Je sais que le problème est que j'essaie d'accéder à des tables de deux db1 et db2, mais comment puis-je résoudre ce problème?

Les différents tableaux assez petit pour tenir dans la mémoire? Est l'une des deux tables beaucoup plus grande que l'autre?
Linq envoie des requêtes optimisées pour la base de données , donc si il y a deux contextes , il est impossible d'envoyer optimisée de requêtes à la base de données. @Dasblinkenlight dit,si les tables sont petites, les données de la mémoire et de faire la jointure sur IEnumerable au lieu de Iqueryable
MyStrings est une petite table.

OriginalL'auteur petko_stankoski | 2014-10-02