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


74

我正在使用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"/>

1
在System.Data程序集的对象浏览器中,您是否看到此Entity名称空间?另请参阅您是否引用了框架库的正确版本。System.Dll为4.0V
Zenwalker 2012年

3
您已经安装了Entitiy框架吗?因为我相信它属于那个包。
Zenwalker

你是这样想的吗?但是我在另一个项目中使用了相同的代码,效果很好!
st mnmn 2012年

嗯..对不起,我错了。谷歌搜索,我找到了此链接。希望能帮助到你?forums.asp.net/t/1195753.aspx/1
Zenwalker 2012年

1
System.Date.Entity仅使用EntityFramework.dll命名空间才有意义。
Ladislav Mrnka

Answers:


101

右键单击Visual Studio解决方案资源管理器中的解决方案,单击“管理解决方案的Nuget程序包”并安装EntityFramework


2
(包括自动为其他人回答的其他事情做的一切)。
Matty J 2014年

接受的答案对我来说是正确的,因为我已经安装了EntityFramework,而升级到新版本对我来说是造成此问题的原因。
克里斯·希夫豪尔

1
关于如何为假人安装实体框架的StackOverflow答案(像我一样)。
user272735 2015年

8
我已经安装了它,但是我做了一个“ Update-Package -reinstall”,它解决了我的问题
papergodzilla

39

嗨,如果您阅读这两年以来,这篇文章很容易引起误解。

在VS 2013中使用EF6和.net 4.5.1时,我必须参考以下内容才能使其正常工作

using System.Data.Entity.Core.EntityClient;

与以前有些不同

对于那些来这里寻求新问题的人来说,这更像是仅供参考,而不是原始问题的答案


13
如果System.Data中不存在“实体”,那么您如何推理System.Data.Entity.Core.EntityClient可以工作?
蒂姆

1
这特定于EF 6.3+,其中引入了Core名称空间的一部分(请参阅docs
gabe

29

谢谢大家!我找到了解决方案。不是我知道为什么,但是我尝试了这个并且成功了!我只需要添加对以下内容的引用:System.Data.Entity.Design 不必using在代码中编写任何内容。谢谢!


11
升级到EF 6.1后,我不得不添加对System.Data.Entity的引用,而不是Design ...
Dean Kuga 2014年

4
不要添加设计参考!它起作用的唯一原因是包括对System.Data.Entity的依赖关系,这是@DeanKuga所说的正确引用
Greg Ennis

9

我有实体框架6.1.3,已升级(很好,在NuGet中已降级)到6.1.2。工作了。


我做了降级工作,我正在打开一个旧代码,仅此而已。
胡安

5

您需要通过右键单击VS解决方案并单击“管理NuGet软件包”解决方案并在其中搜索Entity Framework来安装Entity Framework。安装后,问题将得到解决



4

我将添加我的答案以涵盖所有情况:

我的解决方案是从NuGet软件包管理器释放EntityFramework,然后提示我重新启动Visual Studio,因为它无法“完成卸载”。

我重新启动Visual Studio并重新安装了EntityFramework,然后我的问题解决了。

希望这对某人有帮助!


hmmm ..卸载和重新安装也对我有用。
Irfan

2

我的解决方案很简单!从svn服务器检出某个回购协议时,我实际上遇到了此错误。我采取了以下步骤来消除错误

  1. 清洗液
  2. 去nuget包管理器并卸载了实体框架。
  3. 删除了DataModel及其.cs组件。
  4. 关闭VS,然后再次打开。
  5. 已安装的实体框架和重新创建的实体模型。
  6. 检查是否需要任何文件“包含在解决方案中”。它像魅力一样运作

2

确保为项目安装了EntityFramework Nuget软件包。

来自@TonyDing的答案:

右键单击Visual Studio解决方案资源管理器中的解决方案,单击“管理解决方案的Nuget程序包”并安装EntityFramework

一旦安装,我仍然有错误,但是然后按照@papergodzilla的注释重新安装:

更新包-重新安装

它解决了我的问题

在Package Manager控制台中执行此操作(“视图”>“其他窗口”>“ Package Manager控制台”)。
现在一切都很好!


大家好!就我而言,这是对我有用的职位。在我的解决方案中,我有5个项目,从我们的仓库中取出后,全部搞砸了。通常,重建项目会还原软件包,但没有软件包,我留下了数十个损坏的引用和数百个错误。Nuget Package Manager说缺少的资源已经安装,所以我打开控制台并运行-reinstall命令,每个错误都消失了。谢谢!
JRodd

1

尝试重新安装-没有运气。在找到实体之前,我必须刷新模型中的表。


1

它帮助了我,我卸载了EF,重新启动了VS,并添加了“ using”:

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

1

我必须刷新我的DBModel。解决了



1

我安装EntityFramework 6.2而不是6.3它工作。

也许是.NetCoreApp v2.1.NETFramework v4.6.1


不,是因为6.2到6.3凹凸包含了名称空间更改。如果更新名称空间,则无需降级。见文档
gabe

0

我有同样的错误。

我从Nuget包中添加了System.Data.Entity.Repository,错误消失了。

希望对您有所帮助!


0

我注意到在csproj中,框架实体具有类似

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

我在nuget.config文件中有这个:

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

a)我删除了上述几行,b)卸载了框架实体包,c)然后关闭了解决方案并重新打开了它,d)重新安装了框架。

它解决了我的问题。


0

如果您使用数据库优先方法:

在卸载/重新安装Entity Framework之前,首先尝试简单地向模型中添加另一个表/存储过程(假设当前未映射)。那为我解决了这个问题。当然,如果您不需要映射的资源,则只需将其从模型中删除即可。但看起来edmx的强制再生确实可以解决问题。


0

我发现根本原因是当您通过UI安装nuget软件包时,脚本有时无法运行。因此,建议您在执行此操作时打开“输出”视图。如果在安装Nuget时没有看到许可协议窗口,则可以更好地更改IDE不能正确执行工作。这就是为什么重新启动,清理和重建会有所帮助的原因!

PS:在System.Data.Entity。*下添加任何内容会有所帮助,因为会触发Nuget安装程序正常工作。但这是我发现的一种非常不可靠的方法。

因此,只要观察输出窗口,您就必须在末尾看到类似成功的nuget安装消息的内容。在大多数情况下,Nuget安装程序甚至不会启动。那就是您重新启动IDE会有所帮助的时候。

当一切顺利时,Nuget软件包管理器和IDE(我在上面使用安装程序一词)将进行更改,编译解决方案并使您满意!但是,当重新启动IDE并查看该“输出”窗口时,它没有提供任何帮助时!


0

如果您使用的是EF 6.x以上的版本,请查看是否在解决方案的每个项目中都安装了实体框架nuget软件包。您可能已经安装了Ef,但未安装在正在处理的特定项目中。


0

这里的大多数答案似乎都不了解EF 6.2和6.3之间发生的名称空间更改

我有意从EF 6.1升级到6.3,以便能够使用.NET Standard 2.1。但是,我无意中将.NET Standard 2.0用作lib中的新目标,然后得到了The type or namespace name 'Entity' does not exist in the namespace 'System.Data'。GH问题评论为我提供了需要解决的线索。我将lib目标更改为.NET Standard 2.1,并编译了项目。无需重新安装,卸载或重新启动。


-1

我刚刚通过NugetPackage在Visual Studio 2013中将实体框架更新为版本6,并添加了以下参考:

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

通过右键单击引用->在我的项目中添加引用。现在,删除我先前创建的实体模型,然后再次重新创建它。现在对我来说很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.