【问题标题】:Adding new property to class does not update database using code first?向类添加新属性不会首先使用代码更新数据库?
【发布时间】:2014-07-04 07:09:48
【问题描述】:

我有以下课程:

public class Employee
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual DateTime? HireDate { get; set; }
}

最初,HireDate 不是课程的一部分。我打电话给Enabled-Migrations,设置了AutomaticMigrations = true,然后做了一个Update-Database。这使用 Id 和 Name 创建了我的 Employee 表。当我添加 HireDate 并再次运行 Update-Database 时,它​​告诉我:

No pending code-based migrations.

【问题讨论】:

  • 如何在您的 DbConfigugation 对象中设置AutomaticMigrationsEnabled
  • @tschmit007 - 我有这个AutomaticMigrationsEnabled = true;

标签: asp.net-mvc entity-framework asp.net-mvc-4 c#-4.0 entity-framework-5


【解决方案1】:

尝试手动添加迁移。在你的包控制台上输入以下两个命令

Add-Migration {name}
Update-Database

将 {name} 替换为您的迁移名称

希望对你有帮助

【讨论】:

  • 这是新事物吗?我正在学习 Scott Allen 关于复数视力的课程,但他在做的时候没有做 Add-Migration 步骤。
  • 否 - 这只是手动创建迁移,而不是在模型更改时自动创建迁移。这对你有用吗?
  • 说实话,我还没试过。我想找到解决方案,所以我不必手动添加迁移。那么 Add-Migration 可以让您保留对数据库所做的所有更改的历史记录?
  • 它会创建一个迁移文件,其中包含自上次迁移数据库以来对模型所做的更改。因此,例如,如果您将属性出生日期添加到模型中,那么您将添加迁移。更新数据库后,它将将该迁移应用到您的数据库并添加出生日期列。
  • 但是如果我将 AutomaticMigrationsEnabled 设置为 true,我应该不必添加迁移,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多