.net 如何从db4o检索匿名类型的对象
我想将匿名类型的对象存储到db4o数据库中。例如:.net 如何从db4o检索匿名类型的对象,.net,database,c#-4.0,anonymous-types,.net,Database,C# 4.0,Anonymous Types,我想将匿名类型的对象存储到db4o数据库中。例如: // Store an object of anonymous type to the db var foobar = new {Foo="Ugh", Bar="Oh!"}; using (var db = Db4oEmbedded.OpenFile("db.db40")) { db.Store(foobar); } 我使用以下代码检索对象: // Retrieve it in a separate program using (va
// Store an object of anonymous type to the db
var foobar = new {Foo="Ugh", Bar="Oh!"};
using (var db = Db4oEmbedded.OpenFile("db.db40"))
{
db.Store(foobar);
}
我使用以下代码检索对象:
// Retrieve it in a separate program
using (var db = Db4oEmbedded.OpenFile("db.db40"))
{
var query=from dynamic fb in db select fb;
query.Dump();
}
但是,在检索之后,对象的属性不可访问:转储(在Linqpad中)提供以下内容:
5IEnumerable(3项)
一般对象
(G) f__匿名类型0`2[[System.String,mscorlib],[System.String,mscorlib]],查询
一般对象
(G) f__匿名类型0`2[[System.String,mscorlib],[System.String,mscorlib]],查询
一般对象
(G) f__匿名类型0`2[[System.String,mscorlib],[System.String,mscorlib]],查询
db4o支持这个用例吗?如何将对象整齐地从数据库中取出?db4o不正式支持匿名类型,因此请谨慎使用 在示例代码中,您有两个问题:
5IEnumerable<Object> (3 items)
GenericObject
(G) <>f__AnonymousType0`2[[System.String, mscorlib], [System.String, mscorlib]], query_vrfldn
GenericObject
(G) <>f__AnonymousType0`2[[System.String, mscorlib], [System.String, mscorlib]], query_oqabew
GenericObject
(G) <>f__AnonymousType0`2[[System.String, mscorlib], [System.String, mscorlib]], query_cfvuva
using System;
using Db4objects.Db4o;
namespace TestAnonymousTypes
{
class Program
{
static void Main(string[] args)
{
var obj = new {Name = "Foo", Id = "Bar"};
if (args.Length == 0)
{
using (var db = Db4oEmbedded.OpenFile("TestAnonymous.odb"))
{
db.Store(obj);
}
return;
}
using (var db = Db4oEmbedded.OpenFile("TestAnonymous.odb"))
{
var query = db.Query();
query.Constrain(obj.GetType());
var result = query.Execute();
var y = result[0];
Console.WriteLine(y);
}
}
}
}