EF Code First - 如何设置标识增量

Posted

技术标签:

【中文标题】EF Code First - 如何设置标识增量【英文标题】:EF Code First - how to set identity increment 【发布时间】:2012-07-03 04:05:46 【问题描述】:

这显示了如何设置身份种子。

EF Code First - how to set identity seed?

dataannotations set identity seed value on Primary Key with code first

如何先使用代码设置标识增量值?

【问题讨论】:

对于 EF Core Identity 种子通知This Question 【参考方案1】:

没有办法。

配置实体(约定、属性、流畅的 API)的任何方法都不允许这样做。您既不能使用自定义约定来实现它(简而言之,自定义约定检查列的名称、属性、类型、包含类型或任何内容,然后使用流式 API 配置列或实体)。至少达到 EF 6.1.1。

在 SQL Server 中操作标识的唯一方法是使用 DBCC CHECKIDENT,但这仅允许更改种子值,而不是增量。

如果您想更改增量,您必须删除该列并在数据库初始化程序Seed 方法中再次创建它。问题是您必须删除并创建与此列相关的所有密钥(PK 或 FK)。 (这适用于 SQL Server 2014)

您可以查看at this answer,我在其中解释了可能的解决方案、替代方案和变通方法,哪些有效,哪些无效,以及投票链接以将其包含在未来的 EF 版本中。

【讨论】:

以上是关于EF Code First - 如何设置标识增量的主要内容,如果未能解决你的问题,请参考以下文章

带有标识列的 EF Code First 父子插入 (HELP)

EF Code First - 如何设置身份种子?

Code First 属性详解

EF Code First 学习笔记:约定配置

EF之Code First设置主外键关系

20.1翻译系列:EF 6中自动数据迁移技术EF 6 Code-First系列