-
Notifications
You must be signed in to change notification settings - Fork 931
Closed
Description
Igor Kiselev created an issue — 29th May 2013, 5:28:56:
When you use one-to-one mapping for object, that have with LINQ provider it's impossible to load property that contains associated object if it is not explicitly loaded in select clause.
Example:
<class name="ExternalField"> <composite-id> <key-property name="Id" /> <key-property name="Id2" /> </composite-id> </class> <class name="Field"> <composite-id> <key-property name="Id" /> <key-property name="Id2" /> </composite-id> <one-to-one name="ExternalField" lazy="false" fetch="join" /> </class>var fields = session.Query<Field>() .ToList() .Where(it => it.ExternalField != null).ToList();There will be no object in final list, even if DB have such. Same queries work when using NHibernate.Linq.
Ricardo Peres added a comment — 29th May 2013, 9:49:11:
If you take out the first ToList() on your LINQ query, the problem appears:
var fields = session.Query<Field>().Where(it => it.ExternalField != null).ToList();select field0_.Id as Id1_, field0_.Id2 as Id2_1_ from Field field0_ where ( field0_.Id, field0_.Id2 ) is not nullNHibernate is building a wrong SQL.
Alexander Zaytsev added a comment — 29th May 2013, 23:25:20:
The problem in HQL