如何统一给表实体增加主键 返回

SqlSugar 沟通中
6 767

背景:有个国产化系统实施的项目,对数据库权限限制比较严格,目前有一个要求所有表都必须有主键,表数量500多个

现状:由于是老项目,表实体比较多且大半没有主键,实体是使用工具生成的没有基类,如果手动改比较费时;

请问能否在初始化表的时候做统一处理,若没有主键则给字段加上自增Id列同时作为主键;自增列会自动给值不影响现有业务

热忱回答6

  • fate sta fate sta VIP0
    2025/12/21
    0 回复
  • 自由鳥 自由鳥 VIP0
    2025/12/24

    @fate sta:你好,我看了EntityNameService = (type, entity) 和EntityService = (type, column) =>两个回调方法;在EntityNameService 中拿不到列的信息;在EntityService 的回调中拿不到entity对象;项目要求每个表必须有主键,这个时候无法同个数据库去取得GetColumnInfosByTableName列信息;设想假如能在EntityNameService 的entity对象中能获得对应的Columns,就能判断是否有PK,没有的话在这对象追加列;但这个对象回调的时候还没有列信息

    image.png

    0 回复
  • 自由鳥 自由鳥 VIP0
    2025/12/24

    如果在EntityNameService里面调用db.EntityMaintenance.GetEntityInfo,好像会造成死循环。入参的entity那会估计还没有初始化完毕

    0 回复
  • fate sta fate sta VIP0
    2025/12/25

    列用的是entityservice  


    0 回复
  • fate sta fate sta VIP0
    2025/12/25

    2个事件认真看明白。各自用法。 跟本用不到db.EntityMaintenance.GetEntityInfo

    0 回复
  • 自由鳥 自由鳥 VIP0
    2025/12/25

    @fate staentityservice  这个是对已有的列进行调整就可以,如果我想在这里判断表有没有PK列,没有就自动给他加一个新列自增。能否实现呢,可以参照哪个文档呢,麻烦指导一下谢谢

    0 回复