如何配置Fluent API让自增主键从5位及以上数字开始生成?
Fluent API 配置自增主键从50000起步的实现方法
默认调用ValueGeneratedOnAdd()配置的自增主键起始值由数据库默认规则决定(通常为1),你可以根据自己使用的数据库选择以下方案修改起始值:
- 方案1:SQL Server 专属Fluent配置
如果你的项目使用SQL Server作为数据库,可直接在Fluent API配置中调用UseIdentityColumn方法直接指定起始值和步长,示例代码如下:
modelBuilder.Entity<你的实体类名称>() .Property(p => p.主键字段名称) .ValueGeneratedOnAdd() .UseIdentityColumn(seed: 50000, increment: 1);
- 方案2:全数据库通用迁移自定义方案
如果使用MySQL、PostgreSQL等其他数据库,可在生成数据库迁移文件后,在迁移类的Up方法中手动插入对应SQL语句修改自增起始值:- MySQL 写法:
migrationBuilder.Sql("ALTER TABLE 你的表名 AUTO_INCREMENT = 50000;");- PostgreSQL 写法:
migrationBuilder.Sql("ALTER SEQUENCE 你的表名_主键字段名_seq RESTART WITH 50000;");- SQL Server 写法:
// 注意SQL Server的RESEED参数为下一个分配ID的前一个值,所以要从50000开始需填49999 migrationBuilder.Sql("DBCC CHECKIDENT ('你的表名', RESEED, 49999);");
提示:以上配置仅需执行一次即可,后续新增迁移未修改主键规则时无需重复添加。
内容的提问来源于stack exchange,提问作者Regestea
相关产品推荐
相关产品推荐

