我似乎无法让我的代码优先迁移来创建我的 SQL Azure 数据库。
它一直抱怨 SQL Azure 缺乏对没有聚集索引的表的支持,而且我找不到创建数据库的方法。
注意:我CreateDatabaseIfNotExists
用于在第一次创建数据库时创建更改跟踪表,因为显然DropCreateDatabaseIfModelChanges
不适合您
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.
未创建数据库。
更新:我从头开始并按照本指南启用自动迁移(刮掉数据库并从不存在的数据库开始,因此我不必从初始迁移中删除向上/向下代码)
这次成功创建了我的数据库(之前没有做到这一点),但是没有创建表,并且我仍然得到与以前相同的错误,即不支持没有聚集索引的表。
请指教