Entity framework 什么触发代码优先迁移?

Entity framework 什么触发代码优先迁移?,entity-framework,ef-code-first,code-first,entity-framework-migrations,Entity Framework,Ef Code First,Code First,Entity Framework Migrations,命令Enable Migration如何知道是否生成迁移代码文件 在Visual Studio中使用标准MVC 5模板的项目中,我有以下内容: public class UsersContext : IdentityDbContext<ExtendedUser> { public DbSet<Log> Logs { get; set; } public UsersContext() : base() { } public UsersContex

命令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; }
}
公共类用户上下文:IdentityDbContext
{
公共数据库集日志{get;set;}
公共用户上下文():base(){}
公共用户上下文(字符串连接字符串):基(连接字符串){}
}
公共类日志
{
公共Int32 Id{get;set;}
公共日期时间{get;set;}
公共字符串消息{get;set;}
}
当我运行Enable Migrations时,会创建Migrations文件夹,但只有Configuration.cs文件。没有生成用于处理日志表创建的代码


第二个相关问题是:在运行上一次添加迁移后,每次发生模型更改时,是否都必须运行添加迁移?

当运行
启用迁移时,它会在项目中搜索任何DBContext,并将该项目配置为使用迁移

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

对。运行
Add Mingration…
将创建详细说明模型更改的文件

运行
updatedatabase
将更改推送到数据库<代码>更新数据库-脚本(在运行更新数据库之前)生成模型更改的SQL脚本

更新数据库后,如果进行更多的模型更改,将添加另一个迁移。这个循环还在继续


请参见

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


如果启用自动迁移,将在运行时自动创建并运行迁移脚本,这意味着您无需在每次更新模型时手动运行“添加迁移”和“更新数据库”命令。

谢谢。关于“…它在项目中搜索任何DBContext…”我上面代码中的
IdentityDbContext
是否符合DBContext的条件?您是否仍需要调用添加迁移?@Terry不需要自动迁移。迁移在运行时动态生成、应用和放弃。未存储任何迁移文件。这类似于运行
添加迁移
,运行
更新数据库
,最后删除刚刚创建的迁移文件(可能会对迁移历史记录表内容产生不同的影响,但您知道了)。