2017-06-23 74 views
0

我已經使用documentdb插入了兩個json文檔,並將它們放在名爲Hotelwithroomtype的列表中。我想用一些新值更新已創建的json文檔,然後將它們重新創建爲新文檔。這裏是我的代碼具有指定標識或名稱的資源已存在 - Dcoumentdb

foreach (var item in Hotelwithroomtype) 
      { 
       foreach (var cal in Calendardata) 
       { 

        item.CalendarDate = Convert.ToDateTime(cal.CalendarDate); 
        item.CalendarDay = cal.Calendarday; 
        item.issweekday = Convert.ToBoolean(cal.isweekday); 
        item.issweekend = Convert.ToBoolean(cal.isweekend); 

        foreach (var prop in item.RoomTypes.RoomTypeList) 
        { 

         prop.Mon = "0"; 
         prop.Tue = "0"; 
         prop.Wed = "0"; 
         prop.Thur = "0"; 
         prop.Fri = "0"; 
         prop.Sat = "0"; 
         prop.Sun = "0"; 
         prop.Count = "0"; 
         prop.CountType = "0"; 

        } 
        // var docExists = client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri("next", "nextCollection")) 
        //.Where(doc => doc.Id == item.id) 
        //.Select(doc => doc.Id) 
        //.AsEnumerable() 
        //.Any(); 

        await client.CreateDocumentAsync(collectionLink, item); 

       } 


      } 

我插入

{ 
"HotelCriteria": { 
    "HotelCode": "101920", 
    "HotelName": "TestThe Zuri" 
}, 
"RoomTypes": { 
    "RoomTypeList": [ 
     { 
      "InvTypeCode": "ZCR", 
      "Name": "Zuri Club Room", 
      "BaseOccupancy": 2, 
      "MaxOccupancy": 3, 
      "Quantity": 66, 
      "IsRoomActive": 1, 
      "RoomDescription": "", 
      "Availability": 0, 
      "Mon": "0", 
      "Tue": "0", 
      "Wed": "0", 
      "Thur": "0", 
      "Fri": "0", 
      "Sat": "0", 
      "Sun": "0", 
      "CountType": "0", 
      "Count": "0" 
     }, 
     { 
      "InvTypeCode": "ZRR", 
      "Name": "Zuri Room", 
      "BaseOccupancy": 2, 
      "MaxOccupancy": 3, 
      "Quantity": 90, 
      "IsRoomActive": 1, 
      "RoomDescription": "", 
      "Availability": 0, 
      "Mon": "0", 
      "Tue": "0", 
      "Wed": "0", 
      "Thur": "0", 
      "Fri": "0", 
      "Sat": "0", 
      "Sun": "0", 
      "CountType": "0", 
      "Count": "0" 
     }, 
     { 
      "InvTypeCode": "ZSR", 
      "Name": "Zuri Suite Room", 
      "BaseOccupancy": 2, 
      "MaxOccupancy": 3, 
      "Quantity": 4, 
      "IsRoomActive": 1, 
      "RoomDescription": "", 
      "Availability": 0, 
      "Mon": "0", 
      "Tue": "0", 
      "Wed": "0", 
      "Thur": "0", 
      "Fri": "0", 
      "Sat": "0", 
      "Sun": "0", 
      "CountType": "0", 
      "Count": "0" 
     } 
    ] 
}, 
"RatePlans": { 
    "RatePlanList": [ 
     { 
      "RatePlanCode": "B2C00001", 
      "RatePlanCategory": "B2C", 
      "RatePlanStatusType": 1, 
      "RatePlanName": "Channel Rates", 
      "Description": "Channel Rates", 
      "InvTypeCode": "ZCR", 
      "MealPlanCode": "CP", 
      "MealPlanDesc": "Continental Plan", 
      "Start": "2016-06-27", 
      "End": "2017-03-31", 
      "CurrencyCode": "INR" 
     }, 
     { 
      "RatePlanCode": "B2C00001", 
      "RatePlanCategory": "B2C", 
      "RatePlanStatusType": 1, 
      "RatePlanName": "Channel Rates", 
      "Description": "Channel Rates", 
      "InvTypeCode": "ZRR", 
      "MealPlanCode": "CP", 
      "MealPlanDesc": "Continental Plan", 
      "Start": "2016-06-27", 
      "End": "2017-03-31", 
      "CurrencyCode": "INR" 
     }, 
     { 
      "RatePlanCode": "B2C00001", 
      "RatePlanCategory": "B2C", 
      "RatePlanStatusType": 1, 
      "RatePlanName": "Channel Rates", 
      "Description": "Channel Rates", 
      "InvTypeCode": "ZSR", 
      "MealPlanCode": "CP", 
      "MealPlanDesc": "Continental Plan", 
      "Start": "2016-06-27", 
      "End": "2017-03-31", 
      "CurrencyCode": "INR" 
     } 
    ] 
}, 
"Inclusions": { 
    "InclusionList": [ 
     { 
      "MealPlanCode": "CP", 
      "MealPlanDesc": "Continental Plan" 
     } 
    ] 
}, 
"id": "8f236805-d3a5-498b-9cc3-efa7448faa63", 
"_rid": "SVcZALakfQAEAAAAAAAAAA==", 
"_self": "dbs/SVcZAA==/colls/SVcZALakfQA=/docs/SVcZALakfQAEAAAAAAAAAA==/", 
"_etag": "\"00004b09-0000-0000-0000-594a02e80000\"", 
"_attachments": "attachments/", 
"_ts": 1498022618 

}

我想使用更新的值當前文檔,但需要他們成爲新document.When我試圖創建我的樣品JSON文檔得到以下錯誤「指定的ID或名稱的資源已經存在」。任何幫助將非常感激。

感謝

回答

1

正在嘗試,而不是一個新的文檔與id等於現有文檔的id。這是不允許的,所以操作失敗。在插入修改的副本之前,您需要爲其分配新的id

+0

任何想法如何做到這一點,或者我可以創建一個新的列表,然後將它們添加爲新文檔?或者,如果可能的話,如何禁用自動ID生成,並使用我們的財產之一作爲身份證在上述情況下,我可以使用酒店代碼作爲ID? – Melvin

+0

@Melvin我猜你的課程已經擁有'id'屬性(我也可以在註釋代碼中看到它 - item.id')。否則,我會希望你的代碼工作。如果你有'id',你需要重置它。 'id'也可以是經過計算的屬性,因此您可以在其getter/setter中使用酒店代碼。 – Mikhail

+0

該ID是自動生成的我沒有手動設置它們,所以有什麼選擇,我可以在創建文檔時禁用該自動生成? – Melvin

相關問題