8

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

但是,当需要从中创建数据库时,它给出了错误

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

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

4

1 回答 1

12

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

于 2013-05-23T12:10:59.900 回答