Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The type or namespace name 'Objects' does not exist in the namespace 'System.Data'

I am using entities, C# and SQL Server to create an n-tier app. I am creating some base classes common to all my DAL components. In this base class, i want to handle the connection state of the ObjectContext base class inherited by entities object.

Compiling throws the following error:

The type or namespace name 'Objects' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

Also, the using statement System.Data.Objects doesn't resolve for the same reason.

I tried adding the assembly as reference, but couldn't find it in the .NET tab of assembly references.

Any thoughts? Thanks!

like image 791
pencilslate Avatar asked Aug 13 '09 22:08

pencilslate


3 Answers

You need to add a reference to the .NET assembly System.Data.Entity.dll.

like image 95
Joshua Belden Avatar answered Nov 20 '22 18:11

Joshua Belden


If you are using Entity Framework 6, the name space has changed. You want to use

System.Data.Entity.Core.Objects.ObjectQuery
like image 38
James Avatar answered Nov 20 '22 18:11

James


Upgraded from EF5 to EF6 nuget a while back and kept encountering this issue. I'd temp fix it by updating the generated code to reference System.Data.Entity.Core.Objects, but after generation it would be changed back again (as expected since its generated).

This solved the problem for good:

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.

  1. 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.
  2. 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.
  3. If you applied any customizations to the code generation templates you will need to re-apply them to the updated templates.
like image 33
Tim Valentine Avatar answered Nov 20 '22 17:11

Tim Valentine