Member 10271709 Ответов: 2

Преобразование datatable в asenumerable не работает в ASP.NET ядро 2.0


я только начал с того, что Asp.net код 2.0 и миграция моего кода. и AsEnumerable() не работает в .Net Core.

мои данные поступают из таблицы где
api_module
и
api_resource_name
это колонны

var result = ds.Tables[0].AsEnumerable().GroupBy(x => x.Field<string>("api_module")).Select(x => new { api_module = x.Key, api_resource_name = x.Where(z => z.Field<string>("api_resource_name") != null).Select(z => z.Field<string>("api_resource_name")).ToList() });


Что я уже пробовал:

я попытался использовать цикл for, но не смог решить свою проблему.

мой необходимый формат json-это

[  
   {  
      "api_module":"approvals",
      "api_resource_name":[  

      ]
   },
   {  
      "api_module":"bpsusers",
      "api_resource_name":[  
         "alternateapproverfor",
         "alternateapprovers"
      ]
   },
   {  
      "api_module":"commodities",
      "api_resource_name":[  

      ]
   },
   {  
      "api_module":"commoditygroups",
      "api_resource_name":[  

      ]
   },
   {  
      "api_module":"companies",
      "api_resource_name":[  
         "addresses",
         "bids",
         "commitments",
         "commodities",
         "contacts",
         "evaluations",
         "financialinfo",
         "interests",
         "licenses",
         "performanceratings",
         "profisydocuments",
         "profisyfolders",
         "projectinterests",
         "projects",
         "qualifications",
         "relationships",
         "shopload"
      ]
   },
   {  
      "api_module":"costcodes",
      "api_resource_name":[  

      ]
   },
   {  
      "api_module":"currencies",
      "api_resource_name":[  
         "rates"
      ]
   },
   {  
      "api_module":"dataexchangenew",
      "api_resource_name":[  

      ]
   }
]

2 Ответов

Рейтинг:
1

Maciej Los

Как говорится в документации MSDN a DataTableExtensions.AsEnumerable Method (DataTable) (System.Data)[^] доступен с тех пор .NET framework 3.5.

Обратите внимание, что преобразование между данными datatable и данными JSON не доступно напрямую. Вы должны определить набор классов, чтобы иметь возможность сериализовать и десериализовать данные JSON (настоятельно рекомендуется). Для получения более подробной информации, пожалуйста, смотрите:
Сериализация JSON | Microsoft Docs[^]
Как сериализовать и десериализовать данные JSON | Microsoft Docs[^]

Кроме того, пожалуйста, смотрите:
Преобразовать в JSON объект DataTable в C#[^]
3 способа преобразования DataTable в строку JSON в ASP.NET с#[^]


Рейтинг:
0

Member 13194803

Для .Net core функция AsEnumerable() доступна только с версии 3.0 Preview 8 и далее.