The reason I would like this to work is because the value I am calculating is a value that is being used very often. It is used to display a flag in a grid with many records that update quite often.
What I'm wondering is why this is regarded as hacking. I though that the concept of stored calculated fields was something quite normal. The only problem I have is that I do not know where to update this value. Do you have alternatives to the interceptor or the event listener mechanism? Or is there a way to implement this using the interceptor or event listener mechanism? On May 13, 4:08 pm, Diego Mijelshon <[email protected]> wrote: > I think using an interceptor for this is the wrong approach. > Instead, you can define your property as follows: > > public virtual int ChildCount > { > get { return Children.Count(c => c.IsOpen); } > } > > And map it as > > <property name="ChildCount" access="readonly" /> > > And you're done. No hacking. > This is exactly how I'm doing it now. > > Diego > > > > > > On Wed, May 12, 2010 at 15:14, pvginkel <[email protected]> wrote: > > I am using NHibernate 2.1.2.4000 with LinFu proxy generater and I have > > the following problem. > > > Basically, I have a parent child mapping: > > > <class name="Parent"> > > <id name="Id"> > > <generator class="native" /> > > </id> > > <property name="ChildCount" /> > > <set name="Children" inverse="true"> > > <key column="ParentId" /> > > <one-to-many class="Child" /> > > </set> > > </class> > > > <class name="Child"> > > <id name="Id" column="Id"> > > <generator class="native" /> > > </id> > > <property name="IsOpen"/> > > <many-to-one name="Parent" column="ParentId" /> > > </class> > > > When I a child is added, deleted or the IsOpen flag changes, the > > ChildCount must be updated. I do this in an interceptor. Creating or > > deleting the child works perfectly, and the count gets correctly > > updated. Changing the child, updating the ChildCount in the > > OnFlushDirty interceptor method however does not work. > > > I've tried everything I could think of. In a few of my tries, I got an > > exception in the transaction.Commit that the object could not be > > reassociated because it had a dirty collection. > > > My current hypothesis is that NHibernate specifically disallows these > > kinds of updated to e.g. prevent against circular references and never > > ending cascade update cycles. If this is the case, does anybody have > > an alternative to implement these kinds of cascade updates for cached > > field values? > > > I'm quite out of ideas and would like some assistance. > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<nhusers%[email protected] > > > > > . > > For more options, visit this group at > >http://groups.google.com/group/nhusers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/nhusers?hl=en. -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
