1 year ago
#73061

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