NHibernate: cannot append items to map element -
i have map element in mapping -
<component name="resources"> <map name="inner" table="sometable" lazy="false" fetch="join" access="field.lowercase-underscore"> <key column="id"/> <index column="indexid" type="string"/> <composite-element class="someresource"> <property name="name"/> </composite-element> </map> </component>
i want append items in sometable in following way -
var ent = new entity(); ent.resources.add("key1", new someresource()); var saved = session.saveorupdate(ent); session.session.flush(); session.session.clear(); var newentity = new entity {id = saved.id}; ent.resources.add("key2", new someresource()); session.saveorupdate(newentity); // here nhib generates delete sometable id = saved.id session.session.flush(); session.session.clear();
i want have elements "key1" & "key2" in sometable after run, how can done?.. nhib deletes elements specified id sometable before second save.
with code creating 2 elements same id, primary key: that's why nhibernate deletes element "key1" (the ent object).
when create newentity, don't assing id property (as ent) if want new object. otherwise, if want update existing object, do:
var ent = new entity(); ent.resources.add("key1", new someresource()); var saved = session.saveorupdate(ent); session.session.flush(); session.session.clear(); // later... var enttoupdate = session.get<entity>(saved.id); ent.resources.add("key2", new someresource()); session.saveorupdate(enttoupdate); session.session.flush(); session.session.clear();
Comments
Post a Comment