gpt4 book ai didi

sql-server - Entity Framework 身份增量配置

转载 作者:行者123 更新时间:2023-12-03 00:25:30 26 4
gpt4 key购买 nike

是否可以配置 Entity Framework 模型,以便在从模型创建数据库时,生成的标识列具有除 1 以外的标识增量?例如,我可能有一个身份列,我希望在其中包含 id 序列:1、11、21、31、...(按 10 而不是 1 计数)。

我不太关心身份种子,因为在 EF 生成数据库架构后,我可以轻松地使用 sql 语句重新为表重新播种。但是,如果我想更改身份增量,那么我必须重新创建表(至少在 Microsoft Sql Server 中)。由于外键关系,自动执行此操作可能会有些复杂。

那么有没有办法在 EF 中配置标识列呢?如果没有,如果可能的话,我也可以在针对数据库执行模式创建脚本之前检查和修改它们。

更新一些额外的详细信息:

我已经重写了 DropCreateDatabaseIfModelChanges(IDatabaseInitializer 的包含实现者)公开的 Seed 方法。在这里,我在 EF 创建架构后运行一些自定义初始化例程。我想我可以添加另一个来修改创建后的每个标识列规范。但是,如上所述,要更改身份增量,我必须重新创建每个表(及其外键)。由于缺乏在创建后更改标识列增量的简单方法,我想在创建标识列之前对其进行配置,以便 EF 使用 1 以外的增量创建它们,或者修改生成的表创建脚本在执行之前由 EF 执行。

最佳答案

您无法更改种子 - EF 不允许这样做。还更改现有表上的种子 means dropping the column并再次创建它。所以这部分的答案是否定的。

创建脚本“是可能的”,但您将失去 EF 为您提供的许多功能。你可能会失去:

  • 数据库创建 - 您只会获得用于创建表的脚本
  • 数据库一致性检查(EdmMetadata 支持)

检查this article关于为现有数据库创建可检索的初始值设定项

关于sql-server - Entity Framework 身份增量配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com