Thanks for the replies.

I guess there are no sliver bullet to create a OR/M using NHibernate
with a legacy database.

I am trying to sell NHibernate to my boss and co-worker, do you guys
know if there are any quick way to generate at less the domain
objects?

On Feb 3, 6:01 pm, Chris Marisic <ch...@marisic.com> wrote:
> Also you can take a look at the conventions I created with the new
> Property/Type conventions.
>
> http://groups.google.com/group/fluent-nhibernate/browse_thread/thread...
>
> My 2 posts at the bottom of this discussion might give you some ideas.
>
> On Feb 3, 5:56 pm, James Gregory <jagregory....@gmail.com> wrote:
>
> > It depends really. Fluent NHibernate doesn't touch your database, so it
> > won't be able to automatically change properties based on column names
> > unless you've already mapped them.
> > The best you could do is map your properties as you've done, then create a
> > ITypeConvention to act on any properties that have a column name ending in
> > YN. This blog 
> > post<http://blog.jagregory.com/2009/01/11/fluent-nhibernate-auto-mapping-t...>
> > covers
> > ITypeConventions.
>
> > There's no way to do this with just plain automapping though.
>
> > On Tue, Feb 3, 2009 at 10:41 PM, c24chan <herman...@gmail.com> wrote:
>
> > > Hi,
>
> > > I am quite new to fluent NH, so please bare with me if this is a
> > > newbie question.
>
> > > I am dealing with a legacy db which consist of table with composite
> > > primary key.  For example, I have 2 domain object DOMAIN and DOMAIN_TL
> > > and here is the mapping class I have.
>
> > > public class DomainMap : ClassMap<Domain>
> > >    {
> > >        public DomainMap()
> > >        {
> > >            WithTable("DOMAIN_VALUE");
> > >            UseCompositeId().WithKeyProperty(x => x.DomainName,
> > > "DOMAIN_NAME").WithKeyProperty(x => x.Value, "VALUE");
> > >            Map(x => x.IsDefault).TheColumnNameIs
> > > ("DEFAULT_YN").CustomTypeIs(typeof(NHibernate.Type.YesNoType));
>
> > >            HasMany<DomainTL>(x => x.DomainTLs)
> > >                .WithKeyColumn("DOMAIN_NAME")
> > >                .WithKeyColumn("VALUE")
> > >                .Inverse()
> > >                .LazyLoad();
> > >        }
> > >    }
>
> > > and
>
> > > public class DomainTLMap : ClassMap<DomainTL>
> > >    {
> > >        public DomainTLMap()
> > >        {
> > >            WithTable("DOMAIN_VALUE_TL");
> > >            UseCompositeId().WithKeyProperty(x => x.DomainName,
> > > "DOMAIN_NAME")
> > >                .WithKeyProperty(x => x.Value, "VALUE")
> > >                .WithKeyProperty(x => x.Lang, "LANG");
>
> > >            Map(x => x.CreateDate).TheColumnNameIs("CREATE_DATE");
> > >            Map(x => x.CreateUser).TheColumnNameIs("CREATE_USER");
> > >            Map(x => x.DisplayOrder).TheColumnNameIs("DISPLAY_ORDER");
> > >            Map(x => x.DomainDisplayName).TheColumnNameIs
> > > ("DISPLAY_VALUE_TL");
> > >            Map(x => x.ModifyDate).TheColumnNameIs("MODIFY_DATE");
> > >            Map(x => x.ModifyUser).TheColumnNameIs("MODIFY_USER");
> > >            Map(x => x.SearchString).TheColumnNameIs("SEARCH_STRING");
>
> > >            References(x => x.Domain).WithColumns("DOMAIN_NAME",
> > > "VALUE").LazyLoad();
> > >        }
> > >    }
>
> > > This works fine, but I was wondering if I can let Fluent NH do the
> > > mapping for me instead.  Also, I have a lot of varchar(1) field which
> > > is always have names end with "_YN" which should be map to a bool
> > > type.  Can this be done with Automapping also?
>
> > > Thanks!

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to