Skip to content

Commit 7e15d89

Browse files
committed
Add exception when inner and outer selector parameters are the same
1 parent a681aab commit 7e15d89

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

Orm/Xtensive.Orm/Orm/Linq/Translator.Queryable.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,10 @@ private ProjectionExpression VisitJoin(Expression outerSource, Expression innerS
10071007
{
10081008
var outerParameter = outerKey.Parameters[0];
10091009
var innerParameter = innerKey.Parameters[0];
1010+
if (innerParameter == outerParameter) {
1011+
throw new NotSupportedException(Strings.ExJoinHasSameInnerAndOuterParameterInstances);
1012+
}
1013+
10101014
var outerSequence = VisitSequence(outerSource);
10111015
var innerSequence = VisitSequence(innerSource);
10121016
using (context.Bindings.Add(outerParameter, outerSequence))

Orm/Xtensive.Orm/Strings.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Orm/Xtensive.Orm/Strings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3476,4 +3476,7 @@ Error: {1}</value>
34763476
<data name="ComparisonOfTwoEntityFieldsIsNotSupported" xml:space="preserve">
34773477
<value>Comparison of two entity fields is not supported.</value>
34783478
</data>
3479+
<data name="ExJoinHasSameInnerAndOuterParameterInstances" xml:space="preserve">
3480+
<value>Inner and outer selector expressions have the same parameter instance. Probably you use the same lambda expression for both selectors, which is currently not supported.</value>
3481+
</data>
34793482
</root>

0 commit comments

Comments
 (0)