دسته بندی ها
01:18 1399/06/26

دلیل خطای Missing type map configuration or unsupported mapping در Automapper

مشخصات سوال کننده :
کاربر : fateme     امتیاز کاربر : 1617     رتبه کاربر : 2
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 8599
1 نظر
Rouhbakhsh : باسلام و احترام جواب این سوال پیدا شد؟؟

امتیاز کاربر : 0   رتبه کاربر : 7015   تاریخ ثبت : 08:23 1400/10/25
پاسخ دهنده : saedbfd 23:01 1399/06/29

ظاهرا همه چیز در پروژه شما درست هست. چند تا لینک رو بهتون معرفی می کنم امیدوارم که به دردتون بخوره

Automapper - Missing type map configuration or unsupported mapping

Missing type map configuration or unsupported mapping in Abp version 4.8.0

Missing type map configuration or unsupported mapping error in Automapper

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
پاسخ دهنده : hamid_b 17:33 1401/02/03

این خطا برای منم به وجود اومد و تونستم حلش کنم. البته نمی دونم دقیقا موردی که برای من به وجود اومده با اشکال شما یکسان باشه ولی تجربه خودم رو در این رابطه بهتون میگم.

ببینید بنده یک جدول به نام adminSiteQuestionCategory دارم و یک مدل به نام BuyQuestionBankViewModel دارم که قراره با هم map بشن.

جدول adminSiteQuestionCategory

public class AdminSiteQuestionCategory
{
   [Key]
   public int AdminSiteQuestionCategoryID { get; set; }
   public string AdminSiteQuestionCategoryName { get; set; }
   public long Price { get; set; }
   public long DiscountPrice { get; set; }
   public string Picture { get; set; }
}

مدل BuyQuestionBankViewModel

public class BuyQuestionBankViewModel
{
   public int AdminSiteQuestionCategoryID { get; set; }
   public string AdminSiteQuestionCategoryName { get; set; }
   public long DiscountPrice { get; set; }
   public string Picture { get; set; }
}

 

در کلاس Automap هم دستور زیر رو نوشتم :

public class AutoMap : Profile
{
   public AutoMap()
   {
      CreateMap<AdminSiteQuestionCategory, BuyQuestionBankViewModel>().ReverseMap();
   }
}

و در نهایت به صورت زیر mapping رو انجام دادم: 

public IActionResult Index()
{
   var myModel = _mapper.Map<BuyQuestionBankViewModel>(_context.adminSiteQuestionCategoryUW.Get());
   return View(myModel);
}

بعد از اجرای پروژه با خطای زیر روبرو شدم :

'Missing type map configuration or unsupported mapping.'

نکته : بنده یک نکته ای رو اینجا متوجه شدم. من قصد داشتم توسط دستور زیر که یک لیست از رکوردها رو برمیگردونه Model رو مقداردهی کنم. در حالی که مدل (یعنی BuyQuestionBankViewModel) یک کلاس هست و باید حتما یکبار یک نمونه ازش ساخته بشه.

_context.adminSiteQuestionCategoryUW.Get()

 

راه حل مشکل :

خب پس بنابراین اومدم و دستورم به صورت زیر تغییر دادم و مشکل حل شد :

public IActionResult Index(IEnumerable<BuyQuestionBankViewModel> model)
{
   var myModel = _mapper.Map(_context.adminSiteQuestionCategoryUW.Get(), model);
   return View(myModel);
}

در واقع باید قبل از اینکه یک لیست رو وارد Model خودتون کنید یکبار ازش نمونه سازی کنید.

ویرایش شده در شنبه 3 اردیبهشت 1401 ساعت 17:34:25
به این پاسخ امتیاز بدهید    1
امتیاز: 510 رتبه: 4
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود