He posted the same (or similar question earlier), to which I gave the same response. Lets see what'll happen this time.
On 12/15/09, Hudson Akridge <[email protected]> wrote: > 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. > > > -- 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.
