我有一个具有字符串Id成员和派生类A的基类Entity。
但是,当创建派生类的新实例并使用InsertOneAsync将其添加到我的集合中时,文档将以null作为Id值添加到数据库中。
使用ObjectId作为ID似乎可以正常工作,但是我试图在模型中防止MongoDB依赖性。
我还尝试了以下代码,但结果是相同的:
BsonClassMap.RegisterClassMap<Entity>(cm =>
{
cm.MapIdField(x => x.Id).SetSerializer(new StringSerializer(BsonType.ObjectId));
});
我遇到了同样的问题,最后使它们(具有2.0驱动程序)与以下属性一起工作:
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
[BsonIgnoreIfDefault]
或等效的BsonClassMap流利接口:
BsonClassMap.RegisterClassMap<Entity>(cm =>
{
cm.MapIdField(x => x.Id)
.SetSerializer(new StringSerializer(BsonType.ObjectId))
.SetIgnoreIfDefault(true);
});
我试图在Upsert上使用.ReplaceOneAsync进行相同的操作,但是始终使id仍然为null
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句