Stò implementando una classe per inserimento dai dati durante l'installazione del database...
Il database e le tabelle vengono create correttamente, ma quando provo ad inserire i dati succede questo:
con _permissionService.AddNewPermission viene inserito nel database il nuovo record per la tabella Permission...codice:public virtual void InstallData(string defaultUserName, string defaultUserPassword) { Permission permission = _permissionService.AddNewPermission("CanAccessAdminArea", "Può accedere all'area di amministrazione"); Role role = _roleService.AddNewRole("Supervisor", "Ruolo Supervisor", permission); Account account = _accountService.AddNewAccount(defaultUserName, defaultUserPassword, role); }
con _roleService.AddNewRole viene inserito nel database il nuovo record per la tabella Role... In più viene inserito un nuovo record per la tabella permission (duplicato al precedente ma con id = 2) ...
con _accountService.AddNewAccount viene inserito nel database il nuovo record per la tabella Account... In più viene inserito un nuovo record per la tabella permission (duplicato al precedente ma con id = 3) e un nuovo record per la tabella Role (duplicato al precedente ma con id = 2)
Come posso risolvere??
codice:public Permission AddNewPermission(string Name, string Description) { Permission result = new Permission { Name = Name, Description = Description }; _permissionRepository.Insert(result); return result; }codice:public Role AddNewRole(string Name, string Description, Permission permission) { Role result = new Role { Name = Name, Description = Description, }; result.Permissions.Add(permission); _roleRepository.Insert(result); return result; }Questo è il codice che viene eseguito durante l'inserimento:codice:public Account AddNewAccount(string Username, string Password, Role role) { Account result = new Account { Username = Username, Password = Password, CreatedOn = DateTime.Now, Role = role }; _accountRepository.Insert(result); return result; }
Grazie in anticipo per l'aiuto...codice:public virtual void Insert(T entity) { try { if (entity == null) throw new ArgumentNullException("entity"); this.Entities.Add(entity); this._context.SaveChanges(); } catch (DbEntityValidationException dbEx) { var msg = string.Empty; foreach (var validationErrors in dbEx.EntityValidationErrors) foreach (var validationError in validationErrors.ValidationErrors) msg += string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage) + Environment.NewLine; var fail = new Exception(msg, dbEx); //Debug.WriteLine(fail.Message, fail); throw fail; } }

Rispondi quotando