如何在 MS SQL 中通过 ENTITY FRAMEWORK CORE 代码首先使用条件(字符串 + 自动递增数字)创建 COMPUTED 列

How to create COMPUTED column in MS SQL by ENTITY FRAMEWORK CORE code first with condition (string + auto increment number)

我试图在 HasComputedColumnSql 的帮助下在 MS SQL 中创建一个计算列,但无法理解如何操作。
我的列条件是 "ABCD-Auto incremental value minimum 8 character"
我想要值为 ABCD-00000001

的列

我已经在 SQL 查询中完成了,它正在运行。

创建 TABLE BikeParts ( BikeParts_GUID AS 'ABCD-' + RIGHT(REPLICATE('0', 8) + CONVERT(VARCHAR, BikePart_ID), 8), BikePart_ID INT 标识 (1, 1), BikePart_Name 变量(100) )</p> <p>插入 BikeParts 值 ('Break Cable') 插入 BikeParts 值 ('Seat Cover')</p> <p>SELECT * 来自 BikeParts

但无法在 entity framework 核心 2.2 中使用代码优先方法执行相同操作。
我将非常感谢任何形式的帮助。

经过大量搜索,终于找到了正确答案。

型号为:-

public partial class BikeParts
    {
        public int ID { get; set; }
        public string BikePartsGuid { get; set; }
        public int BikePartId { get; set; }
        public string BikePartName { get; set; }
    }

型号配置为:-

 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {

        modelBuilder.HasSequence<int>("BikePartIdHelper", schema: "dbo").StartsAt(1).IncrementsBy(1);

        modelBuilder.Entity<BikeParts>(entity =>
        {
                entity.ToTable("BikeParts1");
                entity.HasKey(e => e.ID);
                entity.Property(e => e.ID).HasColumnName("ID").UseSqlServerIdentityColumn();
                entity.Property(e => e.BikePartId).HasColumnName("BikePart_ID")
                .HasDefaultValueSql("NEXT VALUE FOR dbo.BikePartIdHelper");
                entity.Property(e => e.BikePartName)
                    .HasColumnName("BikePart_Name")
                    .HasMaxLength(100)
                    .IsUnicode(false);
                entity.Property(e => e.BikePartsGuid)
                    .HasColumnName("BikeParts_GUID")
                    .HasMaxLength(13)
                    .IsUnicode(false)
                    .HasComputedColumnSql("('ABCD-'+right(replicate('0',(8))+CONVERT([varchar],[BikePart_ID]),(8)))");
        });        
 }

我用过sequences for auto-generate BikePartId with the help of HasDefaultValueSql 在 BikePartsGuid 列上,我使用了 HasComputedColumnSql