Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程/通用方式从db4o检索枚举值_C#_Db4o - Fatal编程技术网

C# 以编程/通用方式从db4o检索枚举值

C# 以编程/通用方式从db4o检索枚举值,c#,db4o,C#,Db4o,我试图从db4o数据库的脱机副本中获取信息。我没有原始的对象类,因为它们来自Java应用程序(我在C#中工作),所以我在LINQPad中使用db4o的GenericObject构建了一个包装器,可以很好地查询大多数对象 但是,我在查询枚举值时遇到问题,因为它们报告没有任何字段。但是,当我在Visual Studio的对象管理器企业外接程序中查看它们时,我可以以名称/顺序的方式查看存储的枚举,但是那里存储的ID似乎与我从GenericObject检索到的ID不匹配(因此我无法手动将它们合并) (在

我试图从db4o数据库的脱机副本中获取信息。我没有原始的对象类,因为它们来自Java应用程序(我在C#中工作),所以我在LINQPad中使用db4o的GenericObject构建了一个包装器,可以很好地查询大多数对象

但是,我在查询枚举值时遇到问题,因为它们报告没有任何字段。但是,当我在Visual Studio的对象管理器企业外接程序中查看它们时,我可以以名称/顺序的方式查看存储的枚举,但是那里存储的ID似乎与我从GenericObject检索到的ID不匹配(因此我无法手动将它们合并)

(在4中,有人问我为什么不使用OME,比如说,OME中的拖放查询生成器不太有用,因此使用LINQPad路由。)


我无法想象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));
(现在看看我是否可以为收藏做类似的事情!!)