C#获取mongoDB的ObjectId 映射到对象中失败
从mongoDB聚合获取到了 Bson,现在想把这个Bson转换为实体对象
可是 ObjectId始终无法转换,希望大牛们解一下惑
可以怎样把 Bson 绑定到一个自定义 对象上
或者,怎样可以把获取到的 ObjectId 转 string
感激不尽
在步骤二,Json转换为实体对象时,提示我ObjectId转换失败
详细:
1.这是通过聚合和获取到的结果
`
List<BsonDocument> pipe = mRoot.answerRecord.GetAggregate()
.Match(x => x.userId == userId && x.subjectId == subjectId)
.Match(x => x.correct == 0 || x.correct == 1)
.Sort(BsonDocument.Parse("{ 'mtime' : -1 }"))
.Lookup("question", "questionId", "_id", "question")
.Skip(pageSize * (page - 1))
.Limit(pageSize).ToList();
`
2.这是我尝试遍历 并转换为实体对象
`foreach(var p in pipe)
{
//TODO ObjectId 转换存疑
var j = p.ToJson();
ErrorRecordsResult r = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorRecordsResult>(j);
results.Add(r);
}
`
3.实体对象
`public class ErrorRecordsResult
{
public ObjectId _id { get; set; }
public int cate;
}`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你用的是
MongoDB.Bson
这个库么?直接ToString()
不就完了?针对评论区的补充:
其实可以直接转换为指定类对象,而不用先转换为BsonDocument的