具有功能的azure表存储中的多个查询参数

问题描述 投票:0回答:2

在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
                };

在这里我传递了param“product”它的工作正常并返回预期的数据。但我想通过版本。类似于sql WHERE product ='proudctname'和version ='versionName'

就像遵循TSQL一样

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

我已经按照以下参考:

reference_1

reference_2

reference_3

但仍然无法解决它。

任何帮助将不胜感激。

azure-functions azure-table-storage
2个回答
1
投票

试试string finalFilter = TableQuery.CombineFilters(productQuery, TableOperators.And, versionQuery);吧。


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
                };

它还减少了一些代码。

© www.soinside.com 2019 - 2024. All rights reserved.