c# - An unhandled exception of type 'AutoMapper.AutoMapperMappingException' occurred in AutoMapper.dll -
i want understanding how automapper working. know basic idea, before used called viewmodels send information business needs extracted 1 or more database tables. i'm working on legacy project automapper used , maybe offers more given moment want undestand (be able) map domain object(s) dto object(s) or vice-versa, i'm not sure 1 correct way go since i'm not able it.
this simple example of console project i've made test basic functionalities of automapper:

where dto_user.cs class meant used send data front end. looks this:
public class dto_user { public int id { get; set; } public string name { get; set; } } and user.cs class represent actual domain data :
public class user { public int id { get; set; } public string name { get; set; } public string phonenumber { get; set; } } so trying do. in program.cs have static method creates user obejcts:
public static list<model.user> seedusers() { list<model.user> users = new list<model.user>() { new model.user { id = 1, name = "ivan", phonenumber = "1235436"}, new model.user { id = 2, name = "petkan", phonenumber = "00000000"}, new model.user { id = 3, name = "dragan", phonenumber = "11111111"}, new model.user { id = 4, name = "stoyan", phonenumber = "224545346"} }; return users; } then in main method try map mocked data dto list:
static void main(string[] args) { mapper.createmap<dto.dto_user, model.user>(); //mock user data if it's taken database list<model.user> users = new list<model.user>(); users.addrange(seedusers());//simulate call database //create list of dto users list<dto.dto_user> dtousers = new list<dto.dto_user>(); //now map database users our dto users foreach (var user in users) { dto.dto_user u = mapper.map<model.user, dto.dto_user>(user); dtousers.add(u); } } i got error inside foreah loop here:
dto.dto_user u = mapper.map<model.user, dto.dto_user>(user); saying have invalid arguments. don't catch idea how automapper meant implement actual mapping. code above looking natural me. know pretty basic actual solution won't challenging appreciate if explains me logic cracks , idea behind working code.
trying adding additional mapping:
mapper.createmap<model.user, dto.dto_user>(); and changing map invocation following:
dto.dto_user u = mapper.map<dto.dto_user>(user);
Comments
Post a Comment