0

使用 EF6 和代码优先迁移来开发新功能使我的开发非常棒。现在我已经通过了原型阶段,我需要将此流程与我更大的代码库和变更控制流程集成。

迁移很棒,如果我处于不同的情况,我很乐意使用它们,但是当我发布代码时,数据库代码当前在单独的更改控制过程中执行。此外,该架构使用 Visual Studio 2010 中的数据库项目进行版本控制。

有没有办法模拟__migrationHistory表,所以当我部署时,我不会从 EF6 收到任何错误?此外,有没有办法将流畅迁移的输出脚本化为文件输出以供 DBA 执行?我看到我可以手动创建行条目,但我不确定Model二进制字段中存储的内容以及它是否可能只是下面的实际 T-SQL。

4

1 回答 1

0

为希望这样做的未来人们提供一些注意事项。

您可以使用 Update-Database -Script 选项将 EF6 迁移写入 SQL 文件。

当您单独执行 SQL 更新而不是代码时,这会有所帮助。

其次,如果您将字段标记为 [DataMember(IsRequired = false)] 并在 OnModelCreating 覆盖函数中添加代码以忽略它,则可以继续使用 EF6,而无需完全同步数据库:

public class DotNetObject
{
   [DataMember(IsRequired = false)]
   public int ColumnName { get; set; }
}

 protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
 {
                modelBuilder.Entity<DotNetObject>().Ignore(sc => sc.ColumnName);
    modelBuilder.Entity<DotNetObject>().Ignore(sc => sc.ColumnName);
 }
于 2015-01-06T19:07:48.093 回答