entity framework - Mapping Data Model to Domain Model -


i using automapper map data model domain model, causing performance issue. in repository lazy loading employee record. inside repository when employee correct, when return employee.todomain() automapper causes of properties employee loaded, resulting in multiple queries being sent database causing page take several minutes load. there way prevent happening or should not use automapper in data access layer map domain model?

repository:

public employee getemployee(int employeeid) {     efmodels.employee employee = context.employees                     .singleordefault(e => e.employeeid == employeeid);      return employee != null ? employee.todomain() : null; } 

employee:

public class employee : basemodel {     ...     public domain.models.employee todomain()     {         return mapper.map<domain.models.employee>(this);     } } 

update

maps:

mapper.createmap<efdataaccess.efmodels.employee, employee>()             .formember(dto => dto.division, conf => conf.mapfrom(e => e.division.divisionname))             .formember(dto => dto.educationtype, conf => conf.mapfrom(e => e.educationtype.education))             .formember(dto => dto.eeojobcategory, conf => conf.mapfrom(e => e.eeojobcategory.eeojobcategoryname))             .formember(dto => dto.employeestatus, conf => conf.mapfrom(e => e.employeestatus.employeestatusname))             .formember(dto => dto.gendertype, conf => conf.mapfrom(e => e.gendertype.gender))             .formember(dto => dto.jobtitle, conf => conf.mapfrom(e => e.jobtitle.jobtitlename))             .formember(dto => dto.nationalorigintype, conf => conf.mapfrom(e => e.nationalorigintype.nationalorigin))             .formember(dto => dto.officelocation, conf => conf.mapfrom(e => e.officelocation.location))             .formember(dto => dto.positionnumber, conf => conf.mapfrom(e => e.positionnumber.number))             .formember(dto => dto.racetype, conf => conf.mapfrom(e => e.racetype.race))             .formember(dto => dto.transactiontype, conf => conf.mapfrom(e => e.transactiontype.transaction))             .formember(dto => dto.workscheduletype, conf => conf.mapfrom(e => e.workscheduletype.schedulenumbertype))             .reversemap(); 

repository:

public employee getemployee(int employeeid)     {         return context.employees             .where(e => e.employeeid== e.employeeid)             .project().to<employee>().firstordefault();     } 

the problem not automapper maybe have ef configured select related entities, can problem, solve in dbcontext constructor add base.configuration.lazyloadingenabled = false;.

another bad part see consulting first employeed (here, returnig fields have employee) , next doing mapping, tosolve this, please select fields need or use projection feautre of automapper: https://github.com/automapper/automapper/wiki/queryable-extensions

regards,


Comments

Popular posts from this blog

html - Firefox flex bug applied to buttons? -

html - Missing border-right in select on Firefox -

c# - two queries in same method -