插入时将PK添加到另一列

Posted

技术标签:

【中文标题】插入时将PK添加到另一列【英文标题】:adding PK into another column when inserting 【发布时间】:2021-05-20 12:40:18 【问题描述】:

我想将主键插入另一列,如下所示:-

Id  |  PaddedID |
----------------
6   |  0000006  |
7   |  0000007  |

有没有办法一次性在 db.SaveChanges() 中实现这一点?我知道我可以获得如下 ID 并更新 PaddedID:-

int id = Result.Id;

有没有办法使用 LINQ 告诉它用一些值填充 PK 并将其插入 PaddedID 列?

指点赞赏....

【问题讨论】:

Id 服务器生成了吗?我的意思是它可能是IDENTITYSEQUENCE 驱动的 @JesúsLópez Id 是数据库中的列,是主键 【参考方案1】:

您可以使用 FORMAT 集成函数为 PaddedID 使用持久计算列,如下所示:

ALTER TABLE MyTable ADD PaddedID AS FORMAT(Id, '00000000') PERSISTED

【讨论】:

出现以下错误:- 无法保留表“用户”中的计算列“PaddedID”,因为该列是不确定的。【参考方案2】:

你是否使用过HasComputedColumnSql 并尝试过这样的事情:

protected override void OnModelCreating(ModelBuilder modelBuilder)

    modelBuilder.Entity<YouEntity>()
        .Property(p => p.PaddedID)
        // here is the computed query definition
        .HasComputedColumnSql("[Id]");

【讨论】:

Is there a way using LINQ to tell it take the PK pad... 可以先用代码完成。

以上是关于插入时将PK添加到另一列的主要内容,如果未能解决你的问题,请参考以下文章

PHP/ACCESS/MYSQL 获取自动增量值并将其添加到另一列,后面有文本

拆分字符串,提取并添加到另一列正则表达式 BIGQUERY

关于ivx中将对象数组的某一列添加到另一对象数组中的经验总结

在运行时将一个游戏对象组件添加到另一个具有值的游戏对象中

Oracle - 将日期从一列复制到另一列的更新语句

将数据库中的某一表中的某一列或者多列添加到另一张表的某一列中——猎八哥FLY