EF 迁移无法识别现有表
EF migrations won't recognize existing tables
我首先从 DB 设置了这个项目,一切顺利。我可以正确调试。但是当我尝试对我的一个模型进行更改时,它并没有显示一个简单的 AlterColumn 语句的新迁移,而是不断尝试重新初始化整个数据库。
我试过 运行 更新数据库脚本,但只插入了 _MigrationHistory table 记录。即使在那之后,它仍然想要创建所有 tables.
有人遇到过这种情况吗?
当您从现有数据库开始时,您需要执行空(无操作)迁移以设置基线。这是因为 EF 将使用先前迁移中的模型进行比较,因此如果没有一个(在代码中),您将获得所有数据库对象。将记录插入 __MigrationHistory 只是告诉 EF 已应用代码迁移 - 它不会将其用于比较。
enable-migrations
add-migration MyBaseline -IgnoreChanges // no Up() code, but model saved
update-database
// Now I can change my model and generate a migration with difference
我首先从 DB 设置了这个项目,一切顺利。我可以正确调试。但是当我尝试对我的一个模型进行更改时,它并没有显示一个简单的 AlterColumn 语句的新迁移,而是不断尝试重新初始化整个数据库。
我试过 运行 更新数据库脚本,但只插入了 _MigrationHistory table 记录。即使在那之后,它仍然想要创建所有 tables.
有人遇到过这种情况吗?
当您从现有数据库开始时,您需要执行空(无操作)迁移以设置基线。这是因为 EF 将使用先前迁移中的模型进行比较,因此如果没有一个(在代码中),您将获得所有数据库对象。将记录插入 __MigrationHistory 只是告诉 EF 已应用代码迁移 - 它不会将其用于比较。
enable-migrations
add-migration MyBaseline -IgnoreChanges // no Up() code, but model saved
update-database
// Now I can change my model and generate a migration with difference