关于如何使用Fluent API将列设置为标识列,存在许多问题,其中包括:.UseIdentityColumn()
然而,我需要相反的东西-主键字段,需要是表标识(对于UPSERTS),然而,我想删除标识规范。
在SSMS中,我可以将标识规范设置为no
,但我想看看这在Fluent API中是否可行。
我试过了
编辑以更新-完整代码为:
builder.Entity<ModelClass>().HasKey(x => x.Id);
builder.Entity<ModelClass>()
.Property(x => x.Id)
.ValueGeneratedNever()
.HasAnnotation("DatabaseGenerated", DatabaseGeneratedOption.None);
因此,ID列仍然需要是表.HasKey(x => x.Id)
的键-但没有标识规范
属性Id是一个键,然后被告知不要生成值。对我来说,在SQL Server中表仍然有一个"标识规范"="是",然后设置种子和增量值。
2条答案
按热度按时间szqfcxe21#
1-使用Fluent API更新您的实体,如下所示
2-创建新迁移,并确保您的属性在UP方法中新生成的迁移代码中具有以下配置
然后更新数据库
mutmk8jj2#
.HasAnnotation(“Npgsql:值生成策略”,Npgsql.实体框架核心.PostgreSQL.元数据. Npgsql值生成策略.串行列)