Hoping the above is pseudocode, because you're mapping ID's as properties instead of identities.
Also you've got your inheritance set up to be: : SubClassMap<User> and I believe it should be: : SubClassMap<SpecialUser> That would explain why it thinks your status property is on the base User's table instead of the SpecialUser's table. On Mon, Dec 14, 2009 at 5:59 PM, Ethan <[email protected]> wrote: > I've got a set of mappings like this: public class UserMap : > ClassMap<User> > { > public UserMap() > { > Map(x => x.Id); > Map(x => x.Status); > } > } > > public class SpecialUserMap : SubClassMap<User> > { > public SpecialUserMap() > { > Map(x => x.Property); > } > } > > public class DirectoryMap : ClassMap<Directory> > { > public DirectoryMap > { > Map(x => x.Id); > HasMany(x => x.SpecialUsers).Where("Status = 0"); > } > } > > where User is a join map, and SpecialUser joins against it to get > things like Status. I can't get the DirectoryMap to work, since > accessing Directory's SpecialUsers collection causes a "undefined > column Status" error, as NHibernate can't figure out that the Status > column comes from the User table, and not the SpecialUser table. > Is there a way to manually tell NHibernate which column to look at? > > Another possible solution I thought of is to throw a subselect SQL > statement into the Where clause, but NHibernate tends to do this: > > Where("SELECT u.Status FROM User WHERE u.Id = Id) generates select > <columns> from [SpecialUser] specialuse0_ inner join [User] > specialuse0_1_ on <id = id> WHERE (SELECT u.Status FROM > specialuse0_.Status = 0) > > Basically it treats my variables as columns from the SpecialUser > table, and inserts specialuse0_ into the SQL instead. > If there is a way to make NHibernate not touch the SQL inserted in the > Where clause that might be a possible solution (albeit not a good one) > as well. > > -- > > 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]<fluent-nhibernate%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/fluent-nhibernate?hl=en. > > > -- - Hudson http://www.bestguesstheory.com http://twitter.com/HudsonAkridge -- 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.
