Странное поведение поставщика MongoDB LINQ для полей, называемых «id»

Вот's документ JSON, где провайдер Mongo LINQ не работает:

{"results":
     {"text":"@twitterapi  http://tinyurl.com/ctrefg",
     "to_user_id":396524,
     "to_user":"TwitterAPI",
     "from_user":"jkoum",
     "metadata":
     {
      "result_type":"popular",
      "recent_retweets": 109
     },
     "id":1478555574, 
     "from_user_id":1833773,
     "iso_language_code":"nl",
     "source":"<a href="\"http://twitter.com/\"">twitter",
     "profile_image_url":"http://s3.amazonaws.com/twitter_production/profile_images/118412707/2522215727_a5f07da155_b_normal.jpg",
     "created_at":"Wed, 08 Apr 2009 19:22:10 +0000",
     "since_id":0,
     "max_id":1480307926,
     "refresh_url":"?since_id=1480307926&q=%40twitterapi",
     "results_per_page":15,
     "next_page":"?page=2&max_id=1480307926&q=%40twitterapi",
     "completed_in":0.031704,
     "page":1,
     "query":"%40twitterapi"}
}
</a>

Обратите внимание, "Я бы" поле. Вот соответствующие определения сущности C #:

class Twitter
{
    [BsonId]
    public ObjectId Id { get; set; }
    public Result results { get; set; }
}

private class Result
{
    public string text { get; set; }
    public int to_user_id { get; set; }
    public string to_user { get; set; }
    public string from_user { get; set; }
    public Metadata metadata { get; set; }
    public int id { get; set; }
    public int from_user_id { get; set; }
    public string iso_language_code { get; set; }
    public string source { get; set; }
    public string profile_image_url { get; set; }
    public string created_at { get; set; }
    public int since_id { get; set; }
    public int max_id { get; set; }
    public string refresh_url { get; set; }
    public int results_per_page { get; set; }
    public string next_page { get; set; }
    public double completed_in { get; set; }
    public int page { get; set; }
    public string query { get; set; }
}

class Metadata
{
    public string result_type { get; set; }
    public int recent_retweets { get; set; }
}

Если я создаюTwitter» собрать и сохранить документ выше, затем, когда я запрашиваю его, используя поставщика Mongo LINQ, он генерирует исключение FileFormatException: "ЭлементЯ бы' не соответствует ни одному полю или свойству класса Mongo.Context.Tests.NativeTests + Result "

Однако есть два альтернативных решения этой проблемы:

Переименовать Результат "Я бы" поле, например к "IDD» как в JSON doc, так и в классе Result. Тогда запрос LINQ работает.Держать "Я бы" поле, но в дополнение добавить поле "Я бы" к классу Result и пометьте его атрибутом [BsonId]. Теперь класс Result содержит обаЯ бы" а также "Я бы" поля, но запрос работает!

Я использую Mongo API для запросов к коллекции, все работает нормально, поэтому, я думаю, это должно быть ошибкой в поставщике MongoDB LINQ. "Я бы" во вложенном элементе JSON не должно быть зарезервированной работы, не так ли?

ОБНОВИТЬ: Вот's результат выполнения собственного запроса API:

> db.Twitter.find().limit(1);

{ "_id" : ObjectId("50c9d3a4870f4f17e049332b"),
 "results" : { 
    "text" : "@twitterapi  http://tinyurl.com/ctrefg", 
    "to_user_id" : 396524, 
    "to_user" : "TwitterAPI", 
    "from_user" : "jkoum", 
    "metadata" : { "result_type" : "popular", "recent_retweets" : 109 }, 
    "id" : 1478555574, 
    "from_user_id" : 1833773, "
    iso_language_code" : "nl", 
    "source" : "<a href="\"http://twitter.com/\"">twitter</a>", 
    "profile_image_url" : "http://s3.amazonaws.com/twitter_production/profile_images/118412707/2522215727_a5f07da155_b_normal.jpg", 
    "created_at" : "Wed, 08 Apr 2009 19:22:10 +0000", 
    "since_id" : 0, 
    "max_id" : 1480307926, 
    "refresh_url" : "?since_id=1480307926&q=%40twitterapi", "results_per_page" : 15,    "next_page" : "?page=2&max_id=1480307926&q=%40twitterapi", 
    "completed_in" : 0.031704, 
    "page" : 1, 
    "query" : "%40twitterapi" 
    } 
}

Ответы на вопрос(2)

Ваш ответ на вопрос