@@ -15,6 +15,26 @@ namespace Xtensive.Orm.Linq
1515 [ Serializable ]
1616 internal class LinqBindingCollection : BindingCollection < ParameterExpression , ProjectionExpression >
1717 {
18+ internal readonly ref struct ParameterScope
19+ {
20+ private readonly LinqBindingCollection owner ;
21+ private readonly IReadOnlyCollection < ParameterExpression > parameters ;
22+
23+ public void Dispose ( )
24+ {
25+ var linkedParameters = owner . linkedParameters ;
26+ foreach ( var parameter in parameters ) {
27+ linkedParameters . Remove ( parameter ) ;
28+ }
29+ }
30+
31+ public ParameterScope ( LinqBindingCollection owner , IReadOnlyCollection < ParameterExpression > parameters )
32+ {
33+ this . owner = owner ;
34+ this . parameters = parameters ;
35+ }
36+ }
37+
1838 private readonly Dictionary < ParameterExpression , IEnumerable < ParameterExpression > > linkedParameters
1939 = new Dictionary < ParameterExpression , IEnumerable < ParameterExpression > > ( ) ;
2040
@@ -57,26 +77,6 @@ public override void ReplaceBound(ParameterExpression key, ProjectionExpression
5777 }
5878 }
5979
60- internal readonly ref struct ParameterScope
61- {
62- private readonly LinqBindingCollection owner ;
63- private readonly IReadOnlyCollection < ParameterExpression > parameters ;
64-
65- public void Dispose ( )
66- {
67- var linkedParameters = owner . linkedParameters ;
68- foreach ( var parameter in parameters ) {
69- linkedParameters . Remove ( parameter ) ;
70- }
71- }
72-
73- public ParameterScope ( LinqBindingCollection owner , IReadOnlyCollection < ParameterExpression > parameters )
74- {
75- this . owner = owner ;
76- this . parameters = parameters ;
77- }
78- }
79-
8080 public ParameterScope LinkParameters ( IReadOnlyCollection < ParameterExpression > parameters )
8181 {
8282 foreach ( var parameter in parameters ) {
0 commit comments