如何为 Azure Compute 的 C# 客户端指定过滤器?
How to specify filters for Azure Compute's C# client?
我正在尝试使用 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
来 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);
知道正确的格式是什么吗?
我正在尝试使用 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
来 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);
知道正确的格式是什么吗?