我正在使用带有实体框架的ASP.NET MVC 5构建应用程序。我最近了解了可以在应用程序中为数据库实现的EF Code-First Migrations工具。我在PM控制台中运行了“ Enable-Migration”,它成功启用并按预期方式创建了“ InitialModel.cs”类,并在表创建中填充了适当的up()和down()方法。
然后,我继续添加具有其他简单属性(GigId,AttendanceId)的另一个类(Attendance.cs),并希望将此迁移添加到数据库中。我在PM中运行了“添加迁移出勤”以获取此消息:
并显示。
此迁移文件的Designer代码包含您当前代码的快照 第一个模型。当支持下一次迁移时,此快照用于计算对模型的更改。如果您要在此迁移中包括要对模型进行的其他更改,则可以重新构建它
我发现了一个类似的问题,随后我也尝试将AutomaticMigrationsEnabled = true;然后添加迁移,但是没有用。 我已经从数据库中删除了__MigrationHistory表,现在当我尝试运行Enable-Migration时,出现以下错误。
在程序集“测试”中发现了多个上下文类型。 要为“ test.ApplicationDbContext”启用迁移,请使用Enable-Migrations -ContextTypeName test.ApplicationDbContext。 要为“ test.Models.ApplicationDbContext”启用迁移,请使用Enable-Migrations -ContextTypeName test.Models.ApplicationDbContext。 }
public class Attendances
{
public Gig Gig { get; set; }
public ApplicationUser Attendee { get; set; }
[Key]
[Column(Order =1)]
public int GigId { get; set; }
[Key]
[Column(Order = 2)]
public string AttendanceId { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<Gig> Gigs { get; set; }
public DbSet<Genre> Genres { get; set; }
public DbSet<Attendances> Attendance { get; set; }
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
在程序集“测试”中发现了多个上下文类型。 要为“ test.ApplicationDbContext”启用迁移,请使用Enable-Migrations -ContextTypeName test.ApplicationDbContext。 要为“ test.Models.ApplicationDbContext”启用迁移,请使用Enable-Migrations -ContextTypeName test.Models.ApplicationDbContext。