ورود

View Full Version : حرفه ای: Ignoe کردن که پراپرتی در AutoMapper



سعید کشاورز
جمعه 02 تیر 1396, 19:01 عصر
سلام..
تازه با Automapper آشنا شدم

من یه مدل دسته بندی دارم که شامل 10 تا فیلد میشه ...
حالا اومدم واسه این مدل یک ViewModel درست کردم که شامل 5 تا فیلد میشه.
کلا کاربر با ViewModel در ارتباط هست.

حالا وقتی که میخام عملیات ویرایش رو انجام بدم ه مشکلی دارم.
یکی از فیلد های دسته بندی آدرس تصویر هست.
حالا وقتی کاربر توی ویرایش عکسی رو آپلود نکنه فیلد ImagePath اون ViewModel به صورت Null فرستاده میشه..
حالا الان من یه چیزی فقط نیاز دارم اونم اینکه وقتی عملیات Map کردن رو از طریق کد زیر انجام میدم فقط میخام فیلد ImagePath رو در نظر نگیره..

var objCategory = Mapper.Map<CategoryViewModel, Category>(model);

چندجا سرچ کردم که باید از دستور زیر استفاده کنید:

Mapper.CreateMap<CategoryViewModel, Category>().ForMember(x => x.ImagePath, opt => opt.Ignore());
اما اصلا دستور بالا جواب نمیده..
-----------------
از ورژن 3 هم استفاده میکنم

ali_md110
جمعه 02 تیر 1396, 22:29 عصر
در Automapper کلاس یا اعضا مقصد- destمهم هستند دراینجا CategoryViewModel مبدا هست و Category مقصد
شما اگر از


Mapper.CreateMap<CategoryViewModel, Category>().ForMember(x => x.ImagePath, opt => opt.Ignore());

استفاده کنید فیلد سمت Category صرفه نظر میشه
در حالیکه شما نیاز دارید فیلد ImagePath سمت CategoryViewModel صرفه نظر بشه و نال ارسال نکنه

از NullSubstitute برای اعضاء نال استفاده کنید