如何在Visual Studio 2013的C# MVC项目中启用Entity Framework并解决迁移错误?
解决Enable-Migrations报错"No context type was found"的问题
这个错误是Entity Framework最常见的问题之一——本质是它找不到你的DbContext类,毕竟Enable-Migrations必须基于这个类生成迁移配置。下面是一步步的解决办法:
第一步:确认你已创建
DbContext类
如果还没创建,赶紧在项目里(通常放在Models文件夹)添加一个继承自DbContext的类。举个简单的示例:using System.Data.Entity; namespace MVCWebApplication.Models { public class AppDbContext : DbContext { // 这里可以添加你的实体集合,比如: // public DbSet<Article> Articles { get; set; } // 构造函数可指定连接字符串(对应Web.config里的connectionStrings节点) public AppDbContext() : base("name=DefaultConnection") { } } }注意类的访问修饰符必须是
public,否则EF无法扫描到它。第二步:检查Package Manager Console的默认项目
有时候你的DbContext可能在其他类库项目里,或者你选错了默认项目。看一下Package Manager Console顶部的「默认项目」下拉框,确保选中的是包含DbContext的项目,再重新执行Enable-Migrations。第三步:手动指定上下文类型(如果EF未自动识别)
若已存在DbContext但仍报错,可以直接在命令里指定上下文的完整命名空间和类名:Enable-Migrations -ContextTypeName MVCWebApplication.Models.AppDbContext把上面的名称替换成你自己的上下文类信息即可。
第四步:清理并重建项目
偶尔编译缓存会干扰EF的扫描,右键项目选择「清理」,再「生成」整个解决方案,之后重新执行命令试试。
如果以上步骤都没用,可以检查Web.config里的EF连接字符串是否配置正确,或者确认NuGet安装的EF版本和项目的.NET框架版本兼容(VS2013建议搭配EF 6.x版本,别装过高版本)。
内容的提问来源于stack exchange,提问作者jhon
相关产品推荐
相关产品推荐

