سلام دوستان.
مثل اینکه mapper یک مقداری با automaper mvc5 تغیر کرده.
من می خوام تو repository از ویو viewmodel بگیرم و اون رو با mapper بریزم تو model و بعد add دیتابیس کنم.
کسی مقاله یا نمونه کدی داره؟؟
Printable View
سلام دوستان.
مثل اینکه mapper یک مقداری با automaper mvc5 تغیر کرده.
من می خوام تو repository از ویو viewmodel بگیرم و اون رو با mapper بریزم تو model و بعد add دیتابیس کنم.
کسی مقاله یا نمونه کدی داره؟؟
اول باید مشخص کنید که برای MVC5 می خواهید یا برای Core
تغییر اساسی سیستم AutoMapper اینه که از این به بعد باید IMapper رو به عنوان تزریق کنید تا به اون دسترسی داشته باشید. قبلا یک کلاس استاتیک به نام Mapper بود که می تونست همه ی Map ها بارگذاری کنه ولی خیلی از برنامه نویسها با نوشتن کلاسهای خودشون سعی می کردن به جای کلاس استاتیک اون رو تزریق کنند. در نسخه های جدیدتر این اتفاق در خود فریم ورک افتاده.
اول باید کلاس IMapper رو در سیستم تزریق وابستگی که دارید (Ninject و StructureMape و ...) ثبت کنید (Register) و بعد در هر کلاسی نیاز به AutoMapper داشتید باید IMapper رو تزریق کنید.
IMapper mapper = AutoMapperBinder();
kernel.Bind<IMapper>().ToConstant(mapper).InSingle tonScope();
در ASP.NET Core یک سرویس مخصوص این کار قبلا پیاده شده کافیه Module مربوطه رو نصب کنید. و بعد در سرویس لود کنید.
نقل قول:
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjectio n
services.AddAutoMapper();
پروژه ی MVC5 که در اون قبلا AutoMapper با Ninject تنظیم شده :
https://github.com/codehaks/Portal-Net
پروژه ی ASP.NET Core با AutoMapper :
https://github.com/codehaks/Portal-Core-Fa
سلام.
بله این کار رو انجام دادم و تنظیم کردم. اما یه مشکلی که هست اینه که باید یک کلاس
public class AutomapperDomin: Profile
{
public AutomapperDomin()
{
CreateMap<Group, GroupViewmodel>();
CreateMap<GroupViewmodel, Group>();
}
}
می خواستم بدونم این تنها روش مپ کردنه؟؟
این روشی هست که خود AutoMapper استفاده میکنه.البته من دیدم که با ترفندهایی میان و AutoMapper رو میبرن داخل خود Model و ViewModel که مستقل از سیستم مرکزی عمل کنه. به نظر من این کار پروژه رو خیلی شلوغتر میکنه.