将Code-First EF6与旧框架集成

时间:2014-10-15 03:31:57

标签: .net entity-framework-6 fluent-migrator

使用EF6处理新功能,首先进行代码迁移,这使我的开发变得非常棒。现在我已经通过了原型阶段,我需要将这个过程与我更大的代码库和改变控制过程。

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

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

1 个答案:

答案 0 :(得分: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);
 }