آموزش استفاده از auto mapper در asp.net core
auto mapper یک کتاب خانه هست که جهت map کردن دو object به هم استفاده می شود
بعد از ایجاد یک پروژه asp.net core شما باید وارد manage nuget package بشوید و عبارت automapper را جستجو کنید و کتاب خانه را نصب کنید
نام کامل کتاب خانه: AutoMapper.Extensions.Microsoft.DependencyInjection

کد زیر را در کلاس startup پروژه add کنید
|
1
2
|
//asp.net core 3 automapper
services.AddAutoMapper(typeof(Startup));
|
کلاس User را با مشخصات زیر بسازید
|
1
2
3
4
5
6
7
8
|
public class User
{
public Guid Id { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
|
سپس کلاس UserViewModel را به صورت زیر ایجاد کنید هدف ما تبدیل خودکار User به UserViewModel هست
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class UserViewModel
{
public Guid Id { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
public List<Role> Roles { get; set; }
}
public class Role
{
}
|
کلاسی به نام AutoMapping ایجاد کنید و توجه کنید که باید از کلاس Profile ارث بری کنه
|
1
2
3
4
5
6
7
8
9
|
using AutoMapper;
//automapper .net core example
public class AutoMapping : Profile
{
public AutoMapping()
{
CreateMap<User, UserViewModel>();
}
}
|
کنترلر UserController را ایجاد کنید و سپس به صورت زیر User را به UserViewModel تبدیل کنید(مپ کنید)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using AutoMapper;
//c# asp.net core automapper
public class UserController : Controller
{
private readonly IMapper _mapper;
private readonly IDataRepository _dataRepository;
public UserController(IMapper mapper, DataRepository dataRepository)
{
_mapper = mapper;
_dataRepository = dataRepository;
}
public IActionResult GetUser()
{
User user = _dataRepository.GetUser(1);
var model = _mapper.Map<UserViewModel>(user);
return View(model);
}
}
|
تمام.