Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
C# MongoDB:嵌套数组的类型化表达式是';使用自定义映射时不工作_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# MongoDB:嵌套数组的类型化表达式是';使用自定义映射时不工作

C# MongoDB:嵌套数组的类型化表达式是';使用自定义映射时不工作,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有以下型号: public class Entity { public ObjectId Id; private List<Item> _itemList; public virtual IReadOnlyList<Item> ItemList => _itemList.ToImmutableList(); } public class Item { public string ItemId; priv

我有以下型号:

public class Entity
{
    public ObjectId Id;
    
    private List<Item> _itemList;
    public virtual IReadOnlyList<Item> ItemList => _itemList.ToImmutableList();
}

public class Item
{
    public string ItemId;
    
    private List<string> _subItemList;
    public virtual IReadOnlyList<string> SubItemList => _subItemList.ToImmutableList();
}
错误:

无法确定e=>e.ItemList的序列化信息

我想知道是否有任何优雅的方式使它工作

当然,如果我将
e.ItemList
替换为
e.\u ItemList
,并将
\u ItemList
公开,并且与
\u subItemList
相同,它可以工作,但会破坏封装

public virtual BsonMemberMap MapList<TMember>(Expression<Func<TEntity, TMember>> memberListLambda)
    where TMember : IEnumerable
{
    var memberExpression = memberListLambda.Body as MemberExpression;
    var fieldName = $"_{memberExpression.Member.Name.ToCamelCase()}";
    return MapField(fieldName).SetIgnoreIfNull(true);
}
var filter = Builders<Entity>.Filter;
var update = Builders<Entity>.Update;
Collection.UpdateManyAsync(
     filter.Eq(e => e.Id, id) & filter.ElemMatch(e => e.ItemList, Builders<Item>.Filter.Eq(i => i.ItemId, itemId)),
     update.AddToSet(e => e.ItemList[-1].SubItemList, subItemValue));