109 votes

Le type ou le nom d'espace de noms '"Objets" n'existe pas dans l'espace de noms du Système".Les données"

Je suis l'aide d'entités, C# et SQL Server pour créer un n-tier application. Je suis la création de certaines classes de base commun à tous mes DAL composants. Dans cette classe de base, je veux gérer l'état de connexion de l'ObjectContext de la classe de base hérité par les entités de l'objet.

La compilation de jette, le message d'erreur suivant:

Le type ou le nom d'espace de noms 'des Objets' n'existe pas dans l'espace de noms 'Système.Les données " (vous manque un assemblée de référence?)

Aussi, l'instruction à l'aide du Système.Les données.Les objets ne résout pas pour la même raison.

J'ai essayé d'ajouter à l'assemblée comme référence, mais ne pouvais pas le trouver dans le .NET onglet de références d'assembly.

Toutes les pensées? Merci!

213voto

Joshua Belden Points 3492

Vous devez ajouter une référence à l' .NET de l'assemblée System.Data.Entity.dll.

57voto

thomo Points 171

Si vous êtes en utilisant Entity Framework 6, le nom de l'espace a changé. Vous souhaitez utiliser

System.Data.Entity.Core.Objects.ObjectQuery

33voto

Tim Valentine Points 443

Mise à niveau à partir EF5 à EF6 nuget un certain temps en arrière et maintenu rencontrer ce problème. J'avais temp de le corriger en mettant à jour le code généré pour le Système de référence.Les données.De l'entité.De base.Les objets, mais après génération, il sera changé de nouveau de retour (comme prévu depuis sa généré).

Cela a résolu le problème pour de bon:

http://msdn.microsoft.com/en-us/data/upgradeef6

If you have any models created with the EF Designer, you will need to update the code generation templates to generate EF6 compatible code.
Note: There are currently only EF 6.x DbContext Generator templates available for Visual Studio 2012 and 2013.

Delete existing code-generation templates. These files will typically be named <edmx_file_name>.tt and <edmx_file_name>.Context.tt and be nested under your edmx file in Solution Explorer. You can select the templates in Solution Explorer and press the Del key to delete them.
Note: In Web Site projects the templates will not be nested under your edmx file, but listed alongside it in Solution Explorer.
Note: In VB.NET projects you will need to enable 'Show All Files' to be able to see the nested template files.
Add the appropriate EF 6.x code generation template. Open your model in the EF Designer, right-click on the design surface and select Add Code Generation Item...
If you are using the DbContext API (recommended) then EF 6.x DbContext Generator will be available under the Data tab.
Note: If you are using Visual Studio 2012, you will need to install the EF 6 Tools to have this template. See Get Entity Framework for details.
If you are using the ObjectContext API then you will need to select the Online tab and search for EF 6.x EntityObject Generator.
If you applied any customizations to the code generation templates you will need to re-apply them to the updated templates.

3voto

Caesar Points 61

Même problème en VS 2013

J'ai ajouté dans le Web.config :

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

Il a travaillé comme un charme.

Je l'ai trouvé sur la page: http://www.programmer.bz/Home/tabid/115/asp_net_sql/281/The-type-or-namespace-name-Objects-does-not-exist-in-the-namespace-SystemData.aspx

0voto

Tom Cubbins Points 1

J'ai ajouté une référence à l' .fichier dll pour le Système.Les données.Linq, le ci-dessus n'était pas suffisant. Vous pouvez trouver .dll dans les différents répertoires pour les versions suivantes.

Système.Les données.Linq C:\Program Files (x86)\de Référence Assemblies\Microsoft\Framework\v3.5\System.Data.Linq.dll 3.5.0.0

Système.Les données.Linq C:\Program Files (x86)\de Référence Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\System.Data.Linq.dll 4.0.0.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X