愿你出走半生,归来仍是少年!
环境:.NET FrameWork4.5、ObjectArx 2016 64bit、Entity Framework 6.
在10.扩展数据(XData)中我们讲到每个DbObject有一个XData对象可以存储数据,除此之外每个DbObject对象还有一个ExtensionDictionary(扩展字典)可以进行数据存储。
在使用XData时为方便存取数据在一个实体上需要使用多个RegApplication进行区分,这个就要求在开发时进行提前的RegApp注册,这个比较麻烦;除此之外,据公司在CAD绘图的同事说,以前会有CAD中病毒导致扩展数据丢失的情况,所以可能扩展字典是一个更好的数据存储方式。
除此之外XData数据存储是有上限的(16kb),然而扩展字典通过使用Xrecord(数据扩展记录)可达到2GB的数据存储量。
1.字典
扩展字典继承于DBDictionary 对象,DBDictionary 是CAD中存储非图形对象的容器。字典以两种方式存在,一种是存储在数据库中用来保存整个图纸的数据叫 NameDictionaries(命名对象字典),一种是储存在对象中用于保存对象的信息数据叫 ExtensionDictionary(对象扩展字典)。
2.扩展字典
扩展字典通常以键值对的方式存储数据,其键为文本格式,值为Xrecord(数据扩展记录)。每个DbObject对象在初始状态是并未拥有扩展字典的,需用通过CreateExtensionDictionary方法进行创建,创建后的字典可存储独属于该对象的数据。
通过DBDictionary 对象的SetAt