[英]Entity Framework Code First with DbUp
我正在考虑使用Entity Framework 6
Code First
进行数据库交互以及DbUp
进行数据库模式更新。 问题是我不想使用EF
迁移的原因。 所以,我达到的工作流程是:
POCO
,更改属性等) Visual Studio Package Manager Console
运行Add-Migration temp_file
Visual Studio Package Manager Console
运行Update-Database -Script
sql
脚本,包括在表__MigrationHistory
插入新行 .sql
文件并通过生成的脚本 temp_file
它在本地和生产服务器上完美地工作,但是每次生成新的迁移时我都不习惯添加然后删除temp_file
(我希望有一种方法可以永久停止将temp_file
添加到解决方案中。)。
所以问题:有没有更好的方法使用Entity Framework
使用DbUp
进行数据库迁移?
在大多数情况下,您可以通过使用自动代码优先迁移来跳过步骤(2)和(6):
自动迁移允许您使用代码优先迁移, 而无需在项目中为每个更改生成代码文件 。
默认情况下,禁用自动迁移。 您可以通过在db migration配置类构造函数中添加以下内容来启用它们(通常称为Configuration
,位于Migrations
子文件夹下):
AutomaticMigrationsEnabled = true;
有些事情需要考虑:
也许这个答案为时已晚,但也许它也会有用。 我完全理解您将Entity Framework用作ORM的方法以及用于架构迁移的不同工具。 但是选择DbUp需要您手动编写SQL或如上所述生成它们。 我建议考虑使用FluentMigrator而不是DbUp。 它遵循相同的原则,但允许使用流畅的语法在C#中编写迁移步骤。 此外,它还支持降级,即回滚。
这是一个例子:
[Migration(1)]
public class CreateUserTable : Migration
{
public override void Up()
{
Create.Table("Users");
}
public override void Down()
{
Delete.Table("Users");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.