متد ForMember در AutoMapper

تهران آی تی / برنامــه نویــسـی / متد ForMember در AutoMapper

متد ForMember در AutoMapper

متد ForMember در AutoMapper یکی از مهم‌ترین قابلیت‌های AutoMapper است که به شما اجازه می‌دهد نگاشت یک پراپرتی خاص در شیء مقصد را به صورت سفارشی تعریف کنید. این متد در سناریوهایی کاربرد دارد که ویژگی‌های منبع (Source) و مقصد (Destination) نام‌های متفاوت دارند، یا نیاز به تبدیل مقادیر دارید.

متد ForMember کمک می‌کند نگاشت پراپرتی ها را سفارشی کنید. می‌توانید نام‌ها را تغییر دهید، مقادیر را ترکیب کنید، نادیده بگیرید، یا مقدار پیش‌فرض تنظیم کنید.

گزینه‌های ForMember

ForMember یک متد کلی است که می‌تواند گزینه‌های مختلفی را بپذیرد. گزینه‌های ForMember شامل موارد زیر است.

  • گزینه‌ MapFrom برای تعریف منطق نگاشت سفارشی استفاده می‌شود
  • گزینه‌ Ignore برای نادیده گرفتن پراپرتی مقصد.
  • گزینه‌ NullSubstitute مقدار پیش‌فرض برای مقدار null.
  • گزینه‌ Condition برای اعمال شرط قبل از نگاشت.
  • گزینه‌ SetMappingOrder برای تنظیم ترتیب نگاشت.
  • گزینه‌ UseDestinationValue اگر مقصد قبلاً مقداردهی شده باشد و بخواهید از آن مقدار استفاده کنید، از این گزینه استفاده می‌شود

ساختار ForMember

ساختار ForMember به صورت زیر است.

  • ورودی destinationMember مشخص می‌کند که کدام فیلد در مدل مقصد باید مقداردهی شود.
  • گزینه ها options مجموعه‌ای از متدها برای سفارشی‌سازی رفتار نگاشت.
  • ورودی sourceExpression مشخص می‌کند مقدار فیلد مقصد از کجا و چگونه محاسبه شود.
ساختار ForMember

ساختار ForMember

مثال با MapFrom

  • تبدیل و یا ترکیب دو فیلد توسط MapFrom

قصد داریم فیلدهای Name و Family را باهم ترکیب و در فیلد جدیدی نمایش دهیم.

.ForMember(dest => dest.NameDisplay, opt => opt.MapFrom(src => src.Name + " " + src.Family))

  • تغییر ساختار فیلد زمان ثبت نام توسط MapFrom

برای این کار یک پراپرتی به نام RegisterDateDisplay از نوع string به ViewModel خود باید اضافه کنیم. و همچنین در Viewها نیز مقدار RegisterDateDisplay را وارد کنیم.

.ForMember(dist => dist.RegisterDateDisplay, opt =>opt.MapFrom(src => src.RegisterDate.ToString("در سال yyyy و ماه MMMM")));

  • شرط توسط MapFrom

برای این کار یک پراپرتی به نام AgeDisplay از نوع string به ViewModel خود باید اضافه کنیم. و همچنین در Viewها نیز مقدار AgeDisplay را وارد کنیم.

.ForMember(dist => dist.AgeDisplay, opt => opt.MapFrom(src => src.Age >= 18 ? "سن قانونی" : "غیرقانونی"));

مثال با Condition

  • قرار دادن شرط توسط Condition

فقط سن افرادی را نمایش بده که بالای ۱۸ سال سن دارند.

.ForMember(dist => dist.Age, opt => opt.Condition(src => src.Age >= 18));

مثال با NullSubstitute

  • پر کردن فیلد های Null با مقدار پیش فرض

سن افرادی که وارد نشده است -۱ قرار بده.

.ForMember(dist=>dist.Age,opt=>opt.NullSubstitute(-1));

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

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

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

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

مطالب مرتبط

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

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

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

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

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

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

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

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