我正在使用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"/>
答案 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服务器检出一个回购协议时,我实际上遇到了此错误。我采取了以下步骤来消除错误
答案 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。现在它对我来说很好。