当前位置: 首页 > 面试题库 >

SQL Azure中的代码优先迁移-不支持没有聚集索引的表

刘永望
2023-03-14
问题内容

我似乎无法进行代码优先迁移来创建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.

未创建数据库。

更新:
我从头开始,并按照本指南启用了自动迁移(对数据库进行了刮擦,并从一个不存在的数据库开始,因此我不必从初始迁移中删除上/下代码)

这次成功创建了我的数据库(之前没有做过),但是没有创建表,并且仍然遇到与以前相同的错误,即不支持没有聚簇索引的表。

请指教


问题答案:

原来是Entity Framework 6 -Alpha 3中的一个错误。我想我应该提到这一点。
https://codingdict.com/questions/210605



 类似资料:
  • 问题内容: 我正在尝试从DWH SQL Server表中导入数据,该表使用Clustered Columnstore Index到through中。但是,在我的自定义源从数据库中检索到一定数量的行之后,会发生此异常: SqlExceptionHelper:具有聚集的列存储索引的表不支持游标 我使用的是JDBC SQL Server驱动程序类型4,显然,它使用游标来迭代结果集。因此,我尝试将提取大小

  • 本文向大家介绍SQL Server中的聚集索引和非聚集索引之间的区别,包括了SQL Server中的聚集索引和非聚集索引之间的区别的使用技巧和注意事项,需要的朋友参考一下 索引是与实际表或视图相关联的查找表,数据库使用该查找表来改善数据检索性能的计时。在index中, 键存储在结构(B树)中,该结构使SQL Server可以快速有效地查找与键值关联的一行或多行。如果在表上定义了主键和唯一约束,则会

  • Pillow 是对 PIL 的功能增加,想要在 Pillow 下运行 PIL 的代码,只需要: 把这个: import Image 修改成: from PIL import Image 注意,:py:mod:`_imaging` 模块已经被移除,现在可以这样导入:: from PIL.Image import core as _imaging 另外,图像插件导入机制已经改变。Pi

  • 问题内容: 当我查看特定查询的执行计划时,我发现我的成本的77%在聚簇索引查找中。 我使用聚集索引的事实是否意味着我不会因为输出的列而看到性能问题? 对我来说,创建一个非聚集版本并包含所有正在输出的列会更好吗? 更新:聚集索引使用组合键。不知道这是否有所作为。 问题答案: 使用非聚集索引上的包含列的原因是为了避免对聚集数据进行“书签查找”。问题是,如果SQL Server _理论上可以_使用特定的

  • 问题内容: 查看执行计划,我在输出列表中看到“列A”。该操作是对非聚集索引的索引扫描:“ IX_name” 当我看到此索引的定义时。在“索引键”列或“包含”列中都看不到“ A列”。 如何使用非聚集索引来输出索引中不存在的列。它不应该在表或其他带有“ A列”的索引上使用“表扫描”。 问题答案: 如果表本身是集群1,那么所有二级索引都包含集群键2的副本(该键确定集群表中行的物理顺序)。 原因:群集表中

  • 本文向大家介绍理解Sql Server中的聚集索引,包括了理解Sql Server中的聚集索引的使用技巧和注意事项,需要的朋友参考一下   说到聚集索引,我想每个码农都明白,但是也有很多像我这样的猥程序员,只能用死记硬背来解决这个问题,什么表中只能建一个聚集索引,然后又扯到了目录查找来帮助读者记忆。。。。问题就在这里,我们不是学文科,,,不需要去死记硬背,,,我们需要的就是能看到在眼里面的真实东西