
Code First در MVC – آموزش AutoMapper
AutoMapper چیست؟ یک کتابخانه کوچک و ساده میباشد. که برای حل یک مشکل پیچیده ساخته شده. و به ما برای خلاص شدن از شر کدهایی که یک شی را به شی دیگر نگاشت می کند کمک میکند. نوشتن این نوع کد نسبتاً خسته کننده و سخت است ولی با AutoMapper دیگر خبری از این سختی ها وجود ندارد.
آموزش کار با کتابخانه AutoMapper
برای کار و استفاده از کتابخانه ارزشمند AutoMapper راه های مختلفی وجود دارد.
- گام اول : از طریق مدیریت ناگت ها کتابخانه AutoMapper را به پروژه خود اضافه کنید.
در صورتی که در نصب AutoMapper با ارور مواجه شدید ورژن ۱۰ آن را نصب کنید.
- گام دوم : در پوشه App_Start یک کلاس به نام AutoMapperConfig اضافه کنید . در این کلاس قرار است کانفیگ های اتومپر را ایجاد کنیم.
- گام سوم : موارد زیر را در کلاس AutoMapperConfig خود Using کنید.
using AutoMapper;
using Project Name . Model;
using Project Name . Model . ViewModel;- گام چهارم : کدهای زیر را به کلاس AutoMapperConfig اضافه کنید. در این مثال قصد داریم تا مدل User را به UserViewModel نگاشت کنیم پس کانفیگ آن را نوشتیم ولی شاید شما قصد داشته باشید تعداد بیشتری نگاشت داشته باشید برای این کار میتوانید کانفیگ های خود را در بخشی که نوشته شده Add Config وارد کنید.
public static IMapper mapper;
public static void ConfigurMapping()
{
MapperConfiguration config = new MapperConfiguration(t =>
{
t.CreateMap<User, UserListVieModel>();
//Add Other Config
});
mapper = config.CreateMapper();
}توجه : اگر مدل های شما با یکدیگر در فیلد ها متفاوت باشند یعنی مدلی فیلدی دارد که مدل دیگر ندارد در این صورت اگر با مشکل روبرو شدید به کانفیگ خود مقدار IgnoreAllPropertiesWithAnInaccessibleSetter را اضافه کنید تا آن را ایگنور کند. مانند کد زیر :
t.CreateMap<User, UserListViewModel>().IgnoreAllPropertiesWithAnInaccessibleSetter();- گام پنجم : به فایل Global.asax میرویم و کد زیر را وارد میکنیم.
AutoMapperConfig.ConfigurMapping();- گام ششم : برای نگاشت کافی است از کد زیر استفاده کنیم.
نگاشت یک مدل به یک مدل دیگر
users1 = AutoMapperConfig.mapper.Map<User, UserListVieModel>(users);نگاشت یک لیست از یک مدل به یک لیست از یک مدل دیگر
users1 = AutoMapperConfig.mapper.Map<List<User>, List<UserListVieModel>>(users);































تشکر .آموزشی بسیار گویا و شفاف و کارآمد بود .
آرزوی تندرستی
ممنون از شما دوست عزیز
با سلام چرا قبل اینکه با ویو مدل کار کنیم زمانی که فرم ثبت نام یوزر را پر میکردیم validation ها قبل از فشردن دکمه کار میکرد اما الان باید دکمه ثبت را بزنم بعد کار میکنه؟
سلام در زمان ساخت ویو باید گزینه references script library خورده باشه. با مشاهده این فیلم درک بهتری از موضوع پیدا میکنید.
https://tehranit.net/advanced-validation/