我有这个示例类:
public class Test { private ObjectId _mongoID; private A _a = new A(); private ArrayList _alData = new ArrayList(); // Arraylist of B objects #endregion public Test(A a, ArrayList alData) { _a = a; _alData = alData; } [BsonId] public ObjectId MongoID { get; set; } public A a { get { return _a; } } public Array dta { get { return _alData.ToArray(); } } }
我希望得到这个结果:
{ "_id" : ObjectId("000000000000000000000000"), "_a":{A members}, "dta":[{B members}, {B members}]}
我该怎么办?
由于
答案 0 :(得分:1)
此类是只读且不可变的。这是你的意图吗?如果是这样,那么以下是完成您要求的最佳方式。注意,您需要至少使用驱动程序版本1.4.1才能使用此功能,并且无法从数据库中读取此类。它只是由于属性的只读性质而持续存在。
public class Test
{
private A _a;
private ArrayList _alData;
[BsonId]
public ObjectId Id { get; set;}
[BsonElement("_a")]
public A A { get { return _a; } }
[BsonElement]
public Array dta { get { return _alData.ToArray(); } }
}