پیکربندی و نصب AutoMapper

تهران آی تی / برنامــه نویــسـی / پیکربندی و نصب AutoMapper

پیکربندی و نصب AutoMapper

در این قسمت به پیکربندی و نصب AutoMapper میپردازیم.قصد داریم از AutoMapper در پروژه های Asp.Net Core 8 همراه با EF Core 9 استفاده کنیم. تصور کنید در حال ساخت یک برنامه پیچیده هستید. داده‌های زیادی دارید. که باید از دیتابیس خوانده شوند. و در قسمت‌های مختلف برنامه نمایش داده شوند؛ مثلاً یک سیستم مدیریت کاربران. هر کاربر اطلاعات زیادی مثل نام، نام خانوادگی، تاریخ تولد، نقش‌ها و مجوزها دارد. اما در بسیاری از بخش‌ها نیازی به نمایش تمام این اطلاعات نیست. مثلاً در صفحه لیست کاربران، فقط نام، ایمیل و نقش آن‌ها نمایش داده می‌شود. حالا چطور می‌توانید این داده‌های پیچیده را به مدل‌های ساده‌تر تبدیل کنید؟

اگر بخواهید این کار را به صورت دستی انجام دهید، مجبورید برای هر مدل یک کد تبدیل بنویسید. این کدها هم طولانی هستند، هم تکراری و احتمال خطا در آن‌ها زیاد است. دقیقاً اینجاست که یک ابزار قدرتمند مثل AutoMapper به کمک شما می‌آید. AutoMapper مانند یک مترجم حرفه‌ای عمل می‌کند؛ کافی است به آن بگویید که چگونه داده‌های شما از یک مدل به مدل دیگر تبدیل شوند و بقیه کارها را به آن بسپارید. اما مثل هر ابزار دیگری، برای استفاده از آن باید تنظیمات اولیه‌ای انجام دهید. این مرحله همان چیزی است که به آن پیکربندی اولیه و تعریف نقشه‌برداری‌ها (Mappings) می‌گوییم.

چرا پیکربندی اولیه مهم است؟

AutoMapper ذاتاً هیچ شناختی از مدل‌های شما ندارد. اگر بخواهید بین دو مدل، مثلاً مدل کاربر (User) و مدل نمایشی آن (UserDto)، داده‌ها را منتقل کنید، باید به AutoMapper یاد بدهید که چه ویژگی‌هایی از مدل مبدا به مدل مقصد مرتبط هستند. این فرآیند پایه و اساس کار با AutoMapper است و اگر به درستی انجام شود، می‌تواند حجم زیادی از کارهای دستی و خسته‌کننده شما را حذف کند.

پیکربندی صحیح به شما کمک می‌کند:

  • از خطاهای رایج در تبدیل داده‌ها جلوگیری کنید.
  • کدهای خود را مرتب‌تر و خواناتر کنید.
  • به راحتی تغییرات را در مدل‌های خود اعمال کنید بدون اینکه نگران بروزرسانی دستی کدها باشید.

مراحل پیکربندی و نصب AutoMapper

برای شروع کار با AutoMapper، باید چند گام ساده را طی کنیم. در ادامه این گام‌ها را به تفصیل توضیح می‌دهیم:

  • نصب AutoMapper

اولین گام این است که کتابخانه AutoMapper را به پروژه خود اضافه کنید. این کار را می‌توانید با استفاده از NuGet انجام دهید.

Install-Package AutoMapper

  • ایجاد یک کلاس Profile

Profile یک کلاس ارائه‌شده توسط AutoMapper است. برای تعریف Mappings ها استفاده می‌شود. این کلاس کمک می‌کند Mappings ها سازمان‌دهی شوند و پروژه‌های بزرگ خواناتر باشند.

مسیر پیشنهادی

Application/Mappings/MappingProfile.cs

نمونه کد تعریف نوع Mapping

public MappingProfile()
{
CreateMap<Manager,ManagerViewModel>().ReverseMap();
}

AutoMapper باید به Dependency Injection (DI) پروژه اضافه شود. این کار را می‌توانید در فایل Program.cs انجام دهید.

builder.Services.AddAutoMapper(typeof(MappingProfile));
OR
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());

کد AppDomain.CurrentDomain.GetAssemblies تمام اسمبلی‌های موجود در دامنه برنامه (Current AppDomain) اسکن می‌شوند. این یعنی تمام کلاس‌هایی که از Profile ارث‌بری کرده‌اند، بدون توجه به این که در کدام پروژه یا لایه قرار دارند، شناسایی می‌شوند. برای پروژه‌های چند لایه که کلاس‌های Profile در لایه‌های مختلف تعریف شده.

کد typeof(Program) فقط اسمبلی‌ای که کلاس Program در آن قرار دارد (معمولاً پروژه اصلی مثل WebAPI یا UI) اسکن می‌شود. کلاس‌های Profile که در این اسمبلی باشند شناسایی و ثبت می‌شوند. مناسب برای: پروژه‌های تک لایه یا ساده که تمام پروفایل‌های AutoMapper در پروژه اصلی تعریف شده‌اند.

  • نمونه کدهای Controller

private readonly MyDbContext _context;
private readonly IMapper _mapper;
//
public ManagersController(MyDbContext context, IMapper mapper)
{
_context = context;
_mapper = mapper;
}
//
List<ManagerViewModel> managerVm=_mapper.Map<List<ManagerViewModel>>(ManagerM);
//
var managerVm = await _context.managers.AsNoTracking().
ProjectTo<ManagerViewModel>(_mapper.ConfigurationProvider).ToListAsync();
//
var manager = _mapper.Map<Manager>(managerVm);

جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد