Courant NHibernate HasManyToMany () Sauvegarder / mettre à jour le problème
-
07-07-2019 - |
Question
J'ai le code suivant, qui est supposé donner des fonctionnalités spécifiques mais ce n'est pas: S
de toute façon, voici mon problème:
http://img525.imageshack.us/img525/1315/diagramp.png
voici le code de mappage:
public class UsersMap : ClassMap<User>
{
public UsersMap()
{
this.Table("Users");
Id(x => x.UserName).GeneratedBy.Assigned();
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Password);
Map(x =>x.EMail);
Map(x => x.Title);
Map(x => x.Division);
Map(x => x.Status);
HasManyToMany(x => x.Roles)
.Table("UserInRoles").ParentKeyColumn("Username")
.ChildKeyColumn("RoleId").AsBag().Inverse();
}
}
public class RolesMap : ClassMap<Role>
{
public RolesMap()
{
this.Table("Roles");
Id(x => x.ID).GeneratedBy.Assigned();
Map(x => x.RoleName);
HasManyToMany(x => x.Users)
.Table("UserInRoles").ParentKeyColumn("RoleId")
.ChildKeyColumn("Username").AsBag().Cascade.All();
}
}
mon problème, c’est lorsqu’on essaie (d’attribuer un rôle à un utilisateur spécifique) que le nom d’utilisateur est ajouté à la table UserInRoles mais que l’ID de rôle, s’il existe déjà, sera supprimé de la ligne correspondante et attribué à la nouvelle ligne. ?
La solution
Avez-vous envisagé de faire votre de nombreux travaux par convention ?
L'exemple lié fait en réalité référence aux rôles et à ce que vous essayez de faire ici.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow