【发布时间】:2013-05-20 16:54:47
【问题描述】:
当我使用像 DropCreateDatabaseAlways 或 MigrateDatabaseToLatestVersion 这样的数据库初始化程序来创建我的实体框架 (5.0.0) 数据库时,生成的架构不包括我在迁移中定义的索引,这与我创建数据库时不同使用Update-Database。
如何配置系统,使其使用数据库初始化程序产生与按顺序运行迁移时相同的最终结果?
迁移示例
public override void Up()
{
CreateIndex("dbo.Users", "Username", unique:true);
}
DropCreateDatabaseAlways 的结果(无索引)
CREATE TABLE [dbo].[Users] (
[Id] BIGINT IDENTITY (1, 1) NOT NULL,
[Username] NVARCHAR (50) NULL,
[Email] NVARCHAR (255) NULL,
CONSTRAINT [PK_dbo.Users] PRIMARY KEY CLUSTERED ([Id] ASC)
);
Update-Database 的结果(包括索引)
CREATE TABLE [dbo].[Users] (
[Id] BIGINT IDENTITY (1, 1) NOT NULL,
[Username] NVARCHAR (50) NULL,
[Email] NVARCHAR (255) NULL,
CONSTRAINT [PK_dbo.Users] PRIMARY KEY CLUSTERED ([Id] ASC)
);
GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_Username]
ON [dbo].[Users]([Username] ASC);
【问题讨论】:
标签: c# database entity-framework indexing entity-framework-migrations