I thought it was this http://216.121.112.228/browse/NH-2203
Try to create a test fixture and i will have a look. 2011/2/4, Tim Hoolihan - @thoolihan <[email protected]>: > I checked out trunk (svn co > https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk > nhibernate) > built (ShowBuildMenut.bat option F) > copied the binaries to my lib folder, rebuilt and made sure it > referenced the new assemblies by checking version number. > > All 3 errors are exactly the same. Which one were you expecting to > work? Is there something else I'm missing? > > On Feb 4, 2:46 pm, José F. Romaniello <[email protected]> wrote: >> It is fixed on trunk version, i send a patch several months ago and >> was aplied few weeks ago >> >> 2011/2/4, Tim Hoolihan - @thoolihan <[email protected]>: >> >> >> >> >> >> >> >> >> >> > About the project: .Net 4, NH 3.0.0.4000, Castle, NH 3 Linq >> > (Remotion.Data.Linq), SQL Server 2008 >> >> > I have the following related entities... >> >> > Violation >> > Property Property >> >> > Property >> > ICollection<PropertyAddress> >> >> > PropertyAddress >> > Property Property >> > Address Address >> > bool IsPrimary >> >> > Address >> > string Address1 >> > string City >> > string State >> >> > Some relevant mapping snippets... >> >> > <class name="Violation" table="Violation"> >> > ... id, version and other fields ... >> > <many-to-one name="Property" class="Property" >> > column="PropertyId" cascade="save-update" /> >> > </class> >> >> > <class name="Property" table="Property"> >> > ... id, version and other fields ... >> > <set name="Addresses" cascade="save-update"> >> > <cache usage="read-write" /> >> > <key column="PropertyId" /> >> > <one-to-many class="PropertyAddress" /> >> > </set> >> > </class> >> >> > <class name="PropertyAddress" table="PropertyAddress"> >> > <cache usage="read-write" region="PropertyAddress" /> >> > <id name="Id" column="PropertyAddressId" type="long"> >> > <generator class="hilo" /> >> > </id> >> > <version name="Version" /> >> >> > <property name="IsPrimary" /> >> > <many-to-one name="Address" class="Address" column="AddressId" >> > cascade="save-update" unique="true" /> >> > <many-to-one name="Property" class="Property" >> > column="PropertyId" cascade="save-update" unique="true" /> >> > </class> >> >> > <class name="Address" table="Address"> >> > ... id, version and other fields ... >> >> > <property name="Address1"> >> > <column name="Address1" length="50" >> > index="IDX_Address_Address1" /> >> > </property> >> > <property name="City"> >> > <column name="City" length="50" index="IDX_Address_City" / >> >> > </property> >> > <property name="State"> >> > <column name="State" length="2" index="IDX_Address_State" / >> >> > </property> >> > </class> >> >> > I'm trying to get a list of violations sorted by the primary addresses >> > state in a linq query (because this is one of many similar queries >> > depending on user sorting and filtering, so it's easier to add pieces >> > of the filtering off of sorting and filtering using IQueryable). I can >> > achieve this in sql with: >> >> > SELECT distinct v.ViolationId, v.Description, a.Address1, a.City, >> > a.State >> > FROM Violation v >> > inner join Property p on v.PropertyId = p.PropertyId >> > inner join PropertyAddress pa on pa.PropertyId = p.PropertyId >> > inner join Address a on a.AddressId = pa.AddressId >> > where pa.IsPrimary = 1 >> > order by a.State >> >> > In Linq, I've tried several different approaches, I put the error in a >> > comment above each... >> >> > //{"Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. >> > [.OrderBy(NHibernate.Linq.NhQueryable`1[Kryptos.Model.Violation], >> > Quote((v, ) => //(.Select(.Where(v.Property.Addresses, (a, ) => >> > (a.IsPrimary), ), (pa, ) => (pa.Address.State), ))), )]"} >> >> > using (var tx = session.BeginTransaction()) >> > { >> > session.Query<Violation>() >> > .OrderBy(v => v.Property.Addresses.Where(a => >> > a.IsPrimary).Select(pa => pa.Address.State)) >> > .ForEach(ShowViolation); >> > tx.Commit(); >> > } >> >> > //{"Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. >> > [.OrderBy(NHibernate.Linq.NhQueryable`1[Kryptos.Model.Violation], >> > Quote((v, ) => //(.FirstOrDefault(v.Property.Addresses, (pa, ) => >> > (pa.IsPrimary), ).Address.State)), )]"} >> >> > using (var tx = session.BeginTransaction()) >> > { >> > session.Query<Violation>() >> > .OrderBy(v => >> > v.Property.Addresses.FirstOrDefault(pa => pa.IsPrimary).Address.State) >> > .ForEach(ShowViolation); >> > tx.Commit(); >> > } >> >> > //{"Could not parse expression >> > '[-1].Property.Addresses.AsQueryable()': This overload of the method >> > 'System.Linq.Queryable.AsQueryable' is currently not supported, but >> > you can register //your own parser if needed."} >> >> > using (var tx = session.BeginTransaction()) >> > { >> > session.Query<Violation>() >> > .OrderBy(v => >> > v.Property.Addresses.AsQueryable().FirstOrDefault(pa => >> > pa.IsPrimary).Address.State) >> > .ForEach(ShowViolation); >> > tx.Commit(); >> > } >> >> > I'll gladly post more code or info if I missed something relevant. If >> > anyone can shed some light on how to do this in linq it would be >> > greatly appreciated. If it's not possible in linq, are there any >> > recommended methods that are still friendly to dynamically building up >> > the sorting and filtering piece incrementally.By that, I mean in a >> > presenter like layer, we take an IQueryable source and apply a where >> > clause based on one view property, and then apply a sort based on >> > another view property, so this would easily map to something like a >> > single sproc with parameters. >> >> > -- >> > 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. >> >> -- >> Enviado desde mi dispositivo móvil > > -- > 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. > > -- Enviado desde mi dispositivo móvil -- 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.
