public void AddDto(UserDto dto) { //将dto转化为对应的domainModel //这里做dto和domain之间的映射,由于存在多对多的关系,这里需要整合做映射,不能像一对多简单对应 User temp = new User(); temp.ID = dto.ID; temp.Username = dto.Username; temp.Password = dto.Password; temp.PostType = dto.PostType; temp.CreateTime = dto.CreateTime; temp.CreateUser = dto.CreateUser; //转换部门标识DepartmentID var departments = _dataContext.Departments;//获取所有部门 foreach (var tem in departments) { if (tem.Name == dto.Department) { temp.DepartmentID = tem.ID;//获取部门对应id } } //转换角色标识RoleID //var roleusers = new List<RoleUser>(); //var roles = _dataContext.Roles;//获取所有角色 //for (int i=0; i < dto.Roles.Count; i++) //{ // foreach (var tem in roles) // { // if (tem.Name == dto.Roles[i]) // { // roleusers.Add(new RoleUser(tem.ID,dto.ID));//将角色id和用户id一起放入数据库 // } // } //} //temp.RoleUsers = roleusers; _userRepository.AddEntity(temp); //添加用户实体 //更新角色用户关系到RoleUser表 int userID = _userRepository.GetUserIDByUserName(dto.Username); //根据用户名获取用户ID var roles = _roleRepository.GetAllEntities(); foreach (var role in roles) { for (int i = 0; i < dto.Roles.Count; i++) { if (role.Name == dto.Roles[i]) { //更新到RoleUser表 _roleUserRepository.AddEntity(new RoleUser(role.ID, userID)); } } } }