Personally outside of an NHibernate environment I prefer uni because
their is less complexity BUT within NHibernate I have yet to make uni
relationships work WHEN there is a non-null constraint on the foreign
key.  The reason for this is that NHibernate ends up doing an insert,
and then a separate update to set the relevant ID.  For example the
following table setup will NOT work for me:

Game Table
GameId
Name

Player Table
PlayerId
GameId (non-null foreign key to GameId)
Name

NHibernate: INSERT INTO Game (GameId) VALUES (@p0); @p0 = '163840'
NHibernate: INSERT INTO Player (Id) VALUES (@p0); @p0 = '196608' <-
KABOOM! There is no GameId

Good luck finding a DBA that will agree to making GameId null-able
because of that "silly" tool you're using.

On Oct 21, 2:36 pm, "Symon Rottem" <[EMAIL PROTECTED]> wrote:
> I guess the primary issue is that if you do a bidirectional association you
> need to keep in mind that the other end of the association (from the one
> that's being modified) is not automatically updated so you need to add the
> logic to manage this yourself.
>
> For example, take the ubiquitous example of an Order class with an
> OrderLines collection which contains instances of the OrderLine class, which
> in turn has has an Order property.
>
> What happens when you create a new OrderLine object?
>
> If you set the Order property of the OrderLine instance and you've mapped a
> bidirectional association in your mapping where the collection end is mapped
> as inverse so it's not in control of the association the data in the
> database will be correct and when you load your Order or OrderLine both ends
> of the association are correct.
>
> The problem, however is before you save and reload the changes using
> NHibernate - the association in memory is not automatically handled so the
> Order instance's OrderLines collection will not contain the new OrderLine
> unless you explicitly add it yourself in your code.
>
> That's the primary reason I think most people avoid bidirectional
> associations - if it's appropriate for you to use then use it, just be aware
> of the extra work involved that NHibernate won't do for you.
>
> Cheers,
>
> Symon.
>
> On Tue, Oct 21, 2008 at 5:58 PM, Tim Barcz <[EMAIL PROTECTED]> wrote:
> > I'm hearing and reading different things....is unidirectional or
> > bidirectional the recommended way.
>
> > On certain scenarios I don't need to go unidirectional but then have a hard
> > time mapping but then see people say unidirectional is bad.
>
> > Which is it?  Uni or Bi?
>
> --
> Symon Rottemhttp://blog.symbiotic-development.com
--~--~---------~--~----~------------~-------~--~----~
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