Une erreur mystérieuse en ASP.NET !

Erreur 4 Le type 'System.Data.Objects.DataClasses.EntityObject' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Voici une erreur qui paraît être explicite, mais qui… ne l’est pas toujours !

D’après ce message, il suffirait d’ajouter une ligne au Web.config (ou de modifier les dépendances du projet via les Références de celui-ci). Mais dans mon cas, cela n’a pas suffi ! L’erreur était toujours présente.

Il faudrait en fait ajouter les deux références suivantes au projet : "System.ComponentModel.DataAnnotations" et "System.Data.Entity".

Dans le fichier « .csproj », cela se traduit par les lignes suivantes :

  <Reference Include="System.ComponentModel.DataAnnotations" />
  <Reference Include="System.Data.Entity" />

 

C’est l’installation d’EntityFramework via le gestionnaire de paquets NuGet qui m’a permis de résoudre ce problème (en ajoutant lui-même les dépendances).

A noter que l’on trouve beaucoup de forums relatant un problème similaire. Mais c’est ASP.NET MVC qui est en jeu dans la plupart des cas :

http://robertgreiner.com/2012/10/the-type-system-data-objects-dataclasses-entityobject-is-not-referenced/

http://stackoverflow.com/questions/3219412/strange-compilation-error-in-entity-framework-and-mvc-application

http://stackoverflow.com/questions/1501616/is-the-combination-of-ado-net-entity-framework-and-asp-mvc-wrong-by-any-chance

http://ybbest.wordpress.com/2011/03/23/system-data-objects-dataclasses-entityobject-is-defined-in-an-assembly-that-is-not-referenced/

Enfin, voici l’erreur en anglais :

The type 'System.Data.Objects.DataClasses.EntityObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Merci au site http://unlocalize.com/, très utile pour les traductions de messages d’erreur !

Il s’agit donc d’une erreur a priori assez rare, et à tendances aléatoires (je n’ai pas réussi à la reproduire…). Quoi qu’il en soit, j’espère que vous tomberez sur ce billet si vous avez la même erreur !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.