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

问题描述 投票:59回答:18

我正在使用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"/>
c# asp.net .net web-services entity-framework-4.1
18个回答
89
投票

右键单击Visual Studio Solution Explorer中的解决方案,单击Manage Nuget packages for solution并安装EntityFramework


1
投票

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

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

1
投票

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


1
投票

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


1
投票

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

来自@TonyDing的回答:

右键单击Visual Studio Solution Explorer中的解决方案,单击Manage Nuget packages for solution并安装EntityFramework

一旦安装,我仍然有错误,但然后根据@ papergodzilla的评论重新安装:

Update-Package -reinstall

它解决了我的问题

在程序包管理器控制台(视图>其他窗口>程序包管理器控制台)中执行此操作。 现在一切都很好!


0
投票

我有同样的错误。

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

希望它会有所帮助!


0
投票

我注意到在csproj中框架实体有类似的hintpath

<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并观察输出窗口提供一点帮助时!


-1
投票

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

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

通过右键单击引用 - >在我的项目中添加引用。现在删除我之前创建的Entity模型并再次重新创建它,Built solution。现在它适合我。


-1
投票

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


37
投票

嗨,这篇文章非常具有误导性,如果你读这2年了。

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

using System.Data.Entity.Core.EntityClient;

和以前有点不同,

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


25
投票

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


5
投票

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


5
投票

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


4
投票

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


3
投票

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

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

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

希望这有助于某人!


2
投票

我的解决方案很简单!当从svn服务器检出repo时,我实际上遇到了这个错误。我采取了以下步骤来删除错误

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

1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.