Tuesday, 26 June 2018

Insert or Update model with Entity Framework and AutoMapper


Below is the example for Insert or Update "User" table using entity framework and automapper.

public bool AddOrUpdateUser(UserDto user)
        {
            logger.InfoFormat("AddOrUpdateUser User");
            try
            {
                var _userDto = context.Users.Where(x => x.UserName.ToLower() == user.UserName).FirstOrDefault();
                if (_userDto != null)
                {
                    user.Id = _userDto.Id;
                    AutoMapper.Mapper.CreateMap<UserDto, User>();
                    AutoMapper.Mapper.Map<UserDto, User>(user, _userDto);
                    context.Set<User>().Attach(_userDto);
                    context.Entry<User>(_userDto).State = EntityState.Modified;
                }
                else
                {
                    AutoMapper.Mapper.CreateMap<UserDto, User>();
                    var userDto = AutoMapper.Mapper.Map<UserDto, User>(user);

                    context.Entry(userDto).State = EntityState.Added;
                }
                context.SaveChanges();
                return true;
            }
            catch (Exception ex)
            {
                logger.InfoFormat("Error - AddOrUpdateUser User: {0} " + ex.StackTrace);
            }
            return false;
        }

No comments:

Post a Comment