Joined: Fri Apr 25, 2008 8:19 am Posts: 17
|
|
I have two BusinessObjects Beleg and BelegZeit (implements ILifecyle) with this mappings:
<class name="Beleg" table="lbkopf">
<id name="BelegNr" column="belegnr" access="field.pascalcase-underscore">
<generator class="assigned" />
</id>
<property name="Von" column="dvon" access="field.pascalcase-underscore"/>
<property name="Bis" column="dbis" access="field.pascalcase-underscore"/>
<bag name="Zeiten" access="field.pascalcase-underscore" order-by="pos" lazy="true" inverse="true" cascade="all">
<key column="belegnr" />
<one-to-many class="BelegZeit" />
</bag>
</class>
<class name="BelegZeit" table="lbzlist">
<composite-id>
<key-many-to-one name="Beleg" column="belegnr" access="field.pascalcase-underscore" />
<key-property name="Pos" column="pos" access="field.pascalcase-underscore" />
</composite-id>
<property name="Datum" column="datum" access="field.pascalcase-underscore"/>
</class>
When i call q.UniqueResult() then bz.OnSave (ILifecycle) is calling. Why? I don't want this behaviour.
using (ITransaction tx = session.BeginTransaction())
{
Beleg b = session.Get<Beleg>(398);
BelegZeit bz = new BelegZeit();
bz.Datum = DateTime.Today;
b.AddZeit(bz);
IQuery q = NHibernateHelper.GetCurrentSession().CreateQuery(
"select max(b.Pos) from BelegZeit as b where b.Beleg.BelegNr = :belegnr");
q.SetInt32("belegnr", b.BelegNr.Value);
object Result = q.UniqueResult();
...
|
|