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