AutoMapper چیست؟ یک کتابخانه کوچک و ساده میباشد. که برای حل یک مشکل پیچیده ساخته شده. و به ما برای خلاص شدن از شر کدهایی که یک شی را به شی دیگر نگاشت می کند کمک میکند. نوشتن این نوع کد نسبتاً خسته کننده و سخت است ولی با AutoMapper دیگر خبری از این سختی ها وجود ندارد.
برای کار و استفاده از کتابخانه ارزشمند AutoMapper راه های مختلفی وجود دارد.
در صورتی که در نصب AutoMapper با ارور مواجه شدید ورژن ۱۰ آن را نصب کنید.
using AutoMapper;
using Project Name . Model;
using Project Name . Model . ViewModel;
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();
AutoMapperConfig.ConfigurMapping();
نگاشت یک مدل به یک مدل دیگر
users1 = AutoMapperConfig.mapper.Map<User, UserListVieModel>(users);
نگاشت یک لیست از یک مدل به یک لیست از یک مدل دیگر
users1 = AutoMapperConfig.mapper.Map<List<User>, List<UserListVieModel>>(users);
برای درک بهتر موضوع، لطفا از ویدیو آموزش Code First در MVC – کار با اتومپر دیدن فرمایید.