【问题标题】:Where is DbContext defined?DbContext 在哪里定义?
【发布时间】:2014-05-05 18:46:13
【问题描述】:

根据 MS 文档:http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103),应在 EntityFramework 程序集内的命名空间 System.Data.Entity 中定义 DbContext。

我的项目中都引用了(加上 System.Data.Entity),但无法创建 DbContext 的实例。当我输入 DbContext 时,没有智能感知。但在等式的右边,我确实在智能感知中看到了 DbContext。

DbContext 测试 = 新 DbContext();

但是,当我构建项目时,我得到了这个错误:

找不到类型或命名空间“DbContext”。

如果我添加完全限定名称,我会收到以下错误:

命名空间中不存在类型或命名空间“DbContext” 'System.Data.Entity'。

我正在使用 .NET 4.5、VS.NET 2013 Premium 和 EF 5。

任何想法我做错了什么?

【问题讨论】:

  • 您是否通过 nuget 将 EF 5 添加到您的项目中?另外,尝试使用完全限定名称来实例化它,即new System.Data.Entity.DbContext()
  • 完全限定名称不起作用。我不使用 nuget。

标签: .net entity-framework visual-studio c#-4.0


【解决方案1】:

你说你不使用nuget?有什么具体原因吗?因为通过 NuGet 安装 EF 是快速顺利启动和运行它的最佳选择。要安装 EF 5,只需在您的包管理器控制台中输入此代码(以及您希望将其安装到目标的项目)Install-Package EntityFramework -Version 5.0.0。我也在使用 .Net 4.5 和 VS Premium 2013,并且我已经验证使用 NuGet 安装 EF 5 或 EF 6 可以正常工作。

否则,这里还有许多其他关于 SO 的帖子处理这个问题。 Here 可能会对您有所帮助。如果您不使用 NuGet,最常见的问题似乎是缺少对 System.Data.Entity 程序集或 EntityFramework.dll 的引用

【讨论】:

  • 我已经阅读了那篇文章,但没有帮助。我不需要 nugget,因为除了 DbContext 之外,EF 工作正常。
  • @4thSpace 如果在构建时遇到DbContext 的类型解析错误,则 EF 无法正常工作。您能否尝试安装 NuGet 并查看它是否适合您?
  • 我发现了问题。我试图将其添加到的特定文件位于不同的项目中。 DbContext 在所有引用都存在的项目中工作正常。让反对票开始吧。
  • @4thSpace 很高兴你明白了,但我认为没有必要投反对票。发布您的答案并将其标记为正确,或编辑您的问题以反映您的发现。无论哪种方式,它都会在某个时候对其他人有所帮助。
【解决方案2】:

我发现了问题。我试图将其添加到的特定文件位于不同的项目中。 DbContext 在所有引用都存在的项目中工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2016-02-19
    • 2016-12-31
    • 2011-10-08
    • 2010-09-30
    • 2013-04-04
    相关资源
    最近更新 更多