Я новичок в концепции структуры сущностей.Я создаю модель для Userlist и ролей, которые будут определять там уважаемый доступ.У пользователя может быть много ролей, а у роли может быть много пользователей
public class TblUser
{
[Key]
[MaxLength(50)]
public string UserID { get; set; }
[MaxLength(35)]
public string UserName { get; set; }
[MaxLength(150)]
public string EMailAddress { get; set; }
[MaxLength(150)]
public string Password { get; set; }
public DateTime LastLogIn { get; set; }
[MaxLength(3)]
public string ResetPassword { get; set; }
[MaxLength(150)]
public string ResetNewPassword { get; set; }
public DateTime ResetPasswordExpire { get; set; }
[MaxLength(3)]
public string Active { get; set; }
public List<TblRole> Roles { get; set; }
}
public class TblRole
{
[Key]
[MaxLength(50)]
public string RoleID { get; set; }
[MaxLength(50)]
public string RoleName { get; set; }
public List<TblUser> Users { get; set; }
}
вот моя база данных ![enter image description here](https://i.stack.imgur.com/aI5Or.jpg)
Я пытаюсь добавить нового пользователя с помощью коданиже, но я получаю эту ошибку {"ограничение не удалось \ r \ nUNIQUE ограничение не удалось: TblRole.RoleID"}
public string addNewUser(string Username, string Email, Model.DB.TblRole roles)
{
using (DatabaseContext db = new DatabaseContext())
{
ExpenseMonitoringSystem.Controller.Security sec = new Security();
string randomPassword = sec.Encrypt(RandomString(6, false));
if((from user in db.TblUser where user.UserName==Username select user).FirstOrDefault()!=null)
throw new Exception("The username is already used");
if ((from user in db.TblUser where user.EMailAddress == Email select user).FirstOrDefault() != null)
throw new Exception("The email is already used");
var newuser = new ExpenseMonitoringSystem.Model.DB.TblUser
{
UserID = Guid.NewGuid().ToString(),
Password = randomPassword,
UserName = Username,
ResetPassword = "YES",
ResetNewPassword = randomPassword,
ResetPasswordExpire = DateTime.Now.AddDays(10),
EMailAddress = Email,
Active = "YES",
Roles = new List<Model.DB.TblRole>() { roles }
};
db.TblUser.Add(newuser);
db.SaveChanges();
return randomPassword;
}
}