Unfortunately, I've done something similar at work recently.
    public class PersonMapping : ClassMap<Person>
    {
        public PersonMapping()
        {
            Id(x => x.ID).GeneratedBy.GuidComb();
            Map(x => x.Name).Not.Nullable();
            JoinedSubClass<BoardMember>("ID", sm => MapBoardMember(sm));
        }

        private void MapBoardMember(JoinedSubClassPart<BoardMember> bm)
        {
            bm.Map(x => x.Type).Not.Nullable();
            bm.JoinedSubClass<Chairman>("ID", sm => MapChairman(sm));
        }

        private void MapChairman(JoinedSubClassPart<Chairman> cm)
        {
            cm.Map(x => x.SomeOtherProperty);
        }

    }




On Sun, Aug 23, 2009 at 11:59 AM, Tuna Toksoz <[email protected]> wrote:

> And I know the post is a bit old.
>
> Tuna Toksöz
> Eternal sunshine of the open source mind.
>
> http://devlicio.us/blogs/tuna_toksoz
> http://tunatoksoz.com
> http://twitter.com/tehlike
>
>
>
>
> On Sun, Aug 23, 2009 at 7:54 PM, Tuna Toksoz <[email protected]> wrote:
>
>>
>>    1. DiscriminateSubClassesOnColumn("Type")
>>    2.   .SubClass<B>(m =>
>>    3.   {
>>    4.     m.Map(x => x.BProperty);
>>    5.     m.SubClass<C>(m =>
>>    6.     {
>>    7.       m.Map(x => x.CProperty);
>>    8.     });
>>    9.   });
>>
>> from
>>
>> http://blog.jagregory.com/2009/01/05/fluent-nhibernate-subclass-syntax-changes/
>>
>> <http://blog.jagregory.com/2009/01/05/fluent-nhibernate-subclass-syntax-changes/>Does
>> that help?
>>
>>
>> Tuna Toksöz
>> Eternal sunshine of the open source mind.
>>
>> http://devlicio.us/blogs/tuna_toksoz
>> http://tunatoksoz.com
>> http://twitter.com/tehlike
>>
>>
>>
>>
>> On Sun, Aug 23, 2009 at 7:45 PM, Mikael Henriksson 
>> <[email protected]>wrote:
>>
>>> I tried but they are clueless :) Seriously though I was suggested it
>>> "might" be possible by Paul from fluent and to ask here. He suggested it
>>> might be "achievable" through join.
>>>
>>>
>>> On Sun, Aug 23, 2009 at 6:38 PM, Tuna Toksoz <[email protected]> wrote:
>>>
>>>> Perhaps you should ask in Fluent nhibernate group <
>>>> [email protected]>,
>>>>
>>>> Tuna Toksöz
>>>> Eternal sunshine of the open source mind.
>>>>
>>>> http://devlicio.us/blogs/tuna_toksoz
>>>> http://tunatoksoz.com
>>>> http://twitter.com/tehlike
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Aug 23, 2009 at 6:54 PM, Mikael Henriksson <
>>>> [email protected]> wrote:
>>>>
>>>>> I'll start with some code!
>>>>>
>>>>>     public class Person
>>>>>     {
>>>>>         public virtual int Id { get; private set; }
>>>>>         public virtual string FirstName { get; set; }
>>>>>         public virtual string LastName { get; set; }
>>>>>     }
>>>>>
>>>>>      public class BoardMember : Person
>>>>>     {
>>>>>         public virtual Board Board { get; set; }
>>>>>         public virtual MemberTypes Type { get; set; }
>>>>>     }
>>>>>
>>>>>     public class Chairman : BoardMember
>>>>>     {
>>>>>
>>>>>     }
>>>>>
>>>>> I want to inherit from person because a *board member *is a person.
>>>>> but I have different types of board members that I want to discriminate 
>>>>> on.
>>>>> For instance Chairman should inherit from BoardMember. I know this might 
>>>>> not
>>>>> be the best solution in this specific domain. I am mainly curious of if it
>>>>> is possible to do since I see a couple of problems:
>>>>>
>>>>>    1. Subclassing a class that is allready a subclass
>>>>>    2. Self referencing tables in a many to many situation
>>>>>
>>>>> My original attempt looks like the following (using fluent NH):
>>>>>
>>>>>  public class PersonMap : ClassMap<Person>
>>>>> {
>>>>> public PersonMap()
>>>>>  {
>>>>> Table("person");
>>>>> Id(x => x.Id, "person_id");
>>>>>  Map(x => x.FirstName, "person_first_name");
>>>>> Map(x => x.LastName, "person_last_name");
>>>>>  }
>>>>> }
>>>>>
>>>>>     public class BoardMemberMap : SubclassMap<BoardMember>
>>>>>     {
>>>>>         public BoardMemberMap()
>>>>>         {
>>>>>             Table("board_member");
>>>>>             Map(x => x.Type).Column("board_member_type");
>>>>>             DiscriminateSubclassOnColumn("board_member_type");
>>>>>         }
>>>>>     }
>>>>>
>>>>>     public class Chairman : SubclassMap<Chairman>
>>>>>     {
>>>>>         public Chairman()
>>>>>         {
>>>>>
>>>>>         }
>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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