将聚集索引与主键分开的实体框架
本文关键字:实体 框架 聚集 索引 | 更新日期: 2023-09-27 18:33:55
我有一个表模式,其中主键是uniqueidentifier
,聚集索引是类型为 bigint
的标识列。
这个想法是 Guid 索引可能会碎片化,如果它要碎片化,我宁愿它不是聚集索引,因为那样它真的会减慢插入速度。即我希望尽可能按顺序插入该行。
但是,我不希望聚集索引传播到 EF 中的概念层。聚集索引只是所谓的记录的物理位置,程序员不需要知道任何关于它的信息。就他们而言,他们只处理Guid PK。所以我从模型中删除了该属性。
然而,项目编译抱怨聚集索引列不可为空,并且没有默认值,考虑到它是一个标识列并且既不能有默认值也不能为空,这两者都是荒谬的。
我该怎么做才能编译项目?
注意:我不想就 Guid vs. Sequential Guid vs. Int Id 进行辩论。这个系统必须能够横向扩展,这意味着我担心的是 Guid PK。
应检查属性的EntityKey
值是否在 EDMX 中设置为 true
。