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
dans ma classe Action j'ai
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 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 private IList<Categorie> _categories; public virtual IList<Categorie> Categories { get { return _categories; } set { _categories = value; } }
dites - moi au moins si je suis sur une bonne piste ou il faudrait mapper d'une autre facon?
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); } }
merci![]()
Partager