با سلام و احترام
من دو تا جدول دارم که گروه در یک جدول تعریف میشن و کلید خارجی جدول دیگری هستند
اما وقتی combobox اضافه میشه مپ ویو مدل و دیتا بیس انجام نمیشه قبل از اضافه شدن این کلید خارجی درست عمل می کرد اما با اضافه کردن combobox عمل مپ انجام نمیشه . از طریق کمبو باکس آی دی دسته بندی ارسال میشه و هیچ مشکلی نیست و ویو هم ولید هست فقط از خط مپ عبور نمی کنه
قابل ذکر هست که وقتی مستقیما اطلاعات رو داخل دیتا بیس ثبت می کنم و از ویو مدل استفاده نمی کنم و نیازی هم نیست که از مپ استفاده کنم مشکلی در ثبت اطلاعات و استفاده از کمبو باکس وجود ندارد اما من می خوام حتما از ویومدل استفاده کنم.
خطای زیر بعد از خط اتومپر داده میشه
AutoMapperMappingException: Missing type map configuration or unsupported mapping.
Mapping types:
Int32 -> Group
System.Int32 -> WebAutomationSystem.DataModelLayer.Entities.Group
lambda_method625(Closure , int , Group , ResolutionContext )
AutoMapperMappingException: Error mapping types.
Mapping types:
InformationViewModel -> PersonInformation
WebAutomationSystem.DataModelLayer.ViewModels.InformationViewModel -> WebAutomationSystem.DataModelLayer.Entities.PersonInformation
Type Map configuration:
InformationViewModel -> PersonInformation
WebAutomationSystem.DataModelLayer.ViewModels.InformationViewModel -> WebAutomationSystem.DataModelLayer.Entities.PersonInformation
Destination Member:
GroupID
کدهایی که برای این پروژه نوشته شده :
public class PersonInformation
{
[Key]
public int Id { get; set; }
public byte Type { get; set; }
public int Groupid { get; set; }
public string FirstName { get; set; }
public string Family { get; set; }
public byte Gender { get; set; }
public string MelliCode { get; set; }
public byte MaritalStatus { get; set; }
public string Mobile { get; set; }
public string EmailAddress { get; set; }
public string OfficeName { get; set; }
public string Registrationnumber { get; set; }
public string OfficeAddress { get; set; }
public string Officephone { get; set; }
public string OfficepostalCode { get; set; }
public string HomeAddress { get; set; }
public string Homephone { get; set; }
public string HomepostalCode { get; set; }
[ForeignKey("Groupid")]
public virtual Group GroupID { get; set; }
}
/////////////////
public class Group
{
[Key]
public int GroupId { get; set; }
public string GroupName { get; set; }
}
//////////////////
private void FillCombo()
{
List<GroupNameViewModel> ListGroup = _igroup.GroupNameList();
GroupNameViewModel List = new GroupNameViewModel
{
GroupId = -1,
GroupName = "انتخاب گروه"
};
//در خانه ی اولش مقدار را بنویس و مابقی را از دیتا بیس بیاور
ListGroup.Insert(0, List);
ViewBag.ListGroup = ListGroup;
}
/////////////////
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Add(InformationViewModel model, byte r1, byte r2, byte r3)
{
if (ModelState.IsValid)
{
try
{
var mapModel = _mapper.Map<PersonInformation>(model);
mapModel.MaritalStatus = r3;
mapModel.Gender = r2;
mapModel.Type = r1;
_context.PersonInformationUW.Create(mapModel);
_context.save();
FillCombo();
return RedirectToAction("index", "Information");
}
catch
{
FillCombo();
return RedirectToAction("ErrorView", "Home");
}
}
return View(model);
}
تصویر زیر هم نمونه ای از خروجی کار می باشد.
بسیار خوب هست که کدهاتون رو کامل قرار دادید. فقط فرمودید که از خطی که AutoMapper هست رد نمیشه. یعنی خطایی داره در این خط ؟ خب اگر خطایی دارید دقیقا متن خطا رو کاش قرار میدادید. در وافع شما سوال برای رفع خطا هست ولی به خطا اشاره نشده.
دقت کنید در هنگام map کردن باید model اصلی و مدلی که قراره اطلاعات map بشه باید فیلدهای با نام های یکسانی داشته باشن. از طرفی یک کلاس Profile هم باید داشته باشید که در اونجا مشخص بشه این دو مدل قرار هست به همدیگه map بشن.
در واقع خطای شما خطای Missing type map configuration or unsupported mapping در Automapper هست. در سوال شما دو Model وجود داره :
شما فیلدهای جدول PersonalInformation رو قرار دادید اما مشخص نشده که ویو مدل شامل چه فیلدهایی هست. اگر فرض کنیم که فیلدهای ویومدل هم همگی مشابه Model اصلی می باشداحتمالا خطا در کلاس Profile می باشد.
کلاس Profile شما باید چیزی مشابه با زیر باشه :
کلاس Profile
public class AutoMapping : Profile
{
public AutoMapping()
{
CreateMap<PersonalInformation, InformationViewModel>().ReverseMap();
}
}
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/01
- ساعت :
01:07:00 PM
- بازدید :
175
- پاسخ :
0
|
تاریخ :
1403/12/26
- ساعت :
03:04:00 PM
- بازدید :
69
- پاسخ :
1
|
تاریخ :
1403/12/23
- ساعت :
11:21:00 AM
- بازدید :
157
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6831
- پاسخ :
1
|
تاریخ :
1403/12/22
- ساعت :
11:05:00 AM
- بازدید :
187
- پاسخ :
1
|
تاریخ :
1403/12/19
- ساعت :
11:21:00 PM
- بازدید :
75
- پاسخ :
1
|
تاریخ :
1403/12/18
- ساعت :
07:24:00 PM
- بازدید :
106
- پاسخ :
1
|
تاریخ :
1398/09/06
- ساعت :
09:06:00 PM
- بازدید :
3426
- پاسخ :
1
|
تاریخ :
1399/12/15
- ساعت :
08:08:00 PM
- بازدید :
3582
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
89
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9852
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
45
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4419
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
202
- پاسخ :
2
|