I didn't think about approaching it from the top down for the prefix
question but that makes sense. My first question:

ForTypesThatDeriveFrom<T>(Action<AutoMap<T>> populateMap,...

where as when you use the .Component method that's on the AutoMap
object it is

Component<T>(Func..., Action<ComponentPart<T>> action) which seems to
only use regular mapping instead of automapping since I have to supply
all my arguments to override any field.

.ForTypesThatDeriveFrom<Employee>(autoMap =>
{
    autoMap.Map(p => p.JobTitle, "Title");
    autoMap.Map(p => p.Salutation, "TitleOfCourtesy");
    autoMap.Map(p => p.Phone, "HomePhone");
})
 With this I don't need to supply .Map on every single property on my
Employee object but

autoMap.Component<Address>(p => p.Address, addr =>
{
 addr.Map(c => c.Street, "Address");
 addr.Map(c => c.State, "Region");
 addr.Map(c => c.City, "City");
 addr.Map(c => c.Country, "Country");
 addr.Map(c => c.PostalCode, "PostalCode");
});

I do need to map every property.

There only seems to be a map component method and not an automap
component method, did that clear up my question?


On Feb 9, 6:07 am, James Gregory <jagregory....@gmail.com> wrote:
> > Should AutoMap.Component return down to Auto map for the component
>
> instead of just map so I don't need to have my redundant mappings
>
> I'm not quite sure what you mean here Chris.
>
>  In the second one for <Order> is there anyway I can reach back up to
>
> convention.GetComponentColumnPrefix = type => string.Empty;
>
> There's not, but you could specify your convention to be something like
> this:
>
> convention.GetComponentColumnPrefix = property =>
> {
>   if (property.PropertyType == typeof(Address) && property.DeclaringType ==
> typeof(Order))
>     return "Ship";
>   else
>     return property.PropertyType.Name;
>
> };
>
> that's from memory, so it may not be exact, but you'd check the type that
> the property is declared in to see if it's Order, then override the column
> prefix.
>
> On Sun, Feb 8, 2009 at 9:59 PM, Chris Marisic <ch...@marisic.com> wrote:
>
> > In my AutoPersistanceModel setup I have this in my mapping
>
> > .ForTypesThatDeriveFrom<Customer>(autoMap =>
> >                                    {
> >                                        autoMap.Id(p =>
> > p.Id).GeneratedBy.Assigned().SetAttribute("length", "5");
> >                                        autoMap.Map(p =>
> > p.CompanyName).Not.Nullable();
> >                                        autoMap.Component<Address>(p
> > => p.Address, addr =>
>
> > {
>
> > addr.Map(c => c.Street, "Address");
>
> > addr.Map(c => c.State, "Region");
>
> > addr.Map(c => c.City, "City");
>
> > addr.Map(c => c.Country, "Country");
>
> > addr.Map(c => c.PostalCode, "PostalCode");
>
> >           });
> >                                    })
> > .ForTypesThatDeriveFrom<Order>(autoMap =>
> >                                 {
> >                                     autoMap.References(p =>
> > p.ShipVia, "ShipVia");
> >                                     autoMap.Component<Address>(p =>
> > p.Address, addr =>
>
> > {
>
> > addr.Map(c => c.Street, "ShipAddress");
>
> > addr.Map(c => c.State, "ShipRegion");
>
> > addr.Map(c => c.City, "ShipCity");
>
> > addr.Map(c => c.Country, "ShipCountry");
>
> > addr.Map(c => c.PostalCode, "ShipPostalCode");
>
> >        });
>
> > })
>
> > })
>
> > Should AutoMap.Component return down to Auto map for the component
> > instead of just map so I don't need to have my redundant mappings
>
> > addr.Map(x => x.City, "City");
> > addr.Map(x => x.Country, "Country");
>
> > In the second one for <Order> is there anyway I can reach back up to
> > convention.GetComponentColumnPrefix = type => string.Empty;
>
> > That I change that convention ForTypesThatDeriveFrom<Order> to "Ship" ?
>
>
--~--~---------~--~----~------------~-------~--~----~
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