I am running into this same exact issue. I'm handling it by only mapping the child to the parent, but not mapping the parent to the child. Not preferred, I understand, but it works. Please keep us posted as to your final solution.
On Jun 23, 5:23 pm, Ian <[email protected]> wrote: > Hi, > > I would like to know what the best way to map a collection of child > objects, that may have different parent types. > > For example, say I have a generic Comment class, which I want to reuse > to track comments associated with other entities such as Project, > Organisation, Document, etc...: > > public class Comment > { > public string Comment { get; set; } > public string User { get; set; } > public DateTime CommentDate { get; set; } > .... > > } > > public class Project > { > .... > public ISet<Comment> Comments { get; set; } > > } > > public class Organisation > { > .... > public ISet<Comment> Comments { get; set; } > > } > > If I use a one-to-many relationship for the Comments property in both > Project and Organisation mapping files I will obviously run into the > problem of the Comment records in the DB not knowing whether its > parent/owner is a Project or an Organisation. > > There should therefore be something allowing NHibernate to distinguish > what type of parent the comment record belongs to so it can load the > relevant comment records when loading a Project or Organisation. > > Is there a good way of supporting this in NHibernate? It seems > Hibernate supports the notion of 'Top-level Collections' > (http://www.xylax.net/hibernate/toplevel.html) to deal with exactly this type > of scenario, but I have found nothing in NHibernate. (It is possible > that it has been depracated in Hibernate as I also found a post > questionning whether this should be supported because it forces you to > break DB referential integrity as you no longer have FKs between child > and various parent records). > > Many thanks, > Ian -- 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.
