2017-01-27 38 views
1

我有一个包含两个字段的文档; namedocuments使用C#SDK读取(反序列化)时忽略字段

我希望这两个字段在写入期间被序列化并插入到我的集合中。但是,我不想documents读取时反序列化(我很高兴与这一领域被空),

下面是实体类:

public class EmployeeDocument 
{ 
    [BsonElement("name")] 
    public string Name { get; set; } 

    [BsonElement("documents")] 
    public List<string> Documents { get; set; } 
} 

我怎么能做到这一点?

回答

1

我认为不可能忽略反序列化的属性,但不能用于序列化。 我认为这不是最好的方法。 如果你想阅读文档并不是所有的属性,您可以排除他们预测,如果你不是想拥有同样的EmployeeDocument类,你可以反序列化BsonDocument它,我的意思是这样:

var emps = db.GetCollection<EmployeeDocument>("empl"); 
var employees =emps.Find(x=>true) 
      .Project(Builders<EmployeeDocument>.Projection.Exclude(x=>x.Documents)) 
      .ToList() 
      .Select(x=>BsonSerializer.Deserialize<EmployeeDocument>(x));