c# - Cascade Update one-to-many with NHibernate -


i'm struggling nhibernate mapping problem. i'm using repository/unitofwork pattern, , i'm trying cascade-persist objects through update method. example: can alter foo, adding/updating/deleting bar objects , it's ok. when try add son , daughter objects "bar", , update foo (to persist bar , child objects), son , daughter objects not persisted db, foo bars (without son/daughter objects).

public class foo {     public int fooid {get; set;}     public string name {get; set;}     public virtual ilist<bar> bars {get; set;}         public foo(){} }     public class bar {     public int barid {get; set;}     public string name {get; set;}     public foo foo {get; set;}     public virtual ilist<son> sons {get; set;}     public virtual ilist<daughter> daughters {get; set;}     public bar(){} }     public class son {     public int sonid {get; set;}     public string name {get; set;}     public virtual bar bar {get; set;}     public son(){} }     public class daughter {     public int daughterid {get; set;}     public string name {get; set;}     public virtual bar bar {get; set;}     public daughter(){} }      //on foo.hbm.xml have: ... <bag name="bar" table="bar" inverse="true" cascade="all-delete-orphan" lazy="false">   <key column="fooid" />   <one-to-many class="bar" /> </bag>  //on bar.hbm.xml have ... <many-to-one name="foo" column="fooid" class="foo" lazy="false" /> <bag name="son" table="son" inverse="true" cascade="all-delete-orphan" lazy="false">   <key column="sonid" />   <one-to-many class="son" /> </bag>  <bag name="daughter" table="daughter" inverse="true" cascade="all-delete-orphan" lazy="false">   <key column="daughterid" />   <one-to-many class="daughter" /> </bag>  //on son/daughter.hbm.xmli have ... <many-to-one name="bar" column="barid" class="bar" lazy="false" /> 

where i'm doing wrong? thank in advance!

try following test :

    var newfoo = new foo();     var newbar = new bar();     var newson = new son();      _session.save(newbar);      newson.bar = newbar;     newbar.sons.add(newson);     foo.bar = newbar; 

Comments

Popular posts from this blog

Change php variable from jquery value using ajax (same page) -

Pull out data related to my apps from Android Play Store and iOS App Store -

How can I fetch data from a web server in an android application? -