Après prendre plusieurs solution sur le mappage de ManyToMany je ne peux pas faire cette chose fonctionne
J'ai ces tables:Courant NHibernate ManyToMany avec table de référence
User:
intID (PK)
vcUsername
Role:
intID (PK)
vcDescription
UserRole:
intID (PK-FK)
intRole (PK-FK)
btActive
Voici ma classe:
public class User {
public virtual int Id {get; set;}
public virtual string Username {get;set;}
public virtual IList<UserRole> Roles {get; set;}
}
public class Role {
public virtual int Id {get; set;}
public virtual string Description {get;set;}
public virtual IList<UserRole> Users {get; set;}
}
public class UserRole {
public virtual User User {get; set;}
public virtual Role Role {get;set;}
public virtual bool IsActive {get; set;}
}
et ici est ma carte de classe:
public UserMap() {
Table("tb_user");
Id(f => f.Id).Column("intID").GeneratedBy.Native();
Map(f => f.Username).Column("vcUsername").Not.Nullable();
HasMany(f => f.Roles).KeyColumn("intID").LazyLoad().Inverse().Cascade.All();
}
public RoleMap() {
Table("tb_role");
Id(f => f.Id).Column("intID").GeneratedBy.Native();
Map(f => f.Description).Column("vcDescription").Not.Nullable();
HasMany(f => f.Roles).KeyColumn("intRole").LazyLoad();
}
public UserRoleMap()
{
Table("tb_user_role");
References(f => f.User).Column("intID").Not.Nullable();
References(f => f.Role).Column("intRole").Not.Nullable();
Map(f => f.IsActive).Column("btActive").Not.Nullable();
}
lorsque je courir, je reçois cette erreur au démarrage
The entity 'UserRole' doesn't have an Id mapped
Comment mapper ce ManyToMany correctement, avec le travail d'insertion et de mise à jour correctement? J'espère que votre guide clairement .. merci
Comme les états d'erreur, si vous mapper une entité, NH a besoin d'un cartographié 'Id' –
mais il y a aucun ID dans ma table de carte, j'essaye déjà d'ajouter l'identification mais a fini avec l'erreur 'l'identification de colonne non trouvée –