为输入新记录预先生成 ID 字段?

pre-generate ID field for entering a new record?

我正在使用 EF6 创建一个 winforms 应用程序,所以我创建了一个新的 table 和一大堆控件,主要是文本框和组合框。

我对这一切都很陌生,但我知道我需要对 "entities" 上下文使用 using 语句。

Id 字段是 PK 和自动递增 (IsIdendtity = True),所以如果我没有指定写入 ID 字段,当新实体被跟踪到上下文时,它应该得到一个自动分配的 ID对吗?

我将如何验证这一点?或手动尝试写入我的 ID?

问题原因?

我做了一些单独而简单的事情,adding/removing 记录..不知何故,ID 已经跳到 4000,而我只输入和删除了大约 5 - 6 条记录。那么它是如何达到4000的呢? (我的代码也没有使用循环)并且是一样的,ISIdentity,自动递增 1.

然而不知何故.. 记录得到了 ID 4001..

所以这让我相信我需要进一步验证和限制该数据,但因为我是一个业余爱好者,我不知道从哪里开始,任何建议将不胜感激。

C#/WInforms/EF6

这与Sql服务器有关。当您创建身份时 sql 服务器会创建具有缓存的身份并保留指定缓存的身份数量。当您重新启动 SQL 服务器时,您会丢失先前保留的值,并且会再次创建此缓存并再次保留身份数量。因此,这会导致您的身份出现差距。您可以将其关闭,但要牺牲性能。 如需进一步阅读,请检查 this