i have model view of product have many property , want save in database entity framework.but easy way using code :
public void newproduct(newproductmodel viewmodel) { var dbmodel = repository.findproductbyid(viewmodel.id); dbmodel.model = viewmodel.model; dbmodel.brand = viewmodel.brand; dbmodel.cost = viewmodel.cost; //its' many repository.addproduct(dbmodel); repository.savechange(); }
but property many. have better way reduce code?
you can use automapper or (https://github.com/automapper/automapper/wiki/configuration).
here's short example:
// make sure check out documentation before copy/pasting // code , using it's not proper way of using automapper public void newproduct(newproductmodel viewmodel) { var dbmodel = repository.findproductbyid(viewmodel.id); // if properties have same names automapper can automatically var config = new mapperconfiguration(cfg => cfg.createmap<newproductmodel, yourdbmodeltype>()); // otherwise use can create own mapping rules var config = new mapperconfiguration(cfg => cfg.createmap<newproductmodel, yourdbmodeltype>() .formember(dest => dest.model, opt => opt.mapfrom(src => src.model)) .formember(dest => dest.brand, opt => opt.mapfrom(src => src.brand)) .formember(dest => dest.cost, opt => opt.mapfrom(src => src.cost))); // mapping var mapper = config.createmapper(); var dbmodel = mapper.map<yourdbmodeltype>(viewmodel); repository.addproduct(dbmodel); repository.savechange(); }
you can find more info in documentation section on github repo
Comments
Post a Comment