Ответ 1
В соответствии с этим вопросом: Отсутствует синхронный метод для ядра dotnet? Поддержка NetCore/Netstandard еще не включает синхронизацию реализации API.
Поскольку CreateQuery и ExecuteQuery - это все методы Sync, поэтому мы не могли использовать его в .NET Core, вы могли использовать только ExecuteQuerySegmentedAsync, TableQuery, Fluent API и обрабатывать маркер продолжения, который он возвращает. Более подробно, вы можете обратиться к следующим кодам:
Обновить:
public static void Main(string[] args)
{
var result = Get<BookTest3>("Aut_Fantasy", "Cert-0000000020", "DifferenetPartitionTest");
Console.Write(result.PartitionKey);
Console.Read();
}
public static T Get<T>(string partitionKey, string rowKey, string tableName) where T : ITableEntity, new()
{
CloudTable table = ConnectToTable(tableName);
TableQuery<T> employeeQuery = new TableQuery<T>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey),
TableOperators.And,
TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, rowKey))
).Take(1);
var re = new T();
TableContinuationToken continuationToken = null;
do
{
Task<TableQuerySegment<T>> employees = table.ExecuteQuerySegmentedAsync(employeeQuery, continuationToken);
TableQuerySegment<T> employeess = employees.Result;
re= employeess.FirstOrDefault();
continuationToken = employeess.ContinuationToken;
} while (continuationToken != null);
return re;
}
Надеюсь, что это может дать вам несколько советов.
Обновить код:
public static void Main(string[] args)
{
var tas = Get<BookTest3>("Aut_Fantasy", "Cert-0000000020", "DifferenetPartitionTest");
var result = tas.Result;
Console.Write(result.PartitionKey);
Console.Read();
}
public async static Task<T> Get<T>(string partitionKey, string rowKey, string tableName) where T : ITableEntity, new()
{
//new T();
CloudTable table = ConnectToTable(tableName);
TableQuery<T> employeeQuery = new TableQuery<T>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey),
TableOperators.And,
TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, rowKey))
).Take(1);
var re = new T();
TableContinuationToken continuationToken = null;
do
{
var employees = await table.ExecuteQuerySegmentedAsync(employeeQuery, continuationToken);
re = employees.FirstOrDefault();
continuationToken = employees.ContinuationToken;
} while (continuationToken != null);
return re;
}