and a roundtrip with a select and an INSERT without a Commit of the UoW is
smarter than a roundtrip with a select ?
how much smart is that select ?
what will happen with the second Add ? (with the current behaviour you will
have *zero* roundtrip and no insert until UoW commit)

As I said in another occasion smarter or not is a subjective opinion, what
is important is that NH is giving you the ability to define what is smarter
for you; in this case with, at least, two ways :
1) IUserCollectionType
2) ICollectionTypeFactory

If your intention is propose a possible improvement you can use our
issues-tracker and/or our development-list.

2010/1/13 Jørn Schou-Rode <[email protected]>

> Say, I have a Newsletter class with this property:
>
>  ICollection<string> Subscribers { get; private set; }
>
> Mapped like this:
>
>  <set name="Subscribers" table="Subscriber" lazy="extra">
>      <key column="NewsletterID" />
>      <element column="EmailAddress" />
>  </set>
>
> The lazy=extra setting improves scalability in scenarios such as:
>
>  - selecting the count of subscribers for a newsletter
>  - checking if a specific email address is subscribed
>
> I would expect adding an extra subscriber to a newsletter would be
> "cheap" as well. This code:
>
>  newsletter42.Subscribers.Add("[email protected]")
>
> should translate to something like this SQL:
>
>  if not exists ( select 1 from Subscriber where NewsletterID = 42 and
> EmailAddress = '[email protected]' )
>    insert into Subscriber ( NewsletterID, EmailAddress ) values ( 42,
> '[email protected]' )
>
> but it does not. Instead it causes the application to select all
> subscribers for the newsletter, and then inserting new subscriber
> after doing the duplicate check in-memory.
>
> Why is that? As NH seems to be built by people way smarter than me, I
> expect there is a very good reason why it behaves the way it does.
>
> Thanks in advance.
>
> --
> 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.
>
>
>
>


-- 
Fabio Maulo
--
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