To clarify, this does work with one-to-many. I don't think it works
with many-to-many. I just wanted to make sure and wonder if anyone
knew why it doesn't work.

On Feb 22, 6:44 pm, Robert Rudduck <[email protected]> wrote:
> With a Bag or a List you don't need the entire list because you are not
> guaranteeing  that there will be no duplicates. So NH can add items to the
> collection without loading them, until you enumerate it. With a Set however,
> uniqueness must be verified and therefore even adds must load the entire
> collection.
>
> Hope that helps..
>
> On Mon, Feb 22, 2010 at 12:14 PM, cliff vaughn 
> <[email protected]>wrote:
>
> > Diego,
>
> > I'm a little confused by your answer, because the NHibernate docs say this:
>
> > 14.1.3. Bags and lists are the most efficient inverse collections
>
> > Just before you ditch bags forever, there is a particular case in which
> > bags (and also lists) are much more performant than sets. For a collection
> > with inverse="true" (the standard bidirectional one-to-many relationship
> > idiom, for example) we can add elements to a bag or list without needing to
> > initialize (fetch) the bag elements! This is because IList.Add() or
> > IList.AddRange() must always succeed for a bag or IList (unlike a Set).
> > This can make the following common code much faster.
>
> > Parent p = (Parent) sess.Load(typeof(Parent), id);
> >     Child c = new Child();
> >     c.Parent = p;
> >     p.Children.Add(c);  //no need to fetch the collection!
> >     sess.Flush();
>
> > Which of you is correct?
>
> > thanks
>
> > cliff
>
> > On Mon, Feb 22, 2010 at 10:46 PM, Diego Mijelshon 
> > <[email protected]>wrote:
>
> >> If you access the collection, it WILL be loaded (otherwise, the in-memory
> >> model would have an inconsistency)
> >> With one-to-many+many-to-one on the other side, it's easy to do, you just
> >> create the relationship on the other side (the one that has many-to-one.
> >> With many-to-many, well, you could choose the side that has less elements
> >> to work from, or refactor the relationship into two one-to-many collections
> >> with an intermediate entity, so you can just create instances of that
> >> entity.
> >> In any case... you should do these things ONLY if you are experiencing
> >> perfomance problems because of the collection load. Are you?
>
> >>    Diego
>
> >> On Mon, Feb 22, 2010 at 13:53, Jonathan Curtis <
> >> [email protected]> wrote:
>
> >>> We have a entity with a many-to-many collection mapped as a lazy
> >>> loaded bag. When we load up the entity, the collection is not loaded -
> >>> great. Now we want to add a new entity to that collection. As soon as
> >>> we do this, the collection is loaded up.
>
> >>> How do we add the new entity without loading up the whole collection
> >>> (the collection is large)?
>
> >>> --
> >>> 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]<nhusers%[email protected]>
> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/nhusers?hl=en.
>
> > --
> > thanks
>
> > cliff
>
> > --
> >  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 at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to