如何修复:无法将类型为"MongoDB. Bson. BsonArray"的对象强制转换为类型"MongoDB. Bson. BsonBoolean"

t40tm48m  于 2023-02-07  发布在  Go
关注(0)|答案(2)|浏览(222)

我有一个ASP.NET API来处理数据到Mongo数据库。我还需要发送一些动态/不规则的数据为一些文件,这将有一对夫妇的额外属性。
我尝试使用官方教程中的this cod e,但是出现此错误

Unable to cast object of type 'MongoDB.Bson.BsonString' to type 'MongoDB.Bson.BsonBoolean'.

这是来自模型类的代码:

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

    [BsonElement("Name")] 
    public string? Name { get; set; }

    [BsonExtraElements]
    public BsonDocument? ExtraElements { get; set; }
}

这是控制器代码

[ApiController]
[Route("api/[controller]")]
public class IncidentController : ControllerBase
{
    private readonly IncidentService _incidentService;

    public IncidentController(IncidentService incidentService)
    {
        _incidentService = incidentService;
    }

    [HttpGet]
    public async Task<List<Incident>> Get() =>
        await _incidentService.GetAllIncidents();
}

而服务

public async Task<List<Incident>> GetAllIncidents() =>
        await _incidents.Find(new BsonDocument()).ToListAsync();

奇怪的是,在我实际执行操作之前,崩溃也发生在POST中的Swagger中。

jaql4c8m

jaql4c8m1#

ExtraElement字段在数据库中是布尔值,但您尝试转换列表

aydmsdu9

aydmsdu92#

刚刚有这个确切的错误。原来我有关于Bson类型的冲突引用。

相关问题