Я использую. Net ядро с Entity Framework. Ниже приведен мой код
Просмотр модели
public class EmployeeVm
{
public int Id { get; set; }
public string Name { get; set; }
public string ContactNo { get; set; }
public string Email { get; set; }
public DateTime JoiningDate { get; set; }
public int BranchId { get; set; }
public int DepartmentId { get; set; }
}
POCO Class
public class employee
{
[Key]
public int id { get; set; }
public string name { get; set; }
public string contact_no { get; set; }
public string email { get; set; }
public DateTime joining_date { get; set; }
public int branch_id { get; set; }
public int department_id { get; set; }
}
Конфигурация Automapper из класса запуска
public void ConfigureServices(IServiceCollection services)
{
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
}
Класс профиля отображения
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<employee, EmployeeVm>();
CreateMap<EmployeeVm, employee>();
}
}
Когда я пытаюсь сопоставить свойства View Model со свойствами класса POCO, используя приведенный ниже код, все работает нормально.
//Here I am using constructor injection
private readonly IMapper _mapper;
public EmployeeBl(IMapper mapper)
{
_mapper = mapper;
}
_mapper.Map<employee>(employeeVm)
Но когда я пытаюсь отобразить класс POCO ( employee ) свойств для свойств модуля View ( EmployeeVm ), тогда некоторые свойства не отображаются, поскольку они содержат подчеркивание в классе POCO
Вот ответ почтальона
{
"id": 4,
"name": "test",
"contactNo": null,
"email": "test@gmail.com",
"joiningDate": "0001-01-01T00:00:00",
"branchId": 0,
"departmentId": 0,
}
От ответа выше я ожидаю сопоставить свойства contactNo, joininingDate, branchId и DepartmentId с соответствующим значением.