为什么主键订单很重要?

时间:2013-05-23 11:53:17

标签: sql-server entity-framework composite-primary-key

我最近在EntityFramework项目中设置了一个类,该项目将其几个成员指定为复合键。

然而,当从这里创建数据库时,它给出了错误

  

无法确定类型“NNNNN”的复合主键排序。使用ColumnAttribute或HasKey方法指定复合主键的顺序。

我知道如何解决问题,但我只是想知道为什么它关心订单。复合主键只是一组用于键入记录的列,而不需要任何特定的排序吗?

1 个答案:

答案 0 :(得分:6)

这很重要,因为主键的顺序在数据库中很重要。由于主键(通常)是聚类的,并且始终是索引,因此无论密钥是以名字,姓氏,SSN还是SSN,姓氏,名字排序,都会产生巨大的差异。如果我在查询表时只有SSN,并且PK是唯一的索引,我会看到后者的性能很好,并且前者会进行全表扫描。