将mongoDb中的Id属性映射到c#

将mongoDb中的Id属性映射到c#,c#,json,mongodb,mongodb-.net-driver,C#,Json,Mongodb,Mongodb .net Driver,我在MongoDB中存储了一个嵌套文档,例如: { _id: 56f19c2663e43f940a7fab69, propA: "some value", nestedItem: { propB: "nested property", leafItem: { id: 1458607372380, leafP

我在MongoDB中存储了一个嵌套文档,例如:

{ 
  _id: 56f19c2663e43f940a7fab69, 
  propA: "some value",
  nestedItem: {
                propB: "nested property",
                leafItem: {
                            id: 1458607372380,
                            leafProp: "a leaf property"
                          }
               }
}
我试图将其映射到一组C#类:

如果删除“BsonIgnoreExtraElements”,则会出现一个错误,
反序列化ConsoleApplication1类的leafItem属性时出错。SecondLevel:元素“id”与ConsoleApplication1.ThirdLevel类的任何字段或属性都不匹配。

如果保留ignore元素,它将在id中填充0

如果我有[BsonExtraElements]的成员,它会将id显示为属性,并显示值

为了提供id值的背景信息,我在客户端浏览器应用程序中创建了这个JSON结构,并使用new Date().valueOf()获取id的唯一编号

当我在MongoVue中查看文档时,我看到该类型被识别为Double,bson extra elements成员也将其显示为Double类型

我只是想把值输入到类成员中。任何帮助都将不胜感激


谢谢

如果是双倍,为什么要使用long???忘了提一下,我尝试了所有不同的东西,long,double,string。。。它从不填充。我认为问题在于属性名称。能否尝试将
[BsonRepresentation(BsonType.Int64)]
添加到
id
属性中,或将
id
属性重命名为其他属性。谢谢。。。我会尽力让你知道的。我很确定从id更改属性的名称可以解决这个问题,但这不是我想要做的(因为这意味着要更改很多代码)。我最终不得不添加一个新字段。
public class FirstLevel {
     public ObjectId _id {get; set;}
     public string propA {get; set;}
     public SecondLevel nestedItem {get; set;}
}

public class SecondLevel {
     public string propB {get; set;}
     public ThirdLevel leafItem {get; set;}
}

[BsonIgnoreExtraElements]
public class ThirdLevel {
     public long id {get; set;}
     public string leafProp {get; set;}
}