我正在创建一个ASP.NET MVC项目...当我输入enable-migrations时,我得到以下的eroors:
More than one context type was found in the assembly 'eManager.Web'.
To enable migrations for eManager.Web.Infrastructure.DepartmentDb, use Enable-Migrations -ContextTypeName eManager.Web.Infrastructure.DepartmentDb.
To enable migrations for eManager.Web.Models.UsersContext, use Enable-Migrations -ContextTypeName eManager.Web.Models.UsersContext.
答案 0 :(得分:36)
错误消息准确说明了问题是什么以及需要做什么 - 包括需要发出的命令。显然,您的项目中有多个上下文(Web.Infrastructure.DepartmentDb和Web.Models.UsersContext),并且迁移不知道应该启用哪些迁移。您需要指向上下文类型。根据错误消息使用:
Enable-Migrations -ContextTypeName eManager.Web.Infrastructure.DepartmentDb.
启用eManager.Web.Infrastructure.DepartmentDb或
的迁移Enable-Migrations -ContextTypeName eManager.Web.Models.UsersContext.
启用eManager.Web.Models.UsersContext的迁移
答案 1 :(得分:1)
对于那些可能希望保留在项目中的单个上下文的人。在这种情况下,它将是DepartmentDb上下文。
将以下代码移到DepartmentDb上下文中:
public DepartmentDb()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
&#13;
下一步:访问您的AccountModels.cs并删除/注释掉UsersContext类。 您将获得构建错误 - 因此将DepartmentContext引用替换为DepartmentDb。
再次构建,它应该会成功。
现在转到程序包管理器控制台并运行PM&gt;启用的迁移
您应该为项目eManager.Web启用&#34;代码优先迁移。&#34;