У меня есть метод экспорта, который получает данные из вызова Ajax, затем сопоставляет их с соответствующим ID-классом и использует AutoMapper для сопоставления объекта с классом. Но всякий раз, когда я пытаюсь запустить код ниже, он говорит: «Automapper отсутствует конфигурация карты типов или неподдерживаемое сопоставление». Что мне здесь не хватает?
[HttpPost]
public ExportResultExcel ExportReport(int Id, object obj)
{
var result = new BaseResult<ExportResultExcel>();
var reportObject = _reportHelper.GetObjectClass(Id);
var propertyList = _reportHelper.GetPropertiesOfClass(reportObject);
switch (Id)
{
case 1:
Mapper.Initialize(cfg =>
{
cfg.CreateMap<object, CusMonthlyDiscountReportModel>();
});
List<CusMonthlyDiscountReportModel> model = Mapper.Map<List<CusMonthlyDiscountReportModel>>(obj);
var stream = exportService.GenerateDocumentReport(model, propertyList);
result.Result = new ExportResultExcel
{
Content = stream,
ContentType = ExportService.GetContentType(".xlsx"),
FileName = $"MonthlyCustomerInvoicesReport_{DateTime.Now}.xlsx"
};
break;
case 2:
//..........
default:
break;
}
return result.Result;
}
Любая помощь будет принята с благодарностью. Спасибо
ИЗМЕНИТЬ 1
Я не получаю данные в виде списка, а затем создал для них MapDynamicList, чтобы сопоставить объект, но все равно получаю ту же ошибку.
public ExportResultExcel ExportReport(int Id, List<object> data)
{
switch (Id)
{
case 1:
var model = ReportHelper.MapDynamicList<CusMonthlyDiscountReportModel>(data);
А это моя функция MapDynamicList
public static List<T> MapDynamicList<T>(IEnumerable<object> obj)
{
var config = new MapperConfiguration(c => c.CreateMissingTypeMaps = true);
var mapper = config.CreateMapper();
var newModel = obj.Select(mapper.Map<T>).ToList();
return newModel;
}