Я пытаюсь использовать Microsoft.Azure.Management.Compute
ComputeManagementClient
для запроса ResourceSKUs . Но я не могу предоставить правильное значение для параметра фильтра. Без фильтра ответ довольно велик, и я хочу уменьшить его путем фильтрации с помощью resourceType = virtualMachines.
Более конкретно, это мой код:
ComputeManagementClient computeManagementClient = new ComputeManagementClient(credentials);
computeManagementClient.SubscriptionId = "**********";
string filter = "resourceType eq 'virtualMachines'"; // Doesn't work. All results are returned.
// string filter = "$filter=resourceType eq 'virtualMachines'"; // Doesn't work. All results are returned.
// string filter = "resourceType eq virtualMachines"; // Doesn't work. All results are returned.
// string filter = "resourceType eq 'Microsoft.Compute/virtualMachines'"; // Doesn't work. All results are returned.
// string filter = "resourceType = 'virtualMachines'"; // Doesn't work. All results are returned.
// string filter = "resourceType='virtualMachines'"; // Doesn't work. All results are returned.
IPage<ResourceSku> resourceSkus = await computeManagementClient.ResourceSkus.ListAsync(filter: filter);
Я также пытался использовать OData.FilterString.Generate
до создать строку фильтра:
Expression<Func<ResourceSku, bool>> filterPredicate = x => x.ResourceType.Equals("virtualMachines", StringComparison.OrdinalIgnoreCase);
string filter = FilterString.Generate(filterPredicate);
IPage<ResourceSku> resourceSkus = await computeManagementClient.ResourceSkus.ListAsync(filter: filter);
Есть идеи, какой правильный формат?