|
From: Roy J. (JIRA) <nh...@gm...> - 2011-05-24 09:54:45
|
Using an expression in QueryOver gives: Lambda Parameter not in scope
---------------------------------------------------------------------
Key: NH-2733
URL: http://216.121.112.228/browse/NH-2733
Project: NHibernate
Issue Type: Bug
Components: QueryOver
Affects Versions: 3.2.0CR1
Reporter: Roy Jacobs
Priority: Major
Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
query.Where(expression);
This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
The expression is constructed like this:
public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
{
return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
}
The call-stack (copy/pasted from R# test runner) looks like this:
--InvalidOperationException
at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
at System.Linq.Expressions.LambdaExpression.Compile()
at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|
|
From: Roy J. (JIRA) <nh...@gm...> - 2011-05-24 10:51:47
|
[ http://216.121.112.228/browse/NH-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roy Jacobs updated NH-2733:
---------------------------
Attachment: NH2733.zip
Added a failing unit test.
The problem is related to having a component inside of a mapping, the problem did not manifest itself when I didn't have the component.
> Using an expression in QueryOver gives: Lambda Parameter not in scope
> ---------------------------------------------------------------------
>
> Key: NH-2733
> URL: http://216.121.112.228/browse/NH-2733
> Project: NHibernate
> Issue Type: Bug
> Components: QueryOver
> Affects Versions: 3.2.0CR1
> Reporter: Roy Jacobs
> Priority: Major
> Attachments: NH2733.zip
>
>
> Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
> query.Where(expression);
> This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
> Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
> The expression is constructed like this:
> public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
> {
> return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
> }
> The call-stack (copy/pasted from R# test runner) looks like this:
> --InvalidOperationException
> at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
> at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
> at System.Linq.Expressions.LambdaExpression.Compile()
> at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
> at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
> at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
> at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
> at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
> at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
> at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
> at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
> at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|
|
From: Richard B. (JIRA) <nh...@gm...> - 2011-05-24 10:57:44
|
[ http://216.121.112.228/browse/NH-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard Brown reassigned NH-2733:
---------------------------------
Assignee: Richard Brown
> Using an expression in QueryOver gives: Lambda Parameter not in scope
> ---------------------------------------------------------------------
>
> Key: NH-2733
> URL: http://216.121.112.228/browse/NH-2733
> Project: NHibernate
> Issue Type: Bug
> Components: QueryOver
> Affects Versions: 3.2.0CR1
> Reporter: Roy Jacobs
> Assignee: Richard Brown
> Priority: Major
> Attachments: NH2733.zip
>
>
> Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
> query.Where(expression);
> This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
> Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
> The expression is constructed like this:
> public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
> {
> return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
> }
> The call-stack (copy/pasted from R# test runner) looks like this:
> --InvalidOperationException
> at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
> at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
> at System.Linq.Expressions.LambdaExpression.Compile()
> at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
> at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
> at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
> at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
> at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
> at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
> at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
> at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
> at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|
|
From: Richard B. (JIRA) <nh...@gm...> - 2011-05-25 21:16:50
|
[ http://216.121.112.228/browse/NH-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard Brown resolved NH-2733.
-------------------------------
Resolution: Fixed
Fix Version/s: 3.2.0CR1
Thanks for the test case.
I've added a few more tests so hopefully this won't slip through the net again.
Thanks again for catching this ... it's great to have such early feedback.
> Using an expression in QueryOver gives: Lambda Parameter not in scope
> ---------------------------------------------------------------------
>
> Key: NH-2733
> URL: http://216.121.112.228/browse/NH-2733
> Project: NHibernate
> Issue Type: Bug
> Components: QueryOver
> Affects Versions: 3.2.0CR1
> Reporter: Roy Jacobs
> Assignee: Richard Brown
> Priority: Major
> Fix For: 3.2.0CR1
>
> Attachments: NH2733.zip
>
>
> Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
> query.Where(expression);
> This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
> Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
> The expression is constructed like this:
> public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
> {
> return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
> }
> The call-stack (copy/pasted from R# test runner) looks like this:
> --InvalidOperationException
> at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
> at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
> at System.Linq.Expressions.LambdaExpression.Compile()
> at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
> at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
> at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
> at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
> at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
> at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
> at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
> at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
> at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|
|
From: Roy J. (JIRA) <nh...@gm...> - 2011-05-26 09:16:05
|
[ http://216.121.112.228/browse/NH-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21200#action_21200 ]
Roy Jacobs commented on NH-2733:
--------------------------------
I can confirm it works in our application as well.
> Using an expression in QueryOver gives: Lambda Parameter not in scope
> ---------------------------------------------------------------------
>
> Key: NH-2733
> URL: http://216.121.112.228/browse/NH-2733
> Project: NHibernate
> Issue Type: Bug
> Components: QueryOver
> Affects Versions: 3.2.0CR1
> Reporter: Roy Jacobs
> Assignee: Richard Brown
> Priority: Major
> Fix For: 3.2.0CR1
>
> Attachments: NH2733.zip
>
>
> Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
> query.Where(expression);
> This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
> Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
> The expression is constructed like this:
> public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
> {
> return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
> }
> The call-stack (copy/pasted from R# test runner) looks like this:
> --InvalidOperationException
> at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
> at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
> at System.Linq.Expressions.LambdaExpression.Compile()
> at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
> at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
> at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
> at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
> at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
> at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
> at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
> at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
> at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|
|
From: Richard B. (JIRA) <nh...@gm...> - 2011-05-26 14:41:59
|
[ http://216.121.112.228/browse/NH-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21202#action_21202 ]
Richard Brown commented on NH-2733:
-----------------------------------
Cheers, thanks for the update.
> Using an expression in QueryOver gives: Lambda Parameter not in scope
> ---------------------------------------------------------------------
>
> Key: NH-2733
> URL: http://216.121.112.228/browse/NH-2733
> Project: NHibernate
> Issue Type: Bug
> Components: QueryOver
> Affects Versions: 3.2.0CR1
> Reporter: Roy Jacobs
> Assignee: Richard Brown
> Priority: Major
> Fix For: 3.2.0CR1
>
> Attachments: NH2733.zip
>
>
> Among other things we occasionally use an IExpression in a QueryOver 'where', like so:
> query.Where(expression);
> This used to work quite well in the SVN trunk version of last week, but since then this starts breaking with an ArgumentException saying "Lambda Parameter not in scope".
> Now, I've seen that QueryOver got a bit of work done to support things like YearPart etc., so I'm assuming these changes are related.
> The expression is constructed like this:
> public Expression<Func<Item, bool>> GetExpression(DateTime? myStartDate, DateTime? myStopDate)
> {
> return item => item.StartDateTime < myStopDate.Value && item.StartDateTime >= myStartDate.Value;
> }
> The call-stack (copy/pasted from R# test runner) looks like this:
> --InvalidOperationException
> at System.Linq.Expressions.ExpressionCompiler.GenerateParameterAccess(ILGenerator gen, ParameterExpression p, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateMemberAccess(ILGenerator gen, Expression expression, MemberInfo member, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.Generate(ILGenerator gen, Expression node, StackType ask)
> at System.Linq.Expressions.ExpressionCompiler.GenerateLambda(LambdaExpression lambda)
> at System.Linq.Expressions.ExpressionCompiler.CompileDynamicLambda(LambdaExpression lambda)
> at System.Linq.Expressions.LambdaExpression.Compile()
> at NHibernate.Impl.ExpressionProcessor.EvaluatesToNull(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 280
> at NHibernate.Impl.ExpressionProcessor.IsMemberExpression(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 335
> at NHibernate.Impl.ExpressionProcessor.FindMemberProjection(Expression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 166
> at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 411
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 503
> at NHibernate.Impl.ExpressionProcessor.ProcessAndExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 470
> at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 506
> at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs: line 595
> at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 749
> at NHibernate.Criterion.QueryOver`2.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 357
> at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in c:\sandbox\nhibernate\src\NHibernate\Criterion\QueryOver.cs: line 800
--
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
|