命令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?
答案 0 :(得分:1)
当您运行Enable-Migrations
时,它会在项目中搜索任何DBContexts并将该项目配置为使用迁移。
每次在上次添加迁移后运行模型更改时,是否必须运行添加迁移?
是。运行Add-Mingration ...
会创建详细说明模型更改的文件。
运行Update-Database
会将您的更改推送到数据库。 Update-Database -Script
(在运行update-database之前)生成模型更改的SQL脚本。
更新数据库后,如果进行更多模型更改,则需要添加其他迁移。循环继续......
答案 1 :(得分:1)
请注意,启用迁移不与自动迁移相同。
如果启用了自动迁移,则会在运行时自动创建和运行迁移脚本,这意味着您无需运行&#34; add-migrations&#34;和&#34;更新数据库&#34;每次更新模型时都会手动执行命令。