You're correct on both accounts.
You don't have to set the table name separately, but I would strongly
recommend it. The base class that you derive from
(ManyToManyTableNameConvention) has a lot of magic in for making sure it
doesn't set the table name for both sides of a bi-directional (we used to
have a bug where you'd end up with AToB and BToA for each side), and it's
also careful not to override anything you've explicitly set. Like I said,
you don't need to do this, but it can be a pain saver.

If you do go that route, you do need to implement both methods.

On Thu, Aug 27, 2009 at 4:34 PM, Chris W <[email protected]>wrote:

>
> Thanks James,
>
> Yeah, I was stuck on the Key.Column and Relationship.Column thing.
> Just to make sure I am understanding correctly, are you recommending
> that I set the 2 key values via IHasManyToManyConvention but use
> ManyToManyTableNameConvention for the table name?  Also, do I need to
> override both GetBiDirectionalTableName and
> GetUniDirectionalTableName?  Thanks again for the help!
>
> Chris
>
> On Aug 27, 4:07 am, James Gregory <[email protected]> wrote:
> > Also, consider using the acceptance
> > criteria<
> http://wiki.fluentnhibernate.org/Conventions#Conditional_applying_of_...>
> > instead
> > of your null checks, as you can't guarantee something will be null as
> they
> > get pre-populated with default values.
> >
> > On Thu, Aug 27, 2009 at 11:06 AM, James Gregory <[email protected]
> >wrote:
> >
> > > Firstly, be careful setting the many-to-many table name like you are,
> you
> > > can get into a mess like that. I'd recommend overriding the
> many-to-many
> > > table naming convention<
> http://wiki.fluentnhibernate.org/Available_conventions#ManyToManyTabl...>,
> > > which is specifically designed to handle both sides of a bi-directional
> > > many-to-many.
> > > ParentKeyColumn == Key.Column
> > > ChildKeyColumn == Relationship.Column
> >
> > > The latter is a little unclear I realise.
> >
> > > On Wed, Aug 26, 2009 at 6:54 PM, Chris Willard <
> > > [email protected]> wrote:
> >
> > >> Hello,
> >
> > >> I am in the process of upgrading to the Fluent 1.0RC and and stuck on
> > >> my IHasManyToManyConvention convention.  I can't seem to figure out
> > >> how to update ParentKeyColumn and ChildKeyColumn.  Below is my
> > >> original version.
> >
> > >>        public void Apply(IManyToManyPart target)
> > >>        {
> > >>            if (target.TableName ==  null)
> > >>                target.WithTableName(target.EntityType.Name +
> > >> target.ChildType.Name);
> > >>            if (target.ParentKeyColumn == null)
> > >>                target.WithParentKeyColumn(target.EntityType.Name +
> > >> "ID");
> > >>            if (target.ChildKeyColumn == null)
> > >>                target.WithChildKeyColumn(target.ChildType.Name +
> > >> "ID");
> > >>        }
> >
> > >> Thanks in advance,
> > >> Chris
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" 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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to