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

时间:2012-04-02 07:30:42

标签: c# asp.net .net web-services entity-framework-4.1

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

23 个答案:

答案 0 :(得分:85)

右键单击Visual Studio解决方案资源管理器中的解决方案,单击Manage Nuget packages for solution并安装EntityFramework

答案 1 :(得分:35)

嗨,这篇文章非常具有误导性,如果你这两年阅读的话。

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

using System.Data.Entity.Core.EntityClient;

与之前有点不同,

对于那些来这里寻求新问题帮助而不是原始问题答案的人来说,这更像是一个FYI

答案 2 :(得分:25)

感谢每一个人! 我找到了解决方案。不是我理解为什么,但我尝试了这个,它的工作原理! 我只需要添加一个引用:System.Data.Entity.Design 并且不必在代码中编写任何using。 谢谢!

答案 3 :(得分:5)

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

答案 4 :(得分:5)

您需要通过右键单击VS解决方案来安装Entity框架,然后单击Manage NuGet Package solution并在那里搜索Entity框架。 安装后问题将得到解决

答案 5 :(得分:4)

我在Visual Studio 2013和EF6上遇到了同样的错误。我必须使用NewGet包装的实体框架并完美地完成工作

答案 6 :(得分:3)

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

我的解决方案是取消了NuGet Package Manager中的EntityFramework,然后我被提示重新启动Visual Studio,因为它无法完成卸载&#34;。

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

希望这有助于某人!

答案 7 :(得分:2)

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

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

答案 8 :(得分:1)

我必须引用System.Data.DataSetExtensions,这似乎完全不合逻辑

答案 9 :(得分:1)

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

来自@TonyDing的答案:

  

在Visual Studio解决方案资源管理器中右键单击解决方案   单击管理解决方案的Nuget软件包并安装   EntityFramework

安装完成后,我仍然遇到错误,但是根据@papergodzilla的评论进行了重新安装:

  

更新包-重新安装

它解决了我的问题

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

答案 10 :(得分:1)

我不得不刷新我的DBModel。这解决了它

答案 11 :(得分:1)

它帮助了我,我卸载了EF,重新启动了VS,我添加了&#39;使用&#39;:

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

答案 12 :(得分:1)

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

答案 13 :(得分:0)

我有同样的错误。

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

希望有帮助!

答案 14 :(得分:0)

我注意到在csproj中,框架实体具有类似的提示路径

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

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

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

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

它解决了我的问题。

答案 15 :(得分:0)

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

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

答案 16 :(得分:0)

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

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

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

一切顺利时,Nuget软件包管理器和IDE(我在上面使用Installer术语)将进行更改,编译解决方案并使您满意!但是,如果重新启动IDE并查看该“输出”窗口并不能给您一点帮助,那么

答案 17 :(得分:0)

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

答案 18 :(得分:0)

我安装了EntityFramework 6.2而不是6.3,并且可以正常工作。

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

答案 19 :(得分:0)

这里的大多数答案似乎都不了解EF 6.2和6.3之间发生的namespace change

我有意从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问题comment为我提供了需要解决的线索。 我将lib目标更改为.NET Standard 2.1,并编译了项目。无需重新安装,卸载或重新启动。

答案 20 :(得分:0)

对于那些使用 vscode 的人,请确保通过检查您的 app.csproj 文件来安装 EntityFramework,而且奇怪的是检查您引用 System.Data.Entity 的文件是否在 /obj 文件夹中。

答案 21 :(得分:-1)

重新安装EntityFramework也对我有用。重新安装,重新构建。

答案 22 :(得分:-1)

我刚刚通过NugetPackage将我的Entity框架更新到Visual Studio 2013中的版本6并添加了以下参考文献:

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

右键单击references-&gt;在我的项目中添加引用。 现在删除我之前创建的Entity模型并再次重新创建它,Built solution。现在它对我来说很好。