космос не возвращает никаких записей при использовании таблицы API

2

Как вы запрашиваете базу данных для возврата записей с помощью таблицы api?

Мои документы выглядят так:

{
  "id": "069c2612-355a-4659-b680-048b7ef19f5c",
  "_rid": "3RtVAMJ2mQkBAAAAAAAAAA==",
  "_self": "dbs/3RtVAA==/colls/3RtVAMJ2mQk=/docs/3RtVAMJ2mQkBAAAAAAAAAA==/",
  "_etag": "\"00000000-0000-0000-8cc3-3e8f580501d4\"",
  "FieldType": "InsuranceCode",
  "TranslateFrom": "XTH",
  "TranslateTo": "removed",
  "SourcePaerty": "TMH",
  "DestinationParty": "GE",
  "Key": "/TMH/GE/InsuranceCode",
  "_attachments": "attachments/",
  "_ts": 1544032329
}

Я пытаюсь просто читать записи, используя таблицу api для космоса:

public static IEnumerable<Translation> ConnectAndFetch () {
    var connectionString = "myconnectionstring;";
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse (connectionString);
    CloudTableClient tableClient = storageAccount.CreateCloudTableClient ();
    CloudTable table = tableClient.GetTableReference ("translationCollection");

    TableQuery<Translation> query = new TableQuery<Translation> ();

    return table.ExecuteQuery (query);
}

Однако записи не возвращаются!

Что я делаю неправильно? Как запросить мой набор данных и вернуть записи?

Пример использования приведен ниже:

    static void Main(string[] args)
    {
        var mystuff = CosmosTableConnector.ConnectAndFetch().Take(5).ToList();
    }

И как вы можете видеть 0 результатов:

Изображение 174551

  • 0
    Привет, какие обновления сейчас?
Теги:
azure
azure-cosmosdb
visual-studio-2017

1 ответ

0

Он попытался найти код таблицы api.net для запроса моих данных в таблице космос db table api. Меня устраивает.

static void Main(string[] args)
    {

        //CloudTable table = CreateTableAsync("j").Result;
        //var result = QueryTableAsync("test").Result;
        TableQuerySegment <ResponseEntity>  resultE=  QueryTableAsync("test").Result;
        foreach(ResponseEntity re in resultE)
        {
            Console.WriteLine("Timestamp:   "+re.Timestamp);
            Console.WriteLine("------------------------------------------");
        }
        Console.WriteLine("execute done");

        Console.ReadLine();

} 

public static async Task<TableQuerySegment<ResponseEntity>> QueryTableAsync(string tableName)
        {
            string cst = "DefaultEndpointsProtocol=https;AccountName=***;AccountKey=***;TableEndpoint=https://***.table.cosmosdb.azure.com:443/;";
            CloudStorageAccount storageAccount = CreateStorageAccountFromConnectionString(cst);
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
            CloudTable table = tableClient.GetTableReference(tableName);

            var filter = TableQuery.GenerateFilterConditionForDate(
                "Timestamp",
                QueryComparisons.GreaterThanOrEqual,
                DateTimeOffset.Now.AddDays(-10).Date);

            Console.WriteLine(filter);

            var query = new TableQuery<ResponseEntity>();

            var result = await table.ExecuteQuerySegmentedAsync(query, null);

            return result;

    }

Мои данные:

Изображение 174551

Выход:

Изображение 174551

Исходя из ваших данных, я предполагаю, что ваши данные хранятся внутри API-интерфейса Cosmos, а не API таблицы. Тогда есть другая база данных.

Если вы хотите запросить sql api, вам нужно обратиться к этому sdk: https://docs.microsoft.com/en-us/dotnet/api/overview/azure/cosmosdb?view=azure-dotnet

  • 0
    почему вы предполагаете, что мои данные находятся в космосе sql api, а не в таблице космоса api? я не уверен, насколько ваш пример полезен, так как он не делает то, что я делаю
  • 0
    потому что я заметил, что ваш образец документа содержит столбцы _etag, _ts, _self. Насколько мне известно, это сгенерированные системой свойства в cosmos db sql api. Конечно, вы можете добавить эти столбцы в таблицу API.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню