【问题标题】:The type or namespace name 'DbContext' could not be found (EF installed)找不到类型或命名空间名称“DbContext”(已安装 EF)
【发布时间】:2014-08-12 16:49:18
【问题描述】:

我正在使用 VS 2012。我使用 Nuget 安装了 EntityFramework(版本 6.1.1),并添加了对 System.DataSystem.Data.Entity 的引用,但是当我在解决方案中打开一个新类并引用DbContext,它说:

"找不到类型或命名空间名称“DbContext”(您是 缺少 using 指令或程序集引用?)"

这很奇怪,因为 DbContext 是绿色的,就像每个公认的类一样,当我按 F12 查看 DbContext 类时,它会将我带到应有的 System.Data.Entity.DbContext 类。

public DbContext MyContex { get; set; }

DbSet 也一样

public DbSet<TEntity> MySet { get; set; }

我还缺少什么?

【问题讨论】:

  • 这听起来可能很愚蠢,但请尝试清理您的解决方案并重建它,甚至重新启动 VS。你永远不知道。
  • 这是您唯一的编译器错误吗?如果还有其他错误,请先尝试处理,看看是否还有这个错误。
  • 另外,你说你有 System.Data 和 System.Data.Entity - 看起来最新的 EntityFramework NuGet 包应该包括 EntityFramework.dll,而不是 System.Data.Entity.dll。您可能需要清理引用并再次拉取 NuGet 包。
  • EF6 添加了一些重大更改。它现在完全带外并包含在 EntityFramework 程序集中。你不应该再使用 System.Data.Entity 了。
  • Yorye Nathan——一点也不傻,我试过了,但还是不行。 Joe Enos- 没有其他错误,只有这两个和另一个相关的“MyClass.DbContext' 是一个'属性',但用作'类型'”。 Joe Enos \ Dismissile- 当我删除 Data 和 Data.Entity 时,根本无法识别这些类。

标签: c# entity-framework visual-studio-2012


【解决方案1】:

Install-Package EntityFramework -version 5.0.0

【讨论】:

  • 它有效,我使用 Install-Package EntityFramework -version 6.1.3 与 VS 2015 配合使用
【解决方案2】:

原来该项目是使用 Target Framework 3.5 编译的,当我将其更改为 4.5 时它可以工作。谢谢各位cmets。

【讨论】:

  • 你先生..是明星。
【解决方案3】:

使用 System.Data.Entity;

// 这将解决 DbContextDbSet 错误

【讨论】:

    【解决方案4】:

    您是否尝试过引用 EntityFramework.dll?或者您可以尝试使用完全限定名称“ public System.Data.Entity.DbContext MyContex { get; set; } ”。

    【讨论】:

    • 当输入“Using EntityFramework”时,它说它不存在。放置 System.Data.Entity.DbContext 让我遇到同样的错误。
    【解决方案5】:

    此问题主要发生在您更改 .Net 解决方案的版本时。我通过以下方式解决了该问题

    如果您使用的是 EntityFramework 版本 6,则添加 Dll EntityFramework.dll

    【讨论】:

      【解决方案6】:

      抱歉,如果回复太晚了:我今天在 VS2015 上遇到了同样的问题。无论如何,完全限定的名称将完成这项工作,

      公共类 StudentEntities : System.Data.Entity.DbContext

      【讨论】:

        【解决方案7】:

        从 Visual Studio 2015 升级到 2017 后出现此错误。我关闭了 VS,删除了我的 .suo 文件,重新启动了 VS,重建了解决方案,现在一切正常。

        【讨论】:

          【解决方案8】:

          我正在向现有解决方案添加一个新项目并遇到了同样的问题。我使用了 Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution... 我能够看到所有其他项目使用的版本。这样一来,我就能够为我的项目选择在整个解决方案中使用的相同版本。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-10
            • 2020-04-13
            • 1970-01-01
            • 1970-01-01
            • 2017-07-12
            • 2011-05-13
            • 2013-03-25
            相关资源
            最近更新 更多