Is there any other way to handle a database call if I need to search for values ββto display? It seems ugly to have database calls in display logic. How else is this handled?
For example, the table stores the SEXID, so using the resolver below I can do something like this
CreateMap<StagingPerson, Person>() .ForMember( dest => dest.SEXID, m => m.ResolveUsing<SexLookupResolver>().FromMember( src => src.Gender ) ); public class SexLookupResolver : ValueResolver<string, int> { protected override int ResolveCore( string source ) { int id = -1; if (source == "Male") id = dataAccess.GetGenderByString("M"); else if(source == "Female") id = dataAccess.GetGenderByString("F"); else if(source == "?") id = dataAccess.GetGenderByString("?"); else id = dataAccess.GetGenderByString("?"); return id; } }
DataAccess:
public int GetGenderByString(string gender) { string sql = "select sexid from Sexes where sex = '" + gender "'"; int sexid = ..... ...... return sexid; }
source share