1 year ago

#73061

test-img

ps-create

one-to-many relationship Controller HttpPost Create

I have a problem with creating controller to my one to many relationship in webapi. When creating user user is not adding to user list in role and role is not adding to role object in user. I tried to save to database after role update but that didn't work either

Role

  [Table("role")]
    public class Role
    {
        [Key]   
        public Guid RoleId { get; set; }
    
        public string? RoleName { get; set; }
    
        public DateTime? CreatedAt { get; set; }
    
        public DateTime? UpdatedAt { get; set; }
        public ICollection<User> Users { get; set; }
        public Role() => Users = new HashSet<User>();
    } }

User

   [Table("user")]
    public class User
    {
        [Key]
        public Guid UserId{ get; set; }


        [Required(ErrorMessage = "Name is required"), MaxLength(60, ErrorMessage = "Name can't be longer than 60 characters")]
        [Display(Name = "Name")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Password is required"), MaxLength(50, ErrorMessage = "Password can't be longer than 50 characters")]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }
        public string ConfirmPassword { get; set;}

        [Required(ErrorMessage = "Email is required")]
        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }

        public DateTime? CreatedAt { get; set; }

        public DateTime? UpdatedAt { get; set; }


        [ForeignKey(nameof(Role))]
        public Guid Role_Id { get; set; }
        [JsonIgnore]
        public Role Role { get; set; }
        public User() => Role = new Role();
    }

Controller

    [HttpPost]
    public void Create(User user)
    {
       
        var Role = _repoWrapper.Role.FindByCondition(x => x.RoleName.Equals("Admin")).FirstOrDefault();
        user.Role = Role;
        user.Role.Users.Add(user);
        _repoWrapper.Role.Update(user.Role);
        _repoWrapper.User.Create(user);
        _repoWrapper.Save();
    }

c#

webapi

0 Answers

Your Answer

Accepted video resources