According to Valueinjecter mapping with source and Target are usually done with naming convention. But it doesn't work in my case , How could i manage mapping of navigation properties.
DTO
public class EmployeeDTO
{
public long EmployeeId { get; set; }
public long? LoginId { get; set; }
public string EmpNumber { get; set; }
public string FirstName { get; set; }
public string CompanyEmail { get; set; }
public string PersonalEmail { get; set; }
public AttendanceTimeSlotDTO AttendanceTimeSlot { get; set; }
}
public class AttendanceTimeSlotDTO
{
public int SlotId { get; set; }
public TimeSpan InTime { get; set; }
public TimeSpan OutTime { get; set; }
}
MYData Provider
public List<EmployeeDTO> GetActiveEmployees()
{
var employees = UnitOfWork.EmployeeRepository.Get(employee => employee.IsActive, null, "AttendanceTimeSlot").ToList();
//This work fine
var employeesDto = employees.Select(x => new EmployeeDTO().InjectFrom(x)).Cast<EmployeeDTO>().ToList();
employeesDto.InjectFrom(employees);
// Not Working
var result =employees.Select(e => new AttendanceTimeSlot().InjectFrom(e)).Cast<AttendanceTimeSlot>()
.Select(x => new EmployeeDTO().InjectFrom(x)).Cast<EmployeeDTO>().ToList();
}
MYEF
public long EmployeeId { get; set; }
public Nullable<long> LoginId { get; set; }
public string EmpNumber { get; set; }
public string FirstName { get; set; }
public virtual ICollection<Attendance> Attendances { get; set; }
public virtual ICollection<PermanentAddress> PermanentAddresses { get; set; }
public virtual ICollection<TemporaryAddress> TemporaryAddresses { get; set; }
public virtual AttendanceTimeSlot AttendanceTimeSlot { get; set; }
How would i map Navigation Properties with OMU.ValueInjector