【问题标题】:The type or namespace name 'Entity' does not exist in the namespace 'System.Data'命名空间“System.Data”中不存在类型或命名空间名称“Entity”
【发布时间】:2012-04-15 21:03:00
【问题描述】:

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

【问题讨论】:

  • 在 System.Data 程序集的对象浏览器中,您是否看到此实体命名空间?另请查看您是否引用了正确版本的框架库。 System.Dll 为 4.0V
  • 你安装了实体框架吗?因为我相信它属于那个包。
  • 你这么认为吗?但我在另一个项目中使用相同的代码,它工作正常!
  • 嗯..对不起,我错了。谷歌搜索,我找到了这个链接。希望能帮助到你? forums.asp.net/t/1195753.aspx/1
  • System.Date.Entity 命名空间只有在引用 EntityFramework.dll 时才有意义。

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


【解决方案1】:

在 Visual Studio 解决方案资源管理器中右键单击解决方案,单击管理 Nuget 包以获取解决方案并安装 EntityFramework

【讨论】:

  • (包括自动为你做其他答案状态的所有事情)。
  • 接受的答案对我来说是正确的,因为我已经安装了 EntityFramework 并且升级到新版本对我造成了这个问题。
  • 一个 StackOverflow 回答 how to install Entity Framework 的傻瓜(像我一样)。
  • 我已经安装了它,但是我做了一个“更新包-重新安装”,它解决了我的问题
  • 在我的情况下,编译错误直到我再次构建项目才消失。
【解决方案2】:

您好,如果您在 2 年内阅读此帖子,则此帖子非常具有误导性。

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

using System.Data.Entity.Core.EntityClient;

和以前有点不同,

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

【讨论】:

  • 如果 System.Data 中不存在“实体”,那么您如何推断 System.Data.Entity.Core.EntityClient 可以工作?
  • 这是特定于 EF 6.3+ 的地方,其中引入了命名空间的 Core 部分(请参阅docs
【解决方案3】:

感谢大家! 我找到了解决方案。不是我明白为什么,但我试过了,它奏效了! 我只需要添加一个参考:System.Data.Entity.Design 并且不必在代码中写任何using。 谢谢!

【讨论】:

  • 升级到 EF 6.1 后,我不得不添加对 System.Data.Entity 的引用,而不是 Design...
  • 请勿添加 DESIGN 参考!它起作用的唯一原因是它包括对 System.Data.Entity 的依赖,正如@DeanKuga 所说,这是正确的参考
【解决方案4】:

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

【讨论】:

  • 我做了降级工作,我打开了一个旧代码,就是这样。
【解决方案5】:

您需要通过右键单击您的 VS 解决方案并单击管理 NuGet 包解决方案并在那里搜索实体框架来安装实体框架。 安装后问题就解决了

【讨论】:

    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

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

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

      希望这对某人有所帮助!

      【讨论】:

      • hmmm.. 卸载和重新安装也对我有用.. !!
      【解决方案8】:

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

      来自@TonyDing 的回答:

      在 Visual Studio 解决方案资源管理器中右键单击解决方案 单击解决方案的管理 Nuget 包并安装 实体框架

      安装后,我仍然遇到错误,但随后按照@papergodzilla 的评论重新安装:

      更新包-重新安装

      它解决了我的问题

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

      【讨论】:

      • 大家好!就我而言,这是对我有用的帖子。在我的解决方案中,我有 5 个项目在从我们的仓库中提取后都搞砸了。通常重建项目会恢复包,但它没有它,我留下了几十个损坏的引用和数百个错误。 Nuget 包管理器说丢失的资源已经安装,所以我打开控制台并运行 -reinstall 命令,所有错误都消失了。谢谢!
      【解决方案9】:

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

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

      【讨论】:

      • 不,这是因为 6.2 到 6.3 的碰撞包括命名空间更改。如果您更新命名空间,则无需降级。见docs
      【解决方案10】:

      这里的大多数答案似乎缺乏对 EF 6.2 和 6.3 之间发生的namespace change 的认识。

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

      【讨论】:

        【解决方案11】:

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

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

        【讨论】:

          【解决方案12】:

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

          【讨论】:

            【解决方案13】:

            对我有帮助,我卸载了 EF,重新启动了 VS,并添加了“使用”:

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

            【讨论】:

              【解决方案14】:

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

              【讨论】:

                【解决方案15】:

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

                【讨论】:

                  【解决方案16】:

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

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

                  所以只需观察输出窗口,您必须在最后看到类似成功安装 nuget 的消息。大多数时候,当出现问题时,Nuget 安装程序甚至都不会启动。这时候重启 IDE 会有所帮助。

                  当一切顺利时,Nuget 包管理器和 IDE(我在上面使用了安装程序术语)会进行更改,编译解决方案并让您满意!但是当它没有通过重新启动 IDE 并观察那个输出窗口来提供一点帮助时!

                  【讨论】:

                    【解决方案17】:

                    如果您使用的 EF 版本超过 6.x ,请查看您是否在解决方案的每个项目中都安装了实体框架 nuget 包。您可能已经安装了 Ef,但没有安装在您正在进行的特定项目中。

                    【讨论】:

                      【解决方案18】:

                      我有同样的错误。

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

                      希望对你有帮助!

                      【讨论】:

                        【解决方案19】:

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

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

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

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

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

                        它解决了我的问题。

                        【讨论】:

                          【解决方案20】:

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

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

                          【讨论】:

                            【解决方案21】:

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

                            【讨论】:

                              【解决方案22】:

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

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

                              通过右键单击引用->在我的项目中添加引用。 现在删除我之前创建的实体模型并重新创建它,构建解决方案。现在它对我来说很好用。

                              【讨论】:

                                猜你喜欢
                                • 2015-05-18
                                • 2010-11-19
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2012-06-19
                                相关资源
                                最近更新 更多