Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
带有对象的MongoDB序列化和带有官方C#驱动程序的对象的arraylist_Mongodb_Mongodb .net Driver - Fatal编程技术网

带有对象的MongoDB序列化和带有官方C#驱动程序的对象的arraylist

带有对象的MongoDB序列化和带有官方C#驱动程序的对象的arraylist,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我有一个例子: 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) {

我有一个例子:

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(); } } } 公开课考试 { 私有对象; 私有A_A=新A(); 私有ArrayList _-alData=new ArrayList();//B对象的ArrayList #端区 公共测试(A、A、ArrayList-alData) { _a=a; _alData=alData; } [BsonId] 公共对象MongoID { 得到; 设置 } 公共的 { 得到 { 返回a; } } 公共阵列dta { 得到 { return_alData.ToArray(); } } } 我希望有这样的结果:

{ "_id" : ObjectId("000000000000000000000000"), "_a":{A members}, "dta":[{B members}, {B members}]} {u id:ObjectId(“000000000000000000000000”),“\u a”:{a members},“dta”:[{B members},{B members}]} 我该怎么办

谢谢

此类为只读且不可变。这是你的意图吗?如果是这样的话,那么下面是实现你所要求的最好的方法。注意,您需要至少使用驱动程序版本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(); } }
}

谢谢我将一些数据从关系数据库导出到MongoDB。只读对我有好处;-)