如何统一给表实体增加主键 返回
背景:有个国产化系统实施的项目,对数据库权限限制比较严格,目前有一个要求所有表都必须有主键,表数量500多个
现状:由于是老项目,表实体比较多且大半没有主键,实体是使用工具生成的没有基类,如果手动改比较费时;
请问能否在初始化表的时候做统一处理,若没有主键则给字段加上自增Id列同时作为主键;自增列会自动给值不影响现有业务
热忱回答(6)
-
fate sta VIP0
2025/12/21https://www.donet5.com/Home/Doc?typeId=1182
标题3.1 参考这个
0 回复 -
自由鳥 VIP0
2025/12/24@fate sta:你好,我看了EntityNameService = (type, entity) 和EntityService = (type, column) =>两个回调方法;在EntityNameService 中拿不到列的信息;在EntityService 的回调中拿不到entity对象;项目要求每个表必须有主键,这个时候无法同个数据库去取得GetColumnInfosByTableName列信息;设想假如能在EntityNameService 的entity对象中能获得对应的Columns,就能判断是否有PK,没有的话在这对象追加列;但这个对象回调的时候还没有列信息
0 回复 -
自由鳥 VIP0
2025/12/24如果在EntityNameService里面调用db.EntityMaintenance.GetEntityInfo,好像会造成死循环。入参的entity那会估计还没有初始化完毕
0 回复 -
fate sta VIP0
2025/12/25列用的是entityservice
0 回复 -
fate sta VIP0
2025/12/252个事件认真看明白。各自用法。 跟本用不到db.EntityMaintenance.GetEntityInfo
0 回复 -
自由鳥 VIP0
2025/12/25@fate sta:entityservice 这个是对已有的列进行调整就可以,如果我想在这里判断表有没有PK列,没有就自动给他加一个新列自增。能否实现呢,可以参照哪个文档呢,麻烦指导一下谢谢
0 回复