Well, I tried, WithTableName("(select distinct UserId, ClientId from
V_UserClients)" is working just fine.On Mon, Mar 8, 2010 at 4:44 PM, Colin Bowern <[email protected]> wrote: > So I looked into both and cannot figure out how to apply either given > that the AccessControlEntry component is only a part of a larger > object. Let me share the rest of the User map that might help as to > why it isn't a straight forward criteria: > > WithTable("Users"); > Id(x => x.Id, "UserId"); > Map(x => x.Name, "UserName"); > HasMany<long>(x => x.Clients) > .WithTableName("V_UserClients") > .KeyColumnNames.Add("UserId") > .AsElement("ClientId"); > ... > > How can I query for user with the ID 1234 and tell it only to grab > distinct rights entries? > > > On Mar 6, 10:40 am, Colin Bowern <[email protected]> wrote: > > @Olivier, @Fabio - thanks. I will give each of those a try (hacking > > the table name, vs. doing it at query time). > > > > On Mar 6, 7:51 am, Olivier Coanet <[email protected]> wrote: > > > > > > > > > Colin, > > > > > If performance is not your main concern, you can use the following hack > : > > > WithTableName("(select distinct * from V_UserApplicationPermissions)") > > > > > On Sat, Mar 6, 2010 at 3:57 AM, Fabio Maulo <[email protected]> > wrote: > > > > select distinct u from User u where u.Id = :thisIsAbergamotta > > > > > > 2010/3/5 Colin Bowern <[email protected]> > > > > > > I have an existing view which has too much data in it. Unfortunately > I > > > >> cannot get rid of it so I need to try to work around it using my > > > >> NHibernate mapping. The idea is to have NH issue the following > query: > > > > > >> SELECT DISTINCT User_Id, Module_Id, Application_Id, RightsMask > > > >> FROM V_UserApplicationPermissions > > > >> WHERE User_Id = ? > > > > > >> My current mapping for this list of AccessControlEntry types looks > > > >> like this: > > > > > >> HasMany<AccessControlEntry>(x => x.Rights) > > > >> .WithTableName("V_UserApplicationPermissions") > > > >> .KeyColumnNames.Add("User_Id") > > > >> .Component(c => > > > >> { > > > >> c.Map(x => x.Module, "Module_Id"); > > > >> c.Map(x => x.Application, "App_Id"); > > > >> c.Map(x => x.Rights, > > > >> "RightsMask").CustomTypeIs<ApplicationRightsType>(); > > > >> }) > > > >> .Not.LazyLoad(); > > > > > >> Any thoughts on how to have NHibernate put a DISTINCT keyword in > there > > > >> during the query? > > > > > >> -- > > > >> 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]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]> > > > > > >> . > > > >> For more options, visit this group at > > > >>http://groups.google.com/group/nhusers?hl=en. > > > > > > -- > > > > Fabio Maulo > > > > > > -- > > > > 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]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]> > > > > > > . > > > > For more options, visit this group at > > > >http://groups.google.com/group/nhusers?hl=en.-Hide quoted text - > > > > > - Show quoted text -- Hide quoted text - > > > > - Show quoted text - > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- 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.
