C# 以编程/通用方式从db4o检索枚举值
我试图从db4o数据库的脱机副本中获取信息。我没有原始的对象类,因为它们来自Java应用程序(我在C#中工作),所以我在LINQPad中使用db4o的GenericObject构建了一个包装器,可以很好地查询大多数对象 但是,我在查询枚举值时遇到问题,因为它们报告没有任何字段。但是,当我在Visual Studio的对象管理器企业外接程序中查看它们时,我可以以名称/顺序的方式查看存储的枚举,但是那里存储的ID似乎与我从GenericObject检索到的ID不匹配(因此我无法手动将它们合并) (在4中,有人问我为什么不使用OME,比如说,OME中的拖放查询生成器不太有用,因此使用LINQPad路由。)C# 以编程/通用方式从db4o检索枚举值,c#,db4o,C#,Db4o,我试图从db4o数据库的脱机副本中获取信息。我没有原始的对象类,因为它们来自Java应用程序(我在C#中工作),所以我在LINQPad中使用db4o的GenericObject构建了一个包装器,可以很好地查询大多数对象 但是,我在查询枚举值时遇到问题,因为它们报告没有任何字段。但是,当我在Visual Studio的对象管理器企业外接程序中查看它们时,我可以以名称/顺序的方式查看存储的枚举,但是那里存储的ID似乎与我从GenericObject检索到的ID不匹配(因此我无法手动将它们合并) (在
我无法想象Visual Studio插件不使用类似的GenericObject方法来查询数据库,因此有人能演示如何从检索到的GenericObject派生枚举名称吗?我找到了它;枚举名/序号存储在
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));
(现在看看我是否可以为收藏做类似的事情!!)