Это проект ASP.net Core 2.1.
Как я могу внедрить Auto Mapper непосредственно в слой репозитория?В настоящее время у меня есть Auto Mapper, внедряемый в контроллер, а затем из контроллера я передаю его в конструкторе на слой Repo.
Можно ли его впрыскивать непосредственно в Repo или это лучшее, что я могу сделать?
Вот мой запуск. ConfigureServices ()
public void ConfigureServices(IServiceCollection services)
{
//** other stuff is here
// Auto Mapper Configurations
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
}
Здесьэто контроллер
[Route("api/[controller]")]
public class EmployeesController : Controller
{
EmployeesRepo _repo;
public EmployeesController(IMapper mapper)
{
_repo = new EmployeesRepo(mapper);
}
// GET: Jobs
[HttpGet("[action]")]
public IEnumerable<EmployeeDTO> GetAll()
{
//** TODO Fix Later hack for debug
var employees = _repo.GetLast(100);
return employees;
}
}
здесь класс репо
public class EmployeesRepo
{
EFContext db = new EFContext();
protected readonly IMapper _mapper;
// Assign the object in the constructor for dependency injection
public EmployeesRepo(IMapper mapper)
{
_mapper = mapper;
}
public IEnumerable<EmployeeDTO> GetAllEmployees()
{
return db.Employees.ProjectTo<EmployeeDTO>(_mapper.ConfigurationProvider).ToList();
}
internal IEnumerable<EmployeeDTO> GetLast(int v)
{
return db.Employees.ProjectTo<EmployeeDTO>(_mapper.ConfigurationProvider).ToList();
}
}