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