|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-05-16 13:05:41
|
[ http://216.121.112.228/browse/NH-2706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fabio Maulo updated NH-2706:
----------------------------
Priority: Major (was: Critical)
> subselect in LINQ query with Contains clause produces wrong SQL
> ---------------------------------------------------------------
>
> Key: NH-2706
> URL: http://216.121.112.228/browse/NH-2706
> Project: NHibernate
> Issue Type: Bug
> Components: Linq Provider
> Affects Versions: 3.1.0
> Reporter: Krzysztof Koźmic
> Priority: Major
>
> I was trying to execute the following query
> return (from foo in _session.Query<Foo>()
> where (from personBar in _session.Query<PersonBars>()
> where personBar.Person.Id == _personId
> select personBar.Bar).Contains(foo.Bar)
> orderby foo.FooNumber
> select new SomeProjection(
> foo.Id,
> foo.A,
> foo.B,
> foo.Bar.Id,
> foo.Bar.Description)).ToList();
> basically the goal was to get all Foos with Bar that given user of the app has Bar for too.
> now the part of the SQL generated that has a bug in it looks kind of like this (sorry for obscuring it):
> where some clauses
> and (exists (select bar_.ID
> from PERSON_BAR pb
> joins to bar
> where some other clauses here
> and pb.ID = foo0_.BAR_ID))
> Notice the last line which should say
> pb.BAR_ID = foo0.BAR_ID
> that's the bug.
> Hope that helps.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|