[英]Working with Azure DocumentDB and adding object to Document
我正在使用“圖書館”應用程序,或者說必須連接到Azure DocumentDB。 在我的DocumentDB中,我有一個BookCollection和一個Document-BookDocument。 每次將新書添加到系統中時,都必須使用新的Book對象更新此文檔,而我的問題是:我該怎么做? 到目前為止,我有這個:
public static async Task AddBook(Book newBook)
{
using (_client = new DocumentClient(new Uri(_endPointURL),_authKey))
{
Database database = (from db in _client.CreateDatabaseQuery()
where db.Id == "BookAssignment"
select db).AsEnumerable().FirstOrDefault();
Console.WriteLine("Connected to Database: " + database.Id);
//Create collection
string dbCollectionBooks = "Books";
DocumentCollection dbCollection =
(from collections in _client.CreateDocumentCollectionQuery(database.SelfLink)
where collections.Id == dbCollectionBooks
select collections).AsEnumerable().FirstOrDefault();
if (dbCollection == null)
{
dbCollection =
await
_client.CreateDocumentCollectionAsync(database.SelfLink,
new DocumentCollection() {Id = dbCollectionBooks});
}
Console.WriteLine("Connected to DocumentCollection" + dbCollection.Id);
//Document
string doucmentID = "BookDocument";
Document document = (from documents in _client.CreateDocumentQuery(database.SelfLink)
where documents.Id == doucmentID
select documents).AsEnumerable().FirstOrDefault();
if (document == null)
{
var _newBook = new Book();
_newBook.Bookcase.Category = newBook.Bookcase.Category;
_newBook.ISBN = newBook.ISBN;
_newBook.Title = newBook.Title;
_newBook.Author = newBook.Author;
_newBook.RealeaseDate = newBook.RealeaseDate;
_newBook.Colour = newBook.Colour;
_newBook.Genre = newBook.Genre;
document = await _client.CreateDocumentAsync(dbCollection.SelfLink, _newBook);
BookContainer.Add(_newBook);
}
}
}
看起來您在尋找ReplaceDocumentAsync方法。
您的呼叫將類似於await client.ReplaceDocumentAsync(document.SelfLink,_newBook);
請記住,如果需要在更新之前檢查現有文檔的某些屬性,則還可以創建具有特定類型(例如“書籍”)的文檔查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.