У меня есть приложение Xamarin, и я использую Cosmos DB в Azure, со стороны БД у меня есть такой документ:
{
"_id" : ObjectId("5b84142d07bf8638bcf7a089"),
"business_id" : "5b81309a7dfa952bb4036f55",
"contentType" : "image",
"media" : "https://fimgs.net/images/perfume/375x500.30796.jpg",
"id" : "22155414-ee2b-3191-c180-3bc9d40db16b"
}
На стороне Xamarin я использую следующий код:
List<TempObject> TempObjects = new List<TempObject>();
Uri collectionUri = UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId);
var query = _client.CreateDocumentQuery<TempObject>(collectionUri).AsDocumentQuery();
while (query.HasMoreResults)
{
TempObjects.AddRange( await query.ExecuteNextAsync<TempObject>() );
}
Вот определение класса данных:
class TempObject
{
//[JsonProperty(PropertyName = "_id")]
//public string _id { get; set; }
[JsonProperty(PropertyName = "business_id")]
public string business_id { get; set; }
[JsonProperty(PropertyName = "contentType")]
public string contentType { get; set; }
[JsonProperty(PropertyName = "media")]
public string media { get; set; }
[JsonProperty(PropertyName = "id")]
public string id { get; set; }
}
Проблема в том, что он возвращает правильное количество объектов, но все свойства равны нулю!
Коллекция была создана с настройками по умолчанию, а база данных почти пуста, в этой коллекции только 2 документа!
Код, похоже, точно соответствует всем учебникам, которые я нашел!
В основном это: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/cosmosdb/consuming
Кроме того, когда я использую локальный эмулятор CosmosDB с той же базой данных, он работает, но не в Azure! Означает ли это, что мой код правильный и проблема связана с Azure?
Есть идеи по этому поводу? Или способ отладки такого рода проблем?
Спасибо
Редактировать: я также попробовал с API-интерфейсом Cosmonaut, вот код:
var cosmosSettings = new CosmosStoreSettings("soclozecosmosdb", "https://soclozedb.documents.azure.com:443/", "E2ipML2QWNVjWITKhX0K0pn7ooCWxbkEk0xkQIC6QIWQCmMjsLU3D2SRTLaIk0dB3bm4k4mWhlpYYpbgsrk2xw==");
ICosmosStore<TempObject> store = new CosmosStore<TempObject>(cosmosSettings);
var users = store.Query().ToList();
Но запрос возвращает 0 объектов!