Bonjour, je suis en train de créer ma premiére appli asp.net c# avec NHibernate. Les simples mappings marchent bien, j'arrive à afficher des données d'une table, insere dans une table.
Mais voilà un dilème :
J'ai une table ACTION (IDACTION (clé))et un table CATEGORIE (IDCATEGORIE (clé)). Chaque action peut appartenir à plusieres categorie, et chaque Categorie peut referer plusieres actions. Donc, necessité d'une table intermediaire ACTION_CATEG(IDACTION ,IDCATEGORIE clé composée)

J'ai commencé de fair un mapping.
Sur la table ACTION je fais un idbag
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<idbag name='Categories' table='ACTION_CATEG'  lazy='true' cascade="all" >
      <collection-id column="IDACTION,IDCATEGORIE" type="long">
        <generator class="native" />
      </collection-id>
      <key column='IDACTION' />
      <many-to-many class='Categorie' column='IDCATEGORIE' />
  </idbag>
dans ma classe Action j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  private IList<Categorie> _categories;
 public virtual IList<Categorie> Categories
        {
            get { return _categories; }
            set { _categories = value; }
        }
Dans le programme j'ai une liste des categorie, et celles qui seront cochées de voudrai les attacher a une action (donc, insertion dans la table ACTION_CATEG')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 Action a = session.Get<Action>(24);
 
        foreach (ListItem i in chkCategories.Items)
        {
            if (i.Selected)
            {
                Categorie c= session.Get<Categorie>(int.Parse(i.Value));
                a.Categories.Add(c);           
            }
        }
dites - moi au moins si je suis sur une bonne piste ou il faudrait mapper d'une autre facon?

merci