mongodb c#driver如何插入带有生成id的嵌套实体

时间:2016-06-29 12:57:34

标签: c# mongodb mongodb-csharp-2.0

我试图插入嵌套实体,它创建了嵌套实体但它的id仍为null。 我无法在其他任何地方找到答案或例子。请帮帮我。

我做了什么?

我有2个对象

menu
{
   Id
   items[]
}

Item
{
   Id
}

我用

映射了两个对象的id
map.AutoMap();
map.SetIdMember(CreateIdMapper(map.GetMemberMap(p => p.Id)));

protected BsonMemberMap CreateIdMapper(BsonMemberMap bsonMemberMap)
{
   return bsonMemberMap
      .SetIdGenerator(StringObjectIdGenerator.Instance)
      .SetSerializer(CreateStringSerializer());
}

protected StringSerializer CreateStringSerializer()
{
    return new StringSerializer(BsonType.ObjectId);
}

这是更新

var filter = Builders<Menu>.Filter.Eq(x => x.Id, menu.Id);
var update = Builders<Menu>.Update.AddToSet(x=>x.Items, item);   


await m_mongoClientProvider.GetCollection<Menu>(MongoCollection.Menu)
                .UpdateOneAsync(filter, update);

我做错了什么? 感谢

0 个答案:

没有答案