Веб-апи возвращающее-фильтрованную nested- json -значения - PullRequest
0 голосов
/ 07 января 2020

Здравствуйте, я хотел бы задать вопрос о том, как работает фильтрация в веб-API с использованием вложенных JSON значений ...

    public List<Root> definition()
    {
        var all = _db
            .kpi_definition
            .Include("KPI")
            .Select(dl => new Root
            {
                //chart_type = dl.chart_type,
                chart_type = new List<Chart>
                {
                   new Chart { entity_name = dl.entity_name ,
                               entity_display_name = dl.entity_display_name,
                               kpi = new List<KPI>
                               {
                                  new KPI {
                                           kpi_name = dl.kpi_name,
                                           kpi_display_name = dl.kpi_display_name,
                                           required = new List<Required>
                                           {
                                               new Required
                                               {
                                                   //kpi_required = dl.kpi_required
                                               }
                                           },
                                           optional = new List<Optional>
                                           {
                                               new Optional
                                               {
                                                   //kpi_optional = dl.kpi_optional
                                               }
                                           },
                                           objects = new List<Objects>
                                           {
                                               new Objects
                                               {
                                                   field_name = new List<FieldName>
                                                   {
                                                       new FieldName
                                                       {
                                                        entity_display_name = dl.entity_display_name,
                                                        type = "Select or Text",
                                                        @default = "default value(already selected)",
                                                        list = "",
                                                        ID = dl.ID
                                                       }
                                                   }

                                               }
                                           }
                                          }
                               }
                             }
                }
            }).ToList();
        return all;
    }

Я хотел бы отфильтровать это с помощью entity_name, chart_type и ID

но когда я объявляю параметр, он распознает только первый параметр chart_type.

1 Ответ

1 голос
/ 07 января 2020

Если я вас правильно понял, то вам нужно добавить где, прежде чем выбрать

 public List<Root> definition()
    {
        var all = _db
            .kpi_definition
            .Include("KPI")
            //Add your filters below
            .Where(dl => dl.entity_name=="" && dl.chart_type="" && dl.ID=1) 
            .Select(dl => new Root
            {
                //chart_type = dl.chart_type,
                chart_type = new List<Chart>
                {
                   new Chart { entity_name = dl.entity_name ,
                               entity_display_name = dl.entity_display_name,
                               kpi = new List<KPI>
                               {
                                  new KPI {
                                           kpi_name = dl.kpi_name,
                                           kpi_display_name = dl.kpi_display_name,
                                           required = new List<Required>
                                           {
                                               new Required
                                               {
                                                   //kpi_required = dl.kpi_required
                                               }
                                           },
                                           optional = new List<Optional>
                                           {
                                               new Optional
                                               {
                                                   //kpi_optional = dl.kpi_optional
                                               }
                                           },
                                           objects = new List<Objects>
                                           {
                                               new Objects
                                               {
                                                   field_name = new List<FieldName>
                                                   {
                                                       new FieldName
                                                       {
                                                        entity_display_name = dl.entity_display_name,
                                                        type = "Select or Text",
                                                        @default = "default value(already selected)",
                                                        list = "",
                                                        ID = dl.ID
                                                       }
                                                   }

                                               }
                                           }
                                          }
                               }
                             }
                }
            }).ToList();
        return all;
    }
...