Thanks David I'll try that after work would have yesterday but I was too tired to try crazy ideas. ;)
On Wed, Aug 19, 2009 at 9:39 AM, David Perfors <[email protected]> wrote: > > What I did in some cases whas to make a Base class map like: > class Person<T> : ClassMap<T> > { > } > > and the subclasses inherit from Person<T> instead of ClassMap<T> That > whay you still have the power of OO subclasses, > but the database see it as two different tables... > > (not sure if this is what you want though...) > > David Perfors. > > On Aug 19, 9:00 am, Mikael Henriksson <[email protected]> wrote: > > Gaaah all these limitations everywhere :) > > Not that I care about the database it's just frustrating that I can't > make > > it perfect!! Not saying it's your fault James, just saying that's all. > I'll > > try to make it work in a different manner. What I was actually trying to > > accomplish was to not have to repeat myself too much. So this would be my > > next step. Can't I just use the same ClassMap for these guys?. > > On Tue, Aug 18, 2009 at 9:56 PM, James Gregory <[email protected] > >wrote: > > > > > I assume what you're trying to do is have a Person table, and a > > > BoardMembers table, with BoardMember being a joined-subclass, and then > any > > > derived BoardMember's being discriminated...? > > > > > If that is the case, then I'm afraid you're out of > > > luck. Unless somebody knows otherwise, I'm pretty sure you can't do > that with NHibernate. You'll need them to all be in the same table and call > DiscriminateSubclassesOnColumn in your ClassMap. > > > > > On Tue, Aug 18, 2009 at 8:42 PM, Mikael Henriksson < > [email protected]>wrote: > > > > >> I have many classes but only three is important for what I am trying > to > > >> do. > > >> Let's say I have a person: > > >> public class Person > > >> { > > >> public virtual int Id { get; private set; } > > >> public virtual string FirstName { get; set; } > > >> public virtual string LastName { get; set; } > > >> } > > > > >> Now 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 that inherits from BoardMember: > > >> public class BoardMember : Person > > >> { > > >> public virtual Board Board { get; set; } > > >> public virtual MemberTypes Type { get; set; } > > >> } > > > > >> public class Chairman : BoardMember > > >> { > > > > >> } > > > > >> Now I thought I would do something like: > > >> 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() > > >> { > > > > >> } > > >> } > > > > >> However DiscriminateSubclassOnColumn is not available within > SubclassMap > > >> so how do I work around it? :) > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" 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/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---
