Ran*_*oet 3 mongodb mongodb-.net-driver
我有一个基类Entity,它有一个字符串Id成员和一个派生类A.
但是,在创建派生类的新实例并使用InsertOneAsync将其添加到我的集合时,文档将添加到数据库中,并将null作为Id值.
使用ObjectId作为Id似乎确实有效,但我试图阻止我的模型中的MongoDB依赖.
我还尝试了以下代码,但结果是一样的:
BsonClassMap.RegisterClassMap<Entity>(cm =>
{
cm.MapIdField(x => x.Id).SetSerializer(new StringSerializer(BsonType.ObjectId));
});
Run Code Online (Sandbox Code Playgroud)
小智 13
我有同样的问题,并最终使用这些属性(使用2.0驱动程序):
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
[BsonIgnoreIfDefault]
Run Code Online (Sandbox Code Playgroud)
或者等效的BsonClassMap流畅的界面:
BsonClassMap.RegisterClassMap<Entity>(cm =>
{
cm.MapIdField(x => x.Id)
.SetSerializer(new StringSerializer(BsonType.ObjectId))
.SetIgnoreIfDefault(true);
});
Run Code Online (Sandbox Code Playgroud)
我尝试使用.ReplaceOneAsync和Upsert一样工作,但总是让id仍然为null
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |