什么触发代码首次迁移?

时间:2014-05-17 16:39:34

标签: entity-framework ef-code-first code-first ef-migrations

命令Enable-Migration如何知道是否生成迁移代码文件?

我在Visual Studio中使用标准MVC 5模板的项目中有以下内容:

public class UsersContext : IdentityDbContext<ExtendedUser>
{
    public DbSet<Log> Logs { get; set; }

    public UsersContext() : base() { }

    public UsersContext(string ConnectionString) : base(ConnectionString) { }
}

public class Log
{
    public Int32 Id { get; set; }
    public DateTime Time { get; set; }
    public string Message { get; set; }
}

当我运行Enable-Migrations时,会创建Migrations文件夹,但只有Configuration.cs文件。没有生成代码来处理Logs表的创建。

第二个相关问题是:每次运行上一次Add-Migration后是否有模型更改,是否必须运行Add-Migration?

2 个答案:

答案 0 :(得分:1)

当您运行Enable-Migrations时,它会在项目中搜索任何DBContexts并将该项目配置为使用迁移。

每次在上次添加迁移后运行模型更改时,是否必须运行添加迁移?

是。运行Add-Mingration ...会创建详细说明模型更改的文件。

运行Update-Database会将您的更改推送到数据库。 Update-Database -Script (在运行update-database之前)生成模型更改的SQL脚本。

更新数据库后,如果进行更多模型更改,则需要添加其他迁移。循环继续......

请参阅Tips for Entity Framework Migrations

答案 1 :(得分:1)

请注意,启用迁移与自动迁移相同。

如果启用了自动迁移,则会在运行时自动创建和运行迁移脚本,这意味着您无需运行&#34; add-migrations&#34;和&#34;更新数据库&#34;每次更新模型时都会手动执行命令。