mongodb 无法动态创建类型为“System.Text.Json.Nodes.JsonObject”的示例,原因:未定义无参数构造函数,)

lf5gs5x2  于 2023-01-04  发布在  Go
关注(0)|答案(1)|浏览(114)

基本上,我在C#项目中有这样一个类:

public class Item
 {
     [BsonId]
     public ObjectId Id { get; set; }
     public string AppId { get; set; }

     public JsonObject Fields { get; set; }
 }

我已经使用POST请求在Mongo DB中创建了几个项目,主体如下:

{
    "AppId":"(an already existing app id)",
    "Fields":
                {
                    "NombreCliente": "Pepillo",
                    "Email": "pepiko@email.com",
                    "Telefono": "pp56656784",
                    "Localidad": "Pepeland",
                    "Facturas": ["848435498","0564864984"]
                }
    
}

而且它们是正确创建的。
每当我尝试获取这些项目时都会出现问题。标题中的错误弹出:
"(反序列化类divitiae_api. Models. Item的Fields属性时出错:无法动态创建类型为"System.Text.Json.Nodes.JsonObject"的示例。原因:未定义无参数构造函数。)"
我该怎么办?我真的迷路了...我试着创建一个无参数的构造函数,但还是失败了...

qq24tv8q

qq24tv8q1#

认为MongoDB.NET驱动程序不知道如何将对象Map到JsonObject,因为JsonObject不在它的库中。
一个简单的解决方法是将Fields数据类型修改为objectdynamic

public class Item
{
    ...

    public dynamic Fields { get; set; }
}

相关问题