Le type de Système.Les données.Linq.DataContext " est défini dans une assemblée qui n'est pas référencé

Le Problème

D'erreur lorsque vous allez à une page spécifique (debug): CS0012: Le type du Système".Les données.Linq.DataContext " est défini dans une assemblée qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'Système.Les données.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Ici sont référencés les lignes de code dans le message d'erreur:

Ligne 28:
Ligne 29:
Ligne 30: public class _Page_Views_blah_granny_cshtml : Système.Web.Mvc.WebViewPage {
Ligne 31:
Ligne 32: #line caché

Toutes les autres pages de l'excellent travail - ce qui se passe lors de l'accès à une page en particulier. La référence est de travailler sur toutes les autres pages. Pour autant que je suis en mesure de déterminer, ce n'est pas un problème avec la référence.

J'ai passé un bon bloc de temps à étudier cette question.

Toutes les réponses que j'ai trouvé suggéré d'aller pour le web.config et mettre une référence d'assembly à linq dans le système.web > configuration > ensembles. Le mien n'a pas assemblées répertoriés, et je soupçonne que c'est plus pour les anciennes versions. Je n'ai de toute façon. Il m'a donné une autre erreur indiquant qu'il n'a aucune idée de quoi faire avec les assemblées.

J'ai supprimé du système.les données.linq et de l'ajouter à nouveau.

J'ai redémarré deux VS et mon ordinateur.

Mon code généré par défaut par VS - a Système.Linq.

De fond - C'est comment cela a commencé:

L'application MVC 4, C#.

J'ai créé une nouvelle catégorie dans mon DataContext, a ajouté un nouveau contrôleur, et créé une vue fortement typée.

Ici est très semblable code (probablement pas nécessaire, mais juste au cas où).

Deux classes:

public class granny { 
            public string data { get; set; }
            public string criteria { get; set; }
}

public List<granny> getGranny() {
    var a = from x in grannytable
            join dx in anothertable
            on x.criteria equals dx.criteria
            select new granny {
                data = x.somenewdata;
            }; 
    return a.ToList();
}

Ici est le contrôleur:

    public ActionResult granny() {
        return View(db.getGranny());
    }

Rien de compliqué là.

La page est un exemple typique de rasoir vue fortement typée "Liste"...il a un tableau qu'il effectue une itération de créer, de dumping, les données comme il va.

Je suis heureux de fournir des code supplémentaire au besoin.

Je n'ai pas gâché avec web.config. Je n'ai pas supprimé ou modifié une des références sur les pages. Tous les autres points de vue travail à merveille.

Quand je le lance en local, et essayer d'aller à /granny-je obtenir l'erreur ci-dessus.

Merci pour votre aide!

LA SOLUTION: je suis allé dans les références, et pour le Système.Linq (ou pour les anciennes versions, je suppose, Système.Les données.Linq) et changé CopyLocal de Vrai.

Oublier sur les assemblys dans le fichier de configuration, votre projet est-il pas "normal" ensemble de références? (Dans l'explorateur de solutions, est-il des Références?)
Il y a certainement. Ce Système de références.Les données.Linq. J'ai supprimé la référence et de l'ajouter, pensant que quelque chose s'est accroché là-haut. Je suis en utilisant le inclus .NET Système.Les données.Linq. Il souligne C:\Program Files\de Référence Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.Linq.dll comme il se doit. Il est intéressant de noter que mes autres pages à l'aide de linq l'amende juste. Je ne pense pas que c'est une linq problème de référence, car il n'est pas grégaire problème - c'est tout simplement cette page.
pouvez-vous fournir une solution complète ou un projet qui illustre le problème?
L'ensemble de la solution? Ou il y a des fichiers spécifiques ou des propriétés qui vous intéressent?
Une solution complète. N'a pas à être VOTRE solution par dire. Juste un qui montre le problème.

OriginalL'auteur shubniggurath | 2013-03-25