【发布时间】:2011-08-10 02:41:04
【问题描述】:
我对 ASP.NET MVC (3) 非常陌生,并且很难解决 Visual Studio 中的构建错误:
找不到类型或命名空间名称“DbContext”(您是否缺少 using 指令或程序集引用?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace MyProjectName.Models
{
public class MachineModel
{
// name
[Required]
[Display(Name = "Nom de la machine")]
public string Name { get; set; }
// IP
[Required]
[RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
ErrorMessage = "Donnez une adresse IPv4 valide.")]
[Display(Name = "Adresse IP de la machine")]
public string IP { get; set; }
}
public class MachineDbContext : DbContext
{
public DbSet<MachineModel> Machines{ get; set; }
}
}
我得到的两个错误是:
- 类型或命名空间名称 找不到“DbContext”(是 您缺少 using 指令或 程序集参考?)
- 类型或命名空间名称“DbSet” 找不到(你是 缺少 using 指令或 程序集参考?)
我错过了什么?
【问题讨论】:
-
您是否使用 NuGet 添加了实体框架代码优先参考?这可能是解决引用的最简单方法。
-
好的。 - 在解决方案资源管理器树下,我右键单击参考 -> 添加库包参考 -> EFCodeFirst -> 安装。这是你建议的吗?完成这些步骤后,我仍然遇到同样的问题。
-
我同时将 MVC 3 Tools 更新到了最新版本,并在asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs 之后创建了一个教程项目。在那个项目中,我没有这个问题,但我无法让 DbContext 在我的旧项目中被接受,尽管在这里和下面的 Darin 提出了建议......
-
VS2017,EF6,关闭解决方案。重新打开解决方案。它现在可以正确识别 DbContext。
-
打开包管理器控制台。选择工具 > NuGet 包管理器 > 包管理器控制台。在包管理器控制台中,输入以下命令: install-package EntityFramework
标签: asp.net-mvc visual-studio-2010 asp.net-mvc-3 visual-studio entity-framework