2017-08-14 46 views
0

我在其中一个应用程序中使用MongoDB和c#驱动程序。 我已经定义了一个实体,并且还定义了强制执行模式的类映射。MongDb C#驱动程序将列表成员的空值反序列化为空

public class TestEntity 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public List<SomeModel> Properties { get; set; } 
} 

此外,我已经定义了约定来禁用空或空数组/列表的序列化。

new ConventionPack { new IgnoreIfNullConvention(true) 
conventionPack.Add(new IgnoreEmptyArraysConvention()); 

一切正常,但是当我查询文档背面使用C#驱动像下面,我得到的属性为空列表而不是空。例如,如果我有一个testentity文档如下,当我使用c#驱动程序查询“属性”属性返回为空列表而不是null。

{ “_id”:物件( “5991be3475f14655406cd301”), “名”: “测试”, “说明”: “测试” }

当我搜索我找不到答案线上。希望有人能帮忙。谢谢

+0

什么是您使用的IgnoreEmptyArraysConvention会议? –

+0

在这里提到的那个。 https://jira.mongodb.org/browse/CSHARP-765 –

回答

0

删除约会IgnoreEmptyArraysConvention看看代码here它似乎它创建一个新的列表实例。

+0

是的,它是。我没有太注意它,假设它只会影响序列化,而不是反序列化。我猜想复制代码的副作用之一。不管怎么说,还是要谢谢你 ! –

+0

我们之前都做过 –