Я вызываю свою базу данных DocumentDB, чтобы запросить человека. Если человека нет в базе данных, я пытаюсь добавить его в свою коллекцию.
Когда я проверяю коллекцию, я вижу, что создается новый человек, но мой код просто зависает, когда я делаю второй вызов, чтобы вставить человека в коллекцию. Есть идеи, почему мой код зависает? Я не включаю весь код для экономии места, например. GetDatabaseAsync(), GetCollectionAsync() и т. д. работают.
using (client = new DocumentClient(new Uri(endPointUrl), authorizationKey))
{
//Get the database
var database = await GetDatabaseAsync();
//Get the Document Collection
var collection = await GetCollectionAsync(database.SelfLink, "People");
string sqlQuery = "SELECT * FROM People f WHERE f.id = \"" + user.PersonId + "\"";
dynamic doc = client.CreateDocumentQuery(collection.SelfLink, sqlQuery).AsEnumerable().FirstOrDefault();
if (doc == null)
{
// User is not in the database. Add user to the database
try
{
**// This is where the code is hanging. It creates the user in my collection though!**
await client.CreateDocumentAsync(collection.DocumentsLink, user);
}
catch
{
// Handle error
}
}
else
{
// User is already in the system.
user = doc;
}
}
Возможно ли, что код зависает, потому что я пытаюсь запросить и вставить документ внутри одного и того же оператора USING.
Не лучше ли мне создать новый экземпляр клиента и создать отдельный блок для обработки документа INSERT?