我正在尝试从db4o数据库的脱机副本中获取信息。我没有原始的对象类,因为它们来自Java应用程序(我在C#中工作),所以我使用db4o的GenericObjects在LINQPad中构建了一个包装器,并且可以很好地查询它以适应大多数对象。 / p>
但是,我在查询枚举值时遇到问题,因为它们报告没有任何字段。但是,当我在Visual Studio的对象管理器企业加载项中查看它们时,我可以按名称/序号方式查看存储的枚举,但是存储的ID似乎与我从GenericObject检索到的ID不匹配。 (所以我不能手动将它们结合起来)。
(inb4有人问为什么我不只是使用OME,OME中的拖放查询构建器,比如说,不太有用,因此LINQPad路由。)
我无法想象Visual Studio插件不使用类似的GenericObject方法来查询数据库,所以任何人都可以演示如何从我检索到的GenericObject中获取枚举名吗?
答案 0 :(得分:0)
java.lang.Enum
的基础'表'下。它们具有与命名枚举“表”中相同的存储ID。
以下似乎有效:
var myEnumObjectID = db.Ext().GetID(myEnumObj);
var enumNameField = db.Ext().StoredClass("java.lang.Enum").StoredField("name", null);
var myEnumName = enumNameField.Get(db.Ext().GetByID(myEnumObjectID));
(现在看看我是否可以为收藏做类似的事情!!)