我似乎无法使用Code-First Migration来创建我的SQL Azure数据库。
它一直抱怨SQL Azure缺乏对没有聚簇索引的表的支持,我无法找到解决方法来创建我的数据库。
注意:我正在使用CreateDatabaseIfNotExists
在首次创建数据库时创建更改跟踪表,因为显然DropCreateDatabaseIfModelChanges
doesn't do that for you
public partial class IUnityDbContext : DbContext
{
public IUnityDbContext()
: base("Name=IUnityDbContext")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<IUnityDbContext>());
//Database.SetInitializer(new DropCreateDatabaseIfModelChanges<IUnityDbContext>());
}
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new UserMap());
base.OnModelCreating(modelBuilder);
}
}
public partial class Initial : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Users",
c => new {
...
}
).PrimaryKey(u => u.UserId, clustered: true);
}
public override void Down()
{
DropTable("dbo.Users");
}
}
如果我尝试`Update-Database我得到
Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.
未创建数据库。
更新:我从头开始并按照this guide启用自动迁移(划伤数据库并以不存在的数据库启动,因此我不必删除Up /从初始迁移中删除代码
这次我的数据库已成功创建(之前没有这么做),但是没有创建表,我仍然得到与以前相同的错误,不支持没有聚簇索引的表。
请告知
答案 0 :(得分:4)
原来是Entity Framework 6 -Alpha 3中的一个错误。我想我应该提到它。
答案 1 :(得分:2)
这个看起来很相似(虽然它不是理想的解决方案):Entity Framework Many-to-Many Clustered vs. Nonclustered Index