Свободные методы не могут быть вызваны для запроса, созданного с помощью CloudTable.CreateQuery <T>() - PullRequest
0 голосов
/ 10 октября 2018

Я использую WindowsAzure.Storage 9.1.1 пакет nuget, и при запуске:

var table = GetTableReference(vehicleStatusTableName);
var condition = TableQuery.CombineFilters(
            TableQuery.GenerateFilterCondition(partitionKey, QueryComparisons.Equal, vehicleId.ToString()),
            TableOperators.And,
            TableQuery.GenerateFilterCondition(rowKey, QueryComparisons.Equal, string.Empty));

var query = table.CreateQuery<VehicleStatusEntity>().Where(condition);

Выдается исключение:

Свободные методы не могут быть вызваны для запроса, созданного с помощью CloudTable.CreateQuery ()

Я думаю, что делал это раньше, но сейчас не могу.Что не так, почему я получаю эту ошибку?

1 Ответ

0 голосов
/ 11 октября 2018

Для вашего запроса вы должны использовать эту строку кода:

  var query =new TableQuery<CustomerEntity>().Where(condition);

Пример демонстрации, как показано ниже:

  CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
  CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
  CloudTable table = tableClient.GetTableReference("humans");

  var condition = TableQuery.CombineFilters(
                TableQuery.GenerateFilterCondition("PartitionKey",QueryComparisons.Equal, "Harp222"),
                TableOperators.And,
                TableQuery.GenerateFilterCondition("RowKey",QueryComparisons.Equal, "Walter222")
                );

   var query =new TableQuery<CustomerEntity>().Where(condition);

   foreach (CustomerEntity entity in table.ExecuteQuery(query))
   {
      Console.WriteLine("{0}, {1}\t{2}\t{3}", entity.PartitionKey, entity.RowKey,
                        entity.Email, entity.PhoneNumber);
   }

Результат теста, как показано ниже: enter image description here

WindowsAzure.Storage 9.1.1 снимок экрана пакета nuget: enter image description here

...