【发布时间】:2014-03-23 23:41:03
【问题描述】:
我有一个使用“haward”数据库架构的应用迁移。
public partial class CreateCourseCategoryTable : DbMigration
{
public override void Up()
{
CreateTable(
"haward.CourseCategories",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
Code = c.String(),
})
.PrimaryKey(t => t.Id);
}
public override void Down()
{
DropTable("haward.CourseCategories");
}
}
有了这个映射
public class CourseCategoryMapping : EntityTypeConfiguration<CourseCategory>
{
public CourseCategoryMapping()
{
ToTable("CourseCategories", "haward");
}
}
现在我想将架构从“haward”更改为“tr” 我不想用这个添加迁移,所以我想直接编辑迁移和映射的源代码。
public partial class CreateCourseCategoryTable : DbMigration
{
public override void Up()
{
CreateTable(
"tr.CourseCategories",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
Code = c.String(),
})
.PrimaryKey(t => t.Id);
}
public override void Down()
{
DropTable("tr.CourseCategories");
}
}
public class CourseCategoryMapping : EntityTypeConfiguration<CourseCategory>
{
public CourseCategoryMapping()
{
ToTable("CourseCategories", "tr");
}
}
然后重新创建空数据库并发出命令 update-database 但它告诉我还有待处理的更改。
所以我所做的是发出 add-migration 命令来检查哪些更改是那些。即使没有迁移表,它似乎仍然可以检测到我的编辑(从“haward”到“tr”模式)。
模型更改保存在哪里?以及如何直接编辑源代码并重新应用迁移?我知道这是不可取的,因为这就是迁移的目的。但如果我只是处于早期开发阶段,我不想仅仅因为这些变化而弄脏我的历史。
【问题讨论】:
标签: entity-framework ef-code-first entity-framework-6 entity-framework-migrations