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