将聚簇索引与主键分离的实体框架

时间:2012-05-12 19:15:15

标签: c# .net entity-framework database-design

我有一个表模式,主键是uniqueidentifier,聚簇索引是bigint类型的标识列。

这个想法是Guid索引可能会碎片化,如果它将被分割,我更喜欢它不是聚集索引,因为它会真正减慢插入。即我希望尽可能顺序插入行。

但是我不希望聚集索引传播到EF中的概念层。聚集索引只是所述记录的物理位置,程序员不需要了解它。就他们而言,他们只处理Guid PK。所以我从模型中删除了属性。

然而,项目编译抱怨聚簇索引列不可为空,并且没有默认值,考虑到它是一个标识列,它们都是无意义的,既不能有默认值也不能为空。

如何让项目编译?

注意:我不想就Guid与Sequential Guid vs. Int Id进行辩论。这个系统必须能够向外扩展,这意味着我所关心的Guid PK。

1 个答案:

答案 0 :(得分:1)

您应该检查EDMX中属性的EntityKey值是否设置为true