Firstly, I can tell by your code that you're on an older version of Fluent
NHibernate - I'd advise updating as the join stuff has changed.
You should read this for the join syntax changes: Fluent NHibernate SubClass
syntax 
changes<http://blog.jagregory.com/2009/01/05/fluent-nhibernate-subclass-syntax-changes/>

Then have a read on this: I think you mean a many-to-one
sir<http://blog.jagregory.com/2009/01/27/i-think-you-mean-a-many-to-one-sir/>


Your code looks almost right except you're using HasOne which creates a
one-to-one relationship when really you need a many-to-one, which is the
References method.

James

On Thu, Jan 29, 2009 at 2:41 PM, chris <bikk...@gmail.com> wrote:

>
> Hi all,
> I have the following scenario that I'm struggling to map out in
> fluent.  Can anyone advise?
>
> Tables:
> =======
> TypeA
> TypeB
> User
>
> Relationships:
> ===========
> User table has a "type" discriminator column and a "typeID" so when
> the type column is A the typeID will point to the TypeA subtable.
>
> What I would like is for a many-to-one TypeA object be part of my
> subclass.
>
> Thanks,
> Chris
>
> public User {
>   int ID {get;set;}
>   string Name {get;set;}
>   string PasswordHash {get:set;}
>   string Type {get;set;}
> }
>
> public TypeAUser : User {
>    TypeA TypeA {get; set;}
> }
>
> public TypeBUser : User {
>   TypeB TypeB {get;set;}
> }
>
>  public class UserMap : ClassMap<User>
>  {
>    public UserMap()
>    {
>      WithTable("Users");
>
>      Id(x => x.ID, "userID").GeneratedBy.Identity();
>
>      Map(x => x.Name, "userName");
>      Map(x => x.PasswordHash, "userPasswordHash");
>      Map(x => x.Salt, "userSalt");
>      Map(x => x.Type, "userType").AsReadOnly();
>
>      DiscriminateSubClassesOnColumn<string>("userType")
>        .SubClass<TypeAUser>()
>            .IsIdentifiedBy("G")
>            .MapSubClassColumns(x => x.HasOne(g => g.TypeA))
>        .SubClass<TypeBUser>()
>        .IsIdentifiedBy("P")
>        .MapSubClassColumns(x => x.HasOne(g => g.TypeB)
>        );
>    }
>  }
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to