您知道,通过使用波纹管属性,我们可以在添加新条目int
的情况下为每个条目自动生成标识:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
如果您曾经关注过,Database 会int
为每个新条目生成唯一编号,也会自动递增,并且在删除的情况下,它将从最新的专用编号(可能被删除)继续,而不是从 Table 中最新使用的编号继续。这导致表中没有后续数字,如下所示:
Id Value GroupId
1 A 1
2 B 1
8 C 2//here we have 5 entry deletion
9 D 2
25 E 3//here we have 15 entry deletion
我的问题是:假设我们有大量的条目要注册。如果键属性,比如说Id
达到其类型的最大数量(这里int
容量等于 2^32),EF 或 SQL 服务器是否识别出我们有很多未使用的数字作为表中的键来使用它们?或不?