我在我的项目中使用实体框架代码的第一种方法。我已经使用包管理器控制台中的enable-migrations语句创建了模型并启用了迁移。如通过DbSet <类型>属性指定我的情况下我的上下文类包含映射配置和像是否可以附加索引修改初始迁移?
modelBuilder.Configurations.Add(new PostMap());
modelBuilder.Configurations.Add(new UserMap());
最多的方法在我的迁移文件201302261054023_InitialCreate.cs关系包含所有表定义。
我更改了自定义数据库初始化程序中的InitializeDatabase方法,因为我想在数据库初始化期间迁移到特定的迁移。
public void InitializeDatabase(T context)
{
bool databaseExists = context.Database.Exists();
if (!databaseExists)
context.Database.CreateIfNotExists();
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update("InitialCreate");
}
可以修改最多方法201302261054023_InitialCreate类从
CreateTable(
"dbo.City",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(maxLength: 450),
})
.PrimaryKey(t => t.Id);
再添指数
CreateTable(
"dbo.City",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(maxLength: 450),
})
.PrimaryKey(t => t.Id)
.Index(t=>t.Name,true);
而不附加其他迁移?
古贝,感谢您的回答。我的问题没有得到适当的描述。我想使用迁移来管理索引。你的方法应该是功能性的,但只适用于数据库迁移到最新版本的情况。我需要使用迁移到比最新版本更旧的数据库创建索引。 – 2013-03-06 08:55:18