类型或命名空间名称';实体';不存在于命名空间';系统数据';
本文关键字:命名空间 系统 不存在 数据 类型 实体 | 更新日期: 2023-09-27 18:29:54
我正在使用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"/>
右键单击Visual Studio解决方案资源管理器中的解决方案,单击用于解决方案的Manage Nuget包并安装EntityFramework
嗨,如果你两年后读到这篇文章,这篇文章会非常误导你。
在VS 2013中使用EF6和.net 4.5.1时,我必须参考以下内容才能使工作
using System.Data.Entity.Core.EntityClient;
与以前有点不同,
对于那些来这里寻求新问题帮助的人来说,这更像是一个仅供参考的信息,而不是对原始问题
谢谢大家!我找到了解决办法。我不明白为什么,但我试过了,效果很好!我只需要添加一个引用:System.Data.Entity.Design
并且不必在代码中写入任何CCD_ 4。谢谢
我有实体框架6.1.3,升级(好吧,在NuGet中降级更多)到6.1.2。工作。
这里的大多数答案似乎都没有意识到EF 6.2和6.3之间发生的名称空间更改。
我有意从EF 6.1升级到6.3,以便能够以.NET Standard 2.1为目标。然而,我意外地将.NET Standard 2.0用于我的库中的新目标,然后得到了The type or namespace name 'Entity' does not exist in the namespace 'System.Data'
。这个GH问题的评论给了我需要解决的线索我将我的lib目标更改为.NET Standard 2.1,并编译了该项目无需重新安装、卸载或重新启动。
您需要右键单击VS解决方案并单击管理NuGet包解决方案来安装实体框架,然后在那里搜索实体框架。安装后,问题将得到解决
我刚刚在Visual Studio 2013和EF6中遇到了同样的错误。我必须使用NewGet打包的实体框架,并完美地完成了任务
我将添加我的答案以涵盖所有情况:
我的解决方案是从NuGet Package Manager中卸载EntityFramework,然后我被提示重新启动Visual Studio,因为它无法"完成卸载"。
我重新启动了Visual Studio并重新安装了EntityFramework,然后问题就解决了。
希望这能帮助到别人!
确保为您的项目安装了EntityFramework Nuget包。
来自@TonyDing的回答:
在Visual Studio解决方案资源管理器中右键单击该解决方案单击"管理Nuget软件包以获得解决方案",然后安装EntityFramework
安装后,我仍然有错误,但根据@papergodzilla的评论:进行了重新安装
更新包-重新安装
它解决了我的问题
在Package Manager控制台(查看>其他窗口>Package Manager控制台)中执行此操作
现在一切都好了!
我安装了EntityFramework 6.2
而不是6.3
,它起作用了。
也许是.NetCoreApp v2.1
或.NETFramework v4.6.1
。
我的解决方案很简单!当我从svn服务器上签出一个repo时,我实际上遇到了这个错误。我采取了以下步骤来删除错误
- 清洁溶液
- 转到nuget包管理器并卸载实体框架
- 删除了DataModel及其.cs组件
- 关闭VS并再次打开
- 已安装的实体框架和重新创建的实体模型
- 检查是否有任何需要"包含在解决方案中"的文件。它就像一个符咒
尝试重新安装,但没有成功。在找到Entity之前,我必须刷新模型中的一个表。
它帮助了我,我卸载了EF,重新启动了VS,并添加了"using":
using System.Data.Entity;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;
我不得不刷新我的DBModel。这就解决了问题
我必须引用System.Data.DataSetExtensions,这似乎完全不合逻辑
我发现根本原因是当你通过UI安装nuget包时,脚本有时不会运行。因此,我建议您在执行此操作时打开"输出"视图。如果你在安装Nuget时没有看到许可协议窗口,那么有一个更好的改变,那就是你的IDE没有做好工作。这就是为什么重新启动、清理和重建会有所帮助!
附言:在System.Data.Entity.*下添加任何内容都会有所帮助,因为这会触发Nuget安装程序正常工作。但我发现了一个非常不可靠的方法。
所以只要看一下输出窗口,你一定会在最后看到一条成功的nuget安装消息。大多数情况下,当出现问题时,Nuget安装程序甚至不会启动。这时重新启动IDE会有所帮助。
当事情进展顺利时,Nuget包管理器和IDE(我在上面使用了安装程序的术语)会进行更改,编译解决方案,让您满意!但是当它没有通过重新启动IDE并观看输出窗口来提供一点帮助时!
如果您使用的EF版本超过6.x,请查看您是否在解决方案的每个项目中都安装了实体框架nuget包。您可能已经安装了Ef,但没有安装在您正在处理的特定项目中。
我也有同样的错误。
我从Nuget Packages添加了System.Data.Entity.Repository,错误就消失了。
希望它能有所帮助!
我注意到在csproj中,框架实体具有类似的hintpath
<HintPath>..'..'..'..'..'..'Users'{myusername}
我在nuget.config文件中有这个:
<config>
<add key="repositoryPath" value="../lib" />
</config>
a) 我删除了上面的行,b)卸载了框架实体包,c)然后关闭了解决方案并重新打开了它,d)重新安装了框架。
它解决了我的问题。
如果您使用的是数据库优先的方法:
在卸载/重新安装Entity Framework之前,首先尝试简单地将另一个表/存储过程添加到您的模型中(假设当前有任何未映射的)。这为我解决了这个问题。当然,如果你不需要映射的资源,那么之后就把它从模型中删除。但看起来edmx的力量再生起到了作用。
对于那些使用vscode的人,请通过检查app.csproj文件来确保EntityFramework已安装,奇怪的是,请检查您引用System.Data.Entity的文件是否在/obj文件夹中。
我刚刚通过NugetPackage在Visual studio 2013中将实体框架更新到版本6,并添加了以下引用:
System.Data.Entity,
System.Data.Entity.Design,
System.Data.Linq
右键单击引用->在我的项目中添加引用。现在删除我以前创建的实体模型并重新创建它,构建解决方案。现在它对我来说很好。