【问题标题】:How save GUID ID mongodb如何保存 GUID ID mongodb
【发布时间】:2025-11-26 14:45:01
【问题描述】:

我正在尝试在 mongodb 中保存 "guid id",但是当我保存它时,它会保存为二进制文件。 当您使用 get 时,即使是 guid,它也找不到。 如何保存为相同的guid格式?

我希望你如何保存:ownerId: "b0164f61-a203-478b-becc-b9a67312981d"

他如何保存:ownerId: Binary('sBZPYaIDR4u+zLmmcxKYHQ==')

我的视图模型

public class EmployeeViewModel
    {
        [BsonId]
        public Guid ownerId { get; set; }
        [BsonElement("personalData")]
        public PersonalDataViewModel personalData { get; set; }
        [BsonElement("address")]
        public AddressViewModel address { get; set; }
}

【问题讨论】:

  • 所以你想把它保存为字符串?
  • 是的,可以。但我尝试将他另存为字符串,但他另存为二进制

标签: c# asp.net mongodb model-view-controller


【解决方案1】:

为 BsonId 指定 IdGenerator。

public class EmployeeViewModel
    {
        [BsonId(IdGenerator=typeof(StringObjectIdGenerator))]
        public Guid ownerId { get; set; }
        [BsonElement("personalData")]
        public PersonalDataViewModel personalData { get; set; }
        [BsonElement("address")]
        public AddressViewModel address { get; set; }
}

https://codingcanvas.com/using-mongodb-_id-field-with-c-pocos/

【讨论】:

  • 工作得很好,但在 IdGenerator 之前删除了 "("。
  • 你好,因为这个变化.net指责这个错误:元素'Id'与类的任何字段或属性不匹配。我需要创建新问题,或者您可以帮助我吗?