eNotInDatabase,btr.AppendEntity(attNew);必须在AddNewlyCreatedDBObject前面
public static void AddAttsToBlock(this ObjectId blockId, List<AttributeDefinition> atts, bool copyEntity = false) { Entity attNew; Database db = blockId.Database;//获取数据库对象 //打开块表记录为写的状态 BlockTableRecord btr = (BlockTableRecord)blockId.GetObject(OpenMode.ForWrite); //遍历属性定义对象列表 foreach (AttributeDefinition att in atts) { attNew = att; if (copyEntity) { attNew = (Entity)att.Clone(); } //此句必须在AddNewlyCreatedDBObject前面 btr.AppendEntity(attNew);//为块表记录添加属性 db.TransactionManager.AddNewlyCreatedDBObject(attNew, true);//通知事务处理 } btr.DowngradeOpen();//为了安全,将块表记录的状态改为读 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界