命名空间“ System.Data”中不存在类型或命名空间名称“ Entity”

我正在使用 WS 类,当我运行应用程序时它给了我一个错误:

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

我有一个参考的 System.Data;System.Data.Entity; 但是没有改变。我一直得到这个错误。我在 web.config 中也有这样一行:

<compilation debug ="true" targetFramework="4.0"/>
153724 次浏览

Thanks every body! I found the solution. not that I understand why but I tried this and it worked! I just had to add a reference to: System.Data.Entity.Design and don't have to write any using in the code. Thanks!

Hi this post is very misleading, if your reading this 2 years on.

With using EF6 and .net 4.5.1 in VS 2013 I have had to reference the following to get this to work

using System.Data.Entity.Core.EntityClient;

a little different to before,

this is more of a FYI for people that come here for help on newer problems than a answer to the original question

Right-click on the Solution from the Visual Studio Solution Explorer click the Manage Nuget packages for solution and install the EntityFramework

I just had the same error with Visual Studio 2013 and EF6. I had to use a NewGet packed Entity Framework and done the job perfectly

I had just updated my Entity framework to version 6 in my Visual studio 2013 through NugetPackage and add following References:

System.Data.Entity,
System.Data.Entity.Design,
System.Data.Linq

by right clicking on references->Add references in my project. Now delete my previously created Entity model and recreate it again,Built solution. Now It works fine for me.

tried reinstall - no luck. i had to refresh a table in my model before it would find Entity.

I had entity framework 6.1.3, upgraded (well, more downgraded in NuGet) to 6.1.2. Worked.

I will add my answer to cover all cases:

My solution was unistalling EntityFramework from NuGet Package Manager and then I was prompted to restart Visual Studio because it couldn't "finalize the uninstall".

I restarted Visual Studio and reinstalled EntityFramework then my problem was solved.

Hope this helps someone!

You need to install Entity framework by right click on your VS solution and click Manage NuGet Package solution and search there Entity framework. After installation the issue will be solved

It's helped me, I uninstalled EF, restarted VS and I added 'using':

using System.Data.Entity;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;

I had to refresh my DBModel. That solved it

I had to reference System.Data.DataSetExtensions, which seems completely illogical

I had the same errors.

I added System.Data.Entity.Repository from Nuget Packages and the errors disappears.

Hope it wil help!

Make sure you have the EntityFramework Nuget package installed for your project.

From @TonyDing's answer:

Right-click on the Solution from the Visual Studio Solution Explorer click the Manage Nuget packages for solution and install the EntityFramework

Once it is installed, I still had the error, but then did a reinstall per @papergodzilla's comment:

Update-Package -reinstall

and it resolved my issue

Do this in the Package Manager Console (View > Other windows > Package Manager Console).
Now everything is good!

I noticed that in the csproj the framework entity had hintpath like

<HintPath>..\..\..\..\..\..\Users\{myusername}

I had this in the nuget.config file:

 <config>
<add key="repositoryPath" value="../lib" />
</config>

a) I removed the above lines, b) uninstalled the framework entity package, c) THEN CLOSED THE solution and reopened it, d) reinstalled the framework.

It fixed my issue.

My solution was simple! I was actually having this error when checked out a repo from a svn server. I took following steps to remove error

  1. Cleaned solution
  2. Went to nuget package manager and uninstalled the entity framework.
  3. Removed DataModel and its .cs components.
  4. Shutdown the VS and opened again.
  5. Installed Entity Framework and Recreated entity model.
  6. Check if there is any files needed "Include in the solution". It worked like a charm

If you're using a database-first approach:

Before uninstalling / reinstalling Entity Framework, first try simply adding another table / stored procedure to your model (assuming there are any currently unmapped). That fixed the issue for me. Of course if you don't need the resource mapped then just delete it from the model afterwards. But it looks like a force-regeneration of the edmx did the trick.

I found the root cause is when you install the nuget packages through the UI the scripts won't run sometimes. So I'd recommend open Output view while you do that. If you don't see the license agreement window when installing Nuget, there is a better change your IDE isn't doing the job right. So that's why a restart, cleanup and rebuild helps!

PS: That adding anything under System.Data.Entity.* helps because, that triggers the Nuget installer to work properly. But this I found a quite unreliable way.

So just watch the output window, you MUST see something like a successful nuget installation message at the end. Most the time when there an issue, Nuget installer won't even kick off. That's when your restart of IDE is going to help.

When things go well, Nuget package manager and IDE (I used Installer term above) would do the change, compile the solution and keep you happy! But when its not give a little help by restarting IDE and watching that Output window!

If you are using EF version more than 6.x , then see if you have installed the entity framework nuget package in every project of your solution. You might have installed Ef but not in that particular project which you are working on.

I installed EntityFramework 6.2 instead of 6.3 and it worked.

Perhaps it is the .NetCoreApp v2.1 or .NETFramework v4.6.1.

Most of the answers here seem to lack awareness of the namespace change that happened between EF 6.2 and 6.3.

I was intentionally upgrading from EF 6.1 to 6.3 to be able to target .NET Standard 2.1. However, I accidentally used .NET Standard 2.0 for the new target in my lib and then got the The type or namespace name 'Entity' does not exist in the namespace 'System.Data'. This GH issue comment gave me the clue I needed to fix. I changed my lib target to .NET Standard 2.1 and the project compiled. No re-installs, uninstalls, or restarts were required.

For those using vscode make sure that EntityFramework is installed by checking your app.csproj file and weirdly enough check if your file where you're referencing to System.Data.Entity is in the /obj folder.