Başarısız; eksik - - 'id' gereken özellikler nedeniyle [ "giriş içeriği geçersiz "," İstek yükü geçersizdir. Geçerli bir istek yükü sağladığından emin olun. "]DocumentDB ReplaceDocument ReplaceDocumentAsync çağrılırken .NET SDK, aşağıdaki hatayı alıyorum kullanarak Azure DocumentDB yılında
Yeni bir yorum eklendiğinde, bir belgeyi aldığımda, yorumu ekledim ve ReplaceDocumentAsync'i çağırdığım bir blog yazısı senaryosudur. İşte bunun için gereken adımları:
string query = "SELECT * FROM Posts p WHERE p.id = 'some guid'";
var post = Client.CreateDocumentQuery<Post>(Collection.DocumentsLink, query)
.AsEnumerable().FirstOrDefault();
post.Comments.Add(comment);
Document doc = Client.CreateDocumentQuery(Collection.DocumentsLink)
.Where(d => d.Id == id)
.AsEnumerable()
.FirstOrDefault();
var document = await Client.ReplaceDocumentAsync(doc.SelfLink, item);
Mesaj sınıfı:
public class Post
{
public Post()
{
Comments = new List<Comment>();
}
public Guid Id { get; set; }
public List<Comment> Comments { get; set; }
...
}
yanlış yapıyorum?
Yup - değiştirdiğiniz belgenin gövdesinde "id" nin bulunduğundan emin olmalısınız. Sadece açıklığa kavuşturmak için - bir "id" sadece bir belge oluştururken mevcut değilse otomatik olarak oluşturulur. 'id', değiştirmede otomatik olarak oluşturulmuyor (bu nedenle hata mesajı). –
DocumentDb'nin beklediği özelliğin adını değiştirmenin herhangi bir yolu var mı (JsonProperty'nin özniteliğini nesneye veya JObject'e eklemenin aksine (çeşitli karmaşık ve içeriğe duyarlı nedenlerden dolayı bunu kolayca yapamam). Örneğin, DocumentDb'ye "id" veya "DocId" veya "id" yerine bunun gibi bir şeyi kullanmasını söyleyin. –