Как вы запрашиваете базу данных для возврата записей с помощью таблицы 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 результатов:
Он попытался найти код таблицы 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;
}
Мои данные:
Выход:
Исходя из ваших данных, я предполагаю, что ваши данные хранятся внутри API-интерфейса Cosmos, а не API таблицы. Тогда есть другая база данных.
Если вы хотите запросить sql api, вам нужно обратиться к этому sdk: https://docs.microsoft.com/en-us/dotnet/api/overview/azure/cosmosdb?view=azure-dotnet