使用EF6处理新功能,首先进行代码迁移,这使我的开发变得非常棒。现在我已经通过了原型阶段,我需要将这个过程与我更大的代码库和改变控制过程。
迁移非常棒,如果我处于不同的情况,我很乐意使用它们,但是当我发布代码时,数据库代码当前在单独的更改控制过程中执行。此外,使用Visual Studio 2010中的数据库项目对模式进行版本控制。
有没有办法模拟__migrationHistory
表,所以当我部署时,我不会从EF6中得到任何错误?另外,有没有办法将流畅的迁移输出编写为文件输出,以便DBA执行?我看到我可以手动创建行条目,但我不确定Model
二进制字段中存储了什么,以及它可能只是下面的实际T-SQL。
答案 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);
}