Azure,DocumentDB无法将POCO对象保存为文档

时间:2014-11-10 22:53:15

标签: azure poco azure-cosmosdb

我遇到了MS Azure DocumentDB的严重问题。

我知道它仅在预售中,但据我所知,可以将Dynamic和POCO对象保存为文档。当我保存动态对象时,它工作得很好(对象被添加到集合中):

     dynamic dynamicObject = new
                             {
                                 testId = "12",
                                 text = "aaa bbb ccc"
                             };
     await client.CreateDocumentAsync(collectionSelfLink, dynamicObject);

但是,当我尝试添加POCO obejct时,它不起作用(没有任何内容添加到集合中):

    public class House
    {
        [JsonProperty(PropertyName = "id")]
        public string HouseId { get; set; }

        [JsonProperty(PropertyName = "name")]
        public string Name { get; set; }

        [JsonProperty(PropertyName = "address")]
        public string Address { get; set; }
    }

    ------------------

    House house = new House() {HouseId = "1", Name="TestHouse", Address="asdasdasd"};
    await client.CreateDocumentAsync(collectionSelfLink, house);

其他一切都是一样的。


编辑:临时解决方案是从Microsoft.Azure.Documents.Document类继承您的POCO类。

1 个答案:

答案 0 :(得分:1)

根据我的评论,不能重复这一点。 这是我的测试项目:

  static void Main(string[] args)
  {
    House house = new House() { HouseId = "1", Name = "TestHouse", Address = "asdasdasd" };
    Document doc = client.CreateDocumentAsync(col.DocumentsLink, house).Result;

    Console.Write(doc.SelfLink);
    Console.ReadLine();
  }

  public class House
  {
    [JsonProperty(PropertyName = "id")]
    public string HouseId { get; set; }

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }

    [JsonProperty(PropertyName = "address")]
    public string Address { get; set; }
  }

导致创建1个文档并将doc.selfLink打印到控制台。