2

我使用 MongoDB 提供的 C# 驱动程序将 MongoDB 数据库与 MVC4 WebAPI 一起使用。我有一个序列化问题。我收到以下错误,

    "ExceptionMessage=Error getting value from '__emptyInstance' on 'MongoDB.Bson.ObjectId'"

如果我在我的 HTTP 请求中将 Content-Type 更改为 xml,它就可以正常工作。我将不胜感激任何帮助。

我复制了下面的模型。

public class Subscriber
{
    public ObjectId _id;

    public long SubscriberId { get; set; }

    public Name Name { get; set; }

    public Address Address { get; set; }

    public string Phone { get; set; }

    public ICollection<Subscription> Subscription { get; set; }


    public Subscriber()
    {
        Name = new Name();
        Address = new Address();
        Subscription = new Collection<Subscription>();
}
}

解决方案

转换 _id 类型字符串并如下装饰字段就可以了

[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string _id;

参考:序列化 Mongo ObjectId 时出现 JSON.NET 转换错误

4

1 回答 1

1

对于任何尝试在答案中提到的“解决方案”的人:它根本行不通!

请检查this中的标记答案。

于 2013-11-03T10:43:10.840 回答