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