具有功能的天蓝色表存储中的多个查询参数

时间:2019-04-17 09:27:45

标签: azure-functions azure-table-storage

在azure函数中无法在azure表存储上传递两个参数。

我尝试过的事情:

我在函数上的参数:

        // convert all request perameter into Json object
        var content = req.Content;
        string jsonContent = content.ReadAsStringAsync().Result;
        dynamic requestPram = JsonConvert.DeserializeObject<Product(jsonContent);


        // extract each param
        string product = requestPram.product;

        string version = requestPram.version;

我的存储查询

 var query = new TableQuery()
                {
                    FilterString = TableQuery.GenerateFilterCondition("ProductName", QueryComparisons.Equal, product),
                    SelectColumns = new string[] {
                    "ProductName","EntitledProductsCurrentPrevious","MainstreamSupportEndDate"
                },
                    TakeCount = 200
                };

在这里,我已经传递了参数“产品”,它的工作正常,并返回了预期的数据。但我也想通过版本。 类似于sql WHERE产品='产品名称'和版本='版本名称'

就像遵循TSQL

SELECT Product,EntitledProductsCurrentPrevious,MainstreamSupportEndDate 
FROM BotProductList 
WHERE Product = 'Microsoft Dynamics CRM' AND 
EntitledProductsCurrentPrevious = '2016'

我遵循以下参考文献:

reference_1

reference_2

reference_3

但是仍然无法解决。

任何帮助将不胜感激。预先感谢。

2 个答案:

答案 0 :(得分:1)

改为尝试string finalFilter = TableQuery.CombineFilters(productQuery, TableOperators.And, versionQuery);

答案 1 :(得分:1)

经过许多努力,我以以下格式解决了该问题:

  
var query = new TableQuery()
                {
                    FilterString = string.Format("PartitionKey eq '{0}' and RowKey eq '{1}'", product, version),
                    SelectColumns = new string[] {
                    "ProductName","EntitledProductsCurrentPrevious","MainstreamSupportEndDate"
                },
                    TakeCount = 200
                };

它还减少了一些代码行。