首页 > 解决方案 > get all product list return with entry array list inside of product

问题描述

I have done a get all product api.but it returning like blow. please correct me ,what did i wrong ?

My repository code:

 public async Task<IEnumerable<Product>> FetchProductListAsync(
         Guid? itemId)
        {

            var feedOptions =
                  new FeedOptions
                  {
                      MaxItemCount = -1,
                      EnableCrossPartitionQuery = true
                  };

            var query =
                $"SELECT product FROM catalog join industry in catalog.Industy join category in industry.Category join product in category.Subcategory.Product where catalog.id ='" + itemId + "'";

            var queryDefinition =
                new SqlQuerySpec(query);

            var orderDocumentQuery =
                 _cosmosClient.CreateDocumentQuery<Product>(
                     UriFactory.CreateDocumentCollectionUri(
                         _azureCosmosDbOptions.Value.DatabaseId, "catalog"), queryDefinition, feedOptions)
                     .AsDocumentQuery();

            var childrenSqlQuery = _cosmosClient.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri(_azureCosmosDbOptions.Value.DatabaseId, "catalog"), query).AsDocumentQuery();
            var result = await childrenSqlQuery.ExecuteNextAsync();
            if (result.Any())
            {
                if (result.FirstOrDefault() != null)
                {
                    var countObj = result.FirstOrDefault();

                }
            }

            var orderList =
                new List<Product>();

            while (orderDocumentQuery.HasMoreResults)
            {
                orderList.AddRange(
                    await orderDocumentQuery.ExecuteNextAsync<Product>());
                Console.WriteLine(orderList);
            }

            return orderList;
        }

Actual input return addons and method of preparation as null. Actual Output:

[
  {
    "Id": "12a22f6a-c75a-4622-b2ae-819714737147",
    "hasMethodOfPreparation": false,
    "methodOfPreparation": null,
    "addons": null
  }
]

But i need full array to return like blow Expected output:

[
                            {
                                "Id": "d8ca2be8-845e-4f3b-854a-fdd10653a2ce",

                                "MethodOfPreparation": [
                                    {
                                        "id": "6eac1ea7-0d71-4181-a7b5-8a034b1922c3",
                                    }
                                ],
                                "Addons": [
                                    {
                                        "id": "72902f16-2a39-44bc-987b-4e17fc0756fc"
                                    }
                                ]
                            }
                        ]

How to solve this . For example i need to get all product for a catalog id.

标签: sqlasp.net-coreazure-cosmosdb

解决方案


推荐阅读