一个名为edDictionary的数据库的直接子代不应该是DBDictionaries吗?也就是说,数据库NamedDictionary的每个DBDictionaryEntry都是DBDictionary的键索引ObjectId。所以,在你的情况下,DBDictionary entry“acad dim _ CRX”应该是DBDictionary,而不是XRecord(嗯,也可能是幕后的XRecord,但至少在。NET API,DBDictionary不是公开从XRecord派生的)。虽然可以将自定义条目作为XRecord直接添加到数据库NamedDictionary中,但这是一种不好的做法。数据库的直接子级。NamedDictionary应该始终是另一个DBDictionary(带有键索引,因此是NamedDictionary)。
因此,您的案例应该是这样的:
...
如果(节点。contains(" acad dim _ CRX ")
{
var the dick =(db dictionary)tr。GetObject(不是。GetAt("AcadDim_CRX ",OpenMode。for read);
//然后在这个命名字典中挖掘每个DBDictionaryEntry,它可能是XRecord或另一个DbDictionary...