Automapper s C #

hlasů
0

Snažím se zvýšit výkon mého API s automapper. Vytvořil jsem cílovou DTO a mám zdroj mnodel již. Také jsem vytvořil mapování, ale když jsem map tuto chybu.

 The type arguments for method 'Enumerable.Select<TSource, TResult> 
 (IEnumerable<TSource>, Func<TSource, TResult>)' cannot be inferred from the 
 usage. Try specifying the type arguments explicitly.

Viz ukázkový kód níže

  [Route(StaffInfo/{*job_title})]
    public IHttpActionResult GetStaffInfoByTitle(string job_title)
    {

        var rStructure = _context.employeeinfo.Where(e => e.jobtitle.Contains(job_title)).ToList()
                         .Select(Mapper.Map<employeeinfo, employeeinfoDto>);




        if (rStructure == null)
        {
            return NotFound();
        }

        return Ok(rStructure);
    }

DTO modelu

    public class employeeinfoDto
   {
    public string employee_number { get; set; }
    public string name { get; set; }
    public string companyname { get; set; }
    public int employee_id { get; set; }
    public Byte? linemanager { get; set; }
   }

Domian modelu

    public class employeeinfo
    {  
     public string employee_number { get; set; }
     public string name { get; set; }
     public string companyname { get; set; }
     public int employee_id { get; set; }
     public Byte? linemanager { get; set; }
    }

profil mapování

  Mapper.CreateMap<employeeinfo, employeeinfoDto>();
Položena 20/10/2018 v 12:55
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Můžete použít rozšíření Queryable jako tak:

var rStructure = _context.employeeinfo.Where(e => e.jobtitle.Contains(job_title))
                     .ProjectTo<employeeinfoDto>().ToList();
Odpovězeno 20/10/2018 v 15:04
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more