数据库上下文更改导致InvalidOperationException

时间:2015-04-27 08:11:22

标签: entity-framework

我对Entity Framework完全陌生,并试图根据ASP.NET网站上的Rick Anderson教程自行构建一些东西。我创建了一个名为 HostelName 的模型和一个名为 HostelNameDBContext 的DBContext。我的解决方案名称是 - LaundryManagementSystem

这是我的型号代码:

public class HostelName
{
    public int ID { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Code { get; set; }
}

public class HostelNameDBContext : DbContext
{
    public DbSet<HostelName> HostelNames { get; set; }
}

可能是因为在创建模型类后添加了[Required]属性,我面临以下异常:

InvalidOperationException: The model backing the 'HostelNameDBContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)

我尝试了以下内容:

在我的Visual Studio 2012中,转到TOOLS-&gt; NuGet包管理器 - &gt;包管理器控制台,然后在控制台中键入Enable-Migrations -ContextTypeName LaundryManagementSystem.Models.HostelName,然后再次构建并运行解决方案,但我是仍然得到上述例外。

请注意,这是Entity Framework,Code First方法。

有人可以指出我的问题在哪里,我可能错过了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

启用迁移后,您需要创建迁移,然后更新数据库。

在nuget控制台运行Add-Migration AddedRequiredToProperties中创建迁移。这应该创建迁移文件。

然后运行Update-Database -Verbose以将迁移应用于数据库。这将在数​​据库上运行迁移脚本,从而更改表结构。