【问题标题】:Mongo C# deserialize ObjectId to stringMongo C# 将 ObjectId 反序列化为字符串
【发布时间】:2021-01-08 08:31:39
【问题描述】:

我已经改变了我所有的 C# 实体:

public ObjectId Id { get; set; }

到这里:

[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }

因为我需要使用 Rebus 并发送 Id,但 ObjectId 在不添加自定义序列化程序的情况下是不可序列化的。实际上字符串在其他地方更方便(例如:MVC控制器中的模型绑定)。

无论如何,我认为更改不会有问题,但现在我在尝试将 ObjectId 反序列化为字符串时遇到异常:我的 ApplicationUser 类有一个

IEnumerable<string> Friendships { get; set; }

包含来自 Friendship 实体的 Id 列表。它们是作为 ObjectId 创建的,但现在我想将它们作为字符串处理......我现在如何在代码中处理它?

【问题讨论】:

标签: string mongodb bson objectid


【解决方案1】:

不将Id设置为ObjectId

将其设置为具有这些属性的字符串

[BsonId(IdGenerator = typeof(StringObjectIdGenerator))] [BsonRepresentation(BsonType.ObjectId)]

public string ID { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多