欢迎加我的QQ群:193522571,一起来讨论、交流!

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();//为了安全,将块表记录的状态改为读
    }
复制代码

 

posted @   swtool  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
欢迎加我的QQ群:193522571,一起来讨论、交流!
点击右上角即可分享
微信分享提示