Hi Gabriel This sound similar to the problem I've had trying to make inheritence work aswell.
AutoPersistenceModel .MapEntitiesFromAssemblyOf<Company>().Where(t => t.Namespace == "Something") .ForTypesThatDeriveFrom<Contact> (map => { var mapping = map.HasManyToMany<SiteRoleCompanyWithContacts>(t => t.SiteRoles) .WithTableName("SiteRoleCompanyWithContactsToContact"); mapping.SetAttribute("lazy", "true"); mapping.SetAttribute("cascade", "all"); mapping.SetAttribute("inverse", "true"); map.References(t =>t.Address) .SetAttribute("unique","true"); }) Cheers Andy On Mon, Oct 6, 2008 at 7:22 AM, Gabriel Schenker <[EMAIL PROTECTED]>wrote: > @Andy: I'm a little bit lost... and need your help > I can see what you are doing for things like References and HasMany. But > the Component part is special in that it has an additional action of type > Action<ComponentPart<C>> to be handled (auto-mapped). And there my problems > start... How can I "inject" or "auto-generate" this action part? > Any help is appreciated. > Note: I think this component stuff is really important since in a decent > domain model you will always have lots of value objects. And thus they > should be handled as first class citizen by auto-mapping ;-) > > > On Fri, Oct 3, 2008 at 10:21 AM, Andrew Stewart < > [EMAIL PROTECTED]> wrote: > >> Hi >> I've had a "very" quick look at what your trying to do, and here's the >> problem. I don't see a reason why this can't be achieved, although we don't >> currently support it - to add support you'd have to do something like below: >> >> Modify the convention class to hold your convention and create a class >> that can perform your mapping automatically, and inject it into AutoMapper >> as below: >> >>> i public AutoMapper(Conventions conventions) >>> >> { >>> >> _mappingRules = new List<IAutoMapper> >>> >> { >>> >> new AutoMapIdentity(conventions), >>> >> new AutoMapVersion(conventions), >>> >> new AutoMapColumn(conventions), >> >> new >> AutoMapComponent(conventions), >> >>> new AutoMapManyToOne(), >>> >> new AutoMapOneToMany(), >>> >> }; >>> >> } >> >> >> You'd then have to modify create the AutoMapComponent class which will >> implement the logic to automapping logic for a component. Which is basically >> a class that implments IAutoMapper, you see examples in any of the above >> classes. Hope that helps, if you manage to achieve it, please send me a >> patch and i'll get it put into the trunk. >> >> Cheers >> >> Andy >> >> On Fri, Oct 3, 2008 at 8:16 AM, Gabriel Schenker <[EMAIL PROTECTED]>wrote: >> >>> I have now a working version with (code snippet...) >>> >>> >>> .ForTypesThatDeriveFrom<Person>(map=>map.Component<Address>(t=>t.Address, >>> c=> >>> { >>> c.Map(p => p.Line1); >>> c.Map(p => p.Line2); >>> c.Map(p => p.PostalCode); >>> c.Map(p => p.City); >>> c.References(p => p.Country); >>> })) >>> >>> but since I have many different value objects this cannot be the >>> solution! I don't want to manually define all my mappings of value objects >>> >>> I wonder if it is not possible to define a convention for the mapping of >>> value objects? Something like >>> >>> AutoPersistenceModel >>> .MapEntitiesFromAssemblyOf<Person>() >>> *.WithConvention(c => c.MapAsComponent = type => >>> IsValueObject(type))* >>> >>> where the function *IsValueObject(...) *is a user defined function... >>> >>> would this be possible? >>> >>> >>> On Thu, Oct 2, 2008 at 11:37 PM, Andrew Stewart < >>> [EMAIL PROTECTED]> wrote: >>> >>>> Hi Gabriel >>>> To be honest mate, no idea- as I've never actually done it with the >>>> normal fluent-nhibernate. >>>> >>>> However if fluent-nhibernate supports it then AutoMapper supports it. >>>> Basically AutoPersitenceModel will map out as much of your model as it can >>>> figure out by it self then it's down to you to provide the extra's. To >>>> attempt to point you in the write direction it should be something like the >>>> below: >>>> >>>> AutopersistenceModel >>>> .MapEntitiesFromAssembly<EntityName>() >>>> .Where( t => t.Namespace=="YourNamespace") >>>> .ForTypesDerivedFromType<Person>( map => >>>> { >>>> /// Normal Fluent nibernate code goes here. >>>> }) >>>> .Configure(); >>>> >>>> This is all from memory, so it's probably slightly off. I'll be in work >>>> in the morning and can probably send you a more accurate example then. >>>> >>>> Good luck, let me know how you get on. >>>> >>>> Andy >>>> >>>> On Thu, Oct 2, 2008 at 10:13 PM, Gabriel Schenker <[EMAIL PROTECTED] >>>> > wrote: >>>> >>>>> >>>>> How do I configure my AutoPersistenceModel when using components? E.g >>>>> >>>>> Person-->Address >>>>> >>>>> where Person is an entity and Address is a value object (=component)? >>>>> >>>>> >>>> >>>> >>>> -- >>>> ================= >>>> I-nnovate Software - Bespoke Software Development, uk wirral. >>>> http://www.i-nnovate.net >>>> >>>> >>>> >>> >>> >>> >> >> >> -- >> ================= >> I-nnovate Software - Bespoke Software Development, uk wirral. >> http://www.i-nnovate.net >> >> >> > > > > -- ================= I-nnovate Software - Bespoke Software Development, uk wirral. http://www.i-nnovate.net --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---