[Tizen] Add BuildTools 2.1.0-rc1-02804-05
[platform/upstream/coreclr.git] / Tools / dotnetcli / sdk / NuGetFallbackFolder / remotion.linq / 2.1.1 / lib / net40 / Remotion.Linq.XML
1 <?xml version="1.0"?>
2 <doc>
3     <assembly>
4         <name>Remotion.Linq</name>
5     </assembly>
6     <members>
7         <member name="T:JetBrains.Annotations.AssertionConditionAttribute">
8             <summary>
9             Indicates the condition parameter of the assertion method. 
10             The method itself should be marked by <see cref="T:JetBrains.Annotations.AssertionMethodAttribute"/> attribute.
11             The mandatory argument of the attribute is the assertion type.
12             </summary>
13             <seealso cref="T:JetBrains.Annotations.AssertionConditionType"/>
14         </member>
15         <member name="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
16             <summary>
17             Initializes new instance of AssertionConditionAttribute
18             </summary>
19             <param name="conditionType">Specifies condition type</param>
20         </member>
21         <member name="P:JetBrains.Annotations.AssertionConditionAttribute.ConditionType">
22             <summary>
23             Gets condition type
24             </summary>
25         </member>
26         <member name="T:JetBrains.Annotations.AssertionConditionType">
27             <summary>
28             Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues. 
29             Otherwise, execution is assumed to be halted
30             </summary>
31         </member>
32         <member name="F:JetBrains.Annotations.AssertionConditionType.IS_TRUE">
33             <summary>
34             Indicates that the marked parameter should be evaluated to true
35             </summary>
36         </member>
37         <member name="F:JetBrains.Annotations.AssertionConditionType.IS_FALSE">
38             <summary>
39             Indicates that the marked parameter should be evaluated to false
40             </summary>
41         </member>
42         <member name="F:JetBrains.Annotations.AssertionConditionType.IS_NULL">
43             <summary>
44             Indicates that the marked parameter should be evaluated to null value
45             </summary>
46         </member>
47         <member name="F:JetBrains.Annotations.AssertionConditionType.IS_NOT_NULL">
48             <summary>
49             Indicates that the marked parameter should be evaluated to not null value
50             </summary>
51         </member>
52         <member name="T:JetBrains.Annotations.AssertionMethodAttribute">
53             <summary>
54             Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied. 
55             To set the condition, mark one of the parameters with <see cref="T:JetBrains.Annotations.AssertionConditionAttribute"/> attribute
56             </summary>
57             <seealso cref="T:JetBrains.Annotations.AssertionConditionAttribute"/>
58         </member>
59         <member name="T:JetBrains.Annotations.BaseTypeRequiredAttribute">
60             <summary>
61             When applied to target attribute, specifies a requirement for any type which is marked with 
62             target attribute to implement or inherit specific type or types
63             </summary>
64             <example>
65             <code>
66             [BaseTypeRequired(typeof(IComponent)] // Specify requirement
67             public class ComponentAttribute : Attribute 
68             {}
69             
70             [Component] // ComponentAttribute requires implementing IComponent interface
71             public class MyComponent : IComponent
72             {}
73             </code>
74             </example>
75         </member>
76         <member name="M:JetBrains.Annotations.BaseTypeRequiredAttribute.#ctor(System.Type)">
77             <summary>
78             Initializes new instance of BaseTypeRequiredAttribute
79             </summary>
80             <param name="baseType">Specifies which types are required</param>
81         </member>
82         <member name="P:JetBrains.Annotations.BaseTypeRequiredAttribute.BaseTypes">
83             <summary>
84             Gets enumerations of specified base types
85             </summary>
86         </member>
87         <member name="T:JetBrains.Annotations.CanBeNullAttribute">
88             <summary>
89             Indicates that the value of marked element could be <c>null</c> sometimes, so the check for <c>null</c> is necessary before its usage
90             </summary>
91         </member>
92         <member name="T:JetBrains.Annotations.CannotApplyEqualityOperatorAttribute">
93             <summary>
94             Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators.
95             There is only exception to compare with <c>null</c>, it is permitted
96             </summary>
97         </member>
98         <member name="T:JetBrains.Annotations.ContractAnnotationAttribute">
99             <summary>
100             Describes dependency between method input and output
101             </summary>
102             <syntax>
103             <p>Function definition table syntax:</p>
104             <list>
105             <item>FDT      ::= FDTRow [;FDTRow]*</item>
106             <item>FDTRow   ::= Input =&gt; Output | Output &lt;= Input</item>
107             <item>Input    ::= ParameterName: Value [, Input]*</item>
108             <item>Output   ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
109             <item>Value    ::= true | false | null | notnull | canbenull</item>
110             </list>
111             If method has single input parameter, it's name could be omitted. <br/>
112             Using "halt" (or "void"/"nothing", which is the same) for method output means that methos doesn't return normally. <br/>
113             "canbenull" annotation is only applicable for output parameters. <br/>
114             You can use multiple [ContractAnnotation] for each FDT row, or use single attribute with rows separated by semicolon. <br/>
115             </syntax>
116             <examples>
117             <list>
118             <item>[ContractAnnotation("=> halt")] public void TerminationMethod()</item>
119             <item>[ContractAnnotation("halt &lt;= condition: false")] public void Assert(bool condition, string text) // Regular Assertion method</item>
120             <item>[ContractAnnotation("s:null => true")] public bool IsNullOrEmpty(string s) // String.IsNullOrEmpty</item>
121             <item>[ContractAnnotation("null => null; notnull => notnull")] public object Transform(object data) // Method which returns null if parameter is null, and not null if parameter is not null</item>
122             <item>[ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] public bool TryParse(string s, out Person result)</item>
123             </list>
124             </examples>
125         </member>
126         <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Access">
127             <summary>
128             Only entity marked with attribute considered used
129             </summary>
130         </member>
131         <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Assign">
132             <summary>
133             Indicates implicit assignment to a member
134             </summary>
135         </member>
136         <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature">
137             <summary>
138             Indicates implicit instantiation of a type with fixed constructor signature.
139             That means any unused constructor parameters won't be reported as such.
140             </summary>
141         </member>
142         <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature">
143             <summary>
144             Indicates implicit instantiation of a type
145             </summary>
146         </member>
147         <member name="T:JetBrains.Annotations.ImplicitUseTargetFlags">
148             <summary>
149             Specify what is considered used implicitly when marked with <see cref="T:JetBrains.Annotations.MeansImplicitUseAttribute"/> or <see cref="T:JetBrains.Annotations.UsedImplicitlyAttribute"/>
150             </summary>
151         </member>
152         <member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.Members">
153             <summary>
154             Members of entity marked with attribute are considered used
155             </summary>
156         </member>
157         <member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.WithMembers">
158             <summary>
159             Entity marked with attribute and all its members considered used
160             </summary>
161         </member>
162         <member name="T:JetBrains.Annotations.InstantHandleAttribute">
163             <summary>
164             Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. 
165             If the parameter is delegate, indicates that delegate is executed while the method is executed.
166             If the parameter is enumerable, indicates that it is enumerated while the method is executed.
167             </summary>
168         </member>
169         <member name="T:JetBrains.Annotations.InvokerParameterNameAttribute">
170             <summary>
171             Indicates that the function argument should be string literal and match one of the parameters of the caller function.
172             For example, <see cref="T:System.ArgumentNullException"/> has such parameter.
173             </summary>
174         </member>
175         <member name="T:JetBrains.Annotations.LinqTunnelAttribute">
176             <summary>
177             Indicates that method is *pure* linq method, with postponed enumeration. C# iterator methods (yield ...) are always LinqTunnel.
178             </summary>
179         </member>
180         <member name="T:JetBrains.Annotations.LocalizationRequiredAttribute">
181             <summary>
182             Indicates that marked element should be localized or not.
183             </summary>
184         </member>
185         <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor">
186             <summary>
187             Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class with
188             <see cref="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required"/> set to <see langword="true"/>.
189             </summary>
190         </member>
191         <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor(System.Boolean)">
192             <summary>
193             Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class.
194             </summary>
195             <param name="required"><c>true</c> if a element should be localized; otherwise, <c>false</c>.</param>
196         </member>
197         <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.Equals(System.Object)">
198             <summary>
199             Returns whether the value of the given object is equal to the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.
200             </summary>
201             <param name="obj">The object to test the value equality of. </param>
202             <returns>
203             <c>true</c> if the value of the given object is equal to that of the current; otherwise, <c>false</c>.
204             </returns>
205         </member>
206         <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.GetHashCode">
207             <summary>
208             Returns the hash code for this instance.
209             </summary>
210             <returns>A hash code for the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.</returns>
211         </member>
212         <member name="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required">
213             <summary>
214             Gets a value indicating whether a element should be localized.
215             <value><c>true</c> if a element should be localized; otherwise, <c>false</c>.</value>
216             </summary>
217         </member>
218         <member name="T:JetBrains.Annotations.MeansImplicitUseAttribute">
219             <summary>
220             Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections)
221             </summary>
222         </member>
223         <member name="P:JetBrains.Annotations.MeansImplicitUseAttribute.TargetFlags">
224             <summary>
225             Gets value indicating what is meant to be used
226             </summary>
227         </member>
228         <member name="T:JetBrains.Annotations.NoEnumerationAttribute">
229             <summary>
230             Indicates that IEnumarable, passed as parameter, is not enumerated.
231             
232             </summary>
233         </member>
234         <member name="T:JetBrains.Annotations.NotifyPropertyChangedInvocatorAttribute">
235             <summary>
236             Indicates that the function is used to notify class type property value is changed.
237             </summary>
238         </member>
239         <member name="T:JetBrains.Annotations.NotNullAttribute">
240             <summary>
241             Indicates that the value of marked element could never be <c>null</c>
242             </summary>
243         </member>
244         <member name="T:JetBrains.Annotations.PublicAPIAttribute">
245             <summary>
246             This attribute is intended to mark publicly available API which should not be removed and so is treated as used.
247             </summary>
248         </member>
249         <member name="T:JetBrains.Annotations.PureAttribute">
250             <summary>
251             Indicates that method doesn't contain observable side effects.
252             </summary>
253         </member>
254         <member name="T:JetBrains.Annotations.StringFormatMethodAttribute">
255             <summary>
256             Indicates that marked method builds string by format pattern and (optional) arguments. 
257             Parameter, which contains format string, should be given in constructor.
258             The format string should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> -like form
259             </summary>
260         </member>
261         <member name="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
262             <summary>
263             Initializes new instance of StringFormatMethodAttribute
264             </summary>
265             <param name="formatParameterName">Specifies which parameter of an annotated method should be treated as format-string</param>
266         </member>
267         <member name="P:JetBrains.Annotations.StringFormatMethodAttribute.FormatParameterName">
268             <summary>
269             Gets format parameter name
270             </summary>
271         </member>
272         <member name="T:JetBrains.Annotations.TerminatesProgramAttribute">
273             <summary>
274             Indicates that the marked method unconditionally terminates control flow execution.
275             For example, it could unconditionally throw exception
276             </summary>
277         </member>
278         <member name="T:JetBrains.Annotations.UsedImplicitlyAttribute">
279             <summary>
280             Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
281             so this symbol will not be marked as unused (as well as by other usage inspections)
282             </summary>
283         </member>
284         <member name="P:JetBrains.Annotations.UsedImplicitlyAttribute.TargetFlags">
285             <summary>
286             Gets value indicating what is meant to be used
287             </summary>
288         </member>
289         <member name="T:Remotion.Utilities.ArgumentUtility">
290             <summary>
291             This utility class provides methods for checking arguments.
292             </summary>
293             <remarks>
294             Some methods of this class return the value of the parameter. In some cases, this is useful because the value will be converted to another 
295             type:
296             <code><![CDATA[
297             void foo (object o) 
298             {
299               int i = ArgumentUtility.CheckNotNullAndType<int> ("o", o);
300             }
301             ]]></code>
302             In some other cases, the input value is returned unmodified. This makes it easier to use the argument checks in calls to base class constructors
303             or property setters:
304             <code><![CDATA[
305             class MyType : MyBaseType
306             {
307               public MyType (string name) : base (ArgumentUtility.CheckNotNullOrEmpty ("name", name))
308               {
309               }
310             
311               public override Name
312               {
313                 set { base.Name = ArgumentUtility.CheckNotNullOrEmpty ("value", value); }
314               }
315             }
316             ]]></code>
317             </remarks>
318         </member>
319         <member name="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndType``1(System.String,System.Object)">
320             <summary>Returns the value itself if it is not <see langword="null"/> and of the specified value type.</summary>
321             <typeparam name="TExpected"> The type that <paramref name="actualValue"/> must have. </typeparam>
322             <exception cref="T:System.ArgumentNullException">The <paramref name="actualValue"/> is a <see langword="null"/>.</exception>
323             <exception cref="T:System.ArgumentException">The <paramref name="actualValue"/> is an instance of another type.</exception>
324         </member>
325         <member name="M:Remotion.Utilities.ArgumentUtility.DebugCheckNotNullAndType(System.String,System.Object,System.Type)">
326             <summary>Checks of the <paramref name="actualValue"/> is of the <paramref name="expectedType"/>.</summary>
327             <exception cref="T:System.ArgumentNullException">The <paramref name="actualValue"/> is a <see langword="null"/>.</exception>
328             <exception cref="T:System.ArgumentException">The <paramref name="actualValue"/> is an instance of another type.</exception>
329         </member>
330         <member name="M:Remotion.Utilities.ArgumentUtility.CheckType``1(System.String,System.Object)">
331             <summary>Returns the value itself if it is of the specified type.</summary>
332             <typeparam name="TExpected"> The type that <paramref name="actualValue"/> must have. </typeparam>
333             <exception cref="T:System.ArgumentException"> 
334                 <paramref name="actualValue"/> is an instance of another type (which is not a subtype of <typeparamref name="TExpected"/>).</exception>
335             <exception cref="T:System.ArgumentNullException"> 
336                 <paramref name="actualValue"/> is null and <typeparamref name="TExpected"/> cannot be null. </exception>
337             <remarks>
338               For non-nullable value types, you should use either <see cref="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndType``1(System.String,System.Object)"/> or pass the type 
339               <see cref="T:System.Nullable`1"/> instead.
340             </remarks>
341         </member>
342         <member name="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndTypeIsAssignableFrom(System.String,System.Type,System.Type)">
343             <summary>Checks whether <paramref name="actualType"/> is not <see langword="null"/> and can be assigned to <paramref name="expectedType"/>.</summary>
344             <exception cref="T:System.ArgumentNullException">The <paramref name="actualType"/> is <see langword="null"/>.</exception>
345             <exception cref="T:System.ArgumentException">The <paramref name="actualType"/> cannot be assigned to <paramref name="expectedType"/>.</exception>
346         </member>
347         <member name="M:Remotion.Utilities.ArgumentUtility.CheckTypeIsAssignableFrom(System.String,System.Type,System.Type)">
348             <summary>Checks whether <paramref name="actualType"/> can be assigned to <paramref name="expectedType"/>.</summary>
349             <exception cref="T:System.ArgumentException">The <paramref name="actualType"/> cannot be assigned to <paramref name="expectedType"/>.</exception>
350         </member>
351         <member name="M:Remotion.Utilities.ArgumentUtility.DebugCheckTypeIsAssignableFrom(System.String,System.Type,System.Type)">
352             <summary>Checks whether <paramref name="actualType"/> can be assigned to <paramref name="expectedType"/>.</summary>
353             <exception cref="T:System.ArgumentException">The <paramref name="actualType"/> cannot be assigned to <paramref name="expectedType"/>.</exception>
354         </member>
355         <member name="M:Remotion.Utilities.ArgumentUtility.CheckItemsType``1(System.String,``0,System.Type)">
356             <summary>Checks whether all items in <paramref name="collection"/> are of type <paramref name="itemType"/> or a null reference.</summary>
357             <exception cref="T:System.ArgumentException"> If at least one element is not of the specified type or a derived type. </exception>
358         </member>
359         <member name="M:Remotion.Utilities.ArgumentUtility.CheckItemsNotNullAndType``1(System.String,``0,System.Type)">
360             <summary>Checks whether all items in <paramref name="collection"/> are of type <paramref name="itemType"/> and not null references.</summary>
361             <exception cref="T:System.ArgumentException"> If at least one element is not of the specified type or a derived type. </exception>
362             <exception cref="T:System.ArgumentNullException"> If at least one element is a null reference. </exception>
363         </member>
364         <member name="T:Remotion.Utilities.Assertion">
365             <summary>
366             Provides methods that throw an <see cref="T:System.InvalidOperationException"/> if an assertion fails.
367             </summary>
368             <remarks>
369               <para>
370               This class contains methods that are conditional to the DEBUG and TRACE attributes (<see cref="M:Remotion.Utilities.Assertion.DebugAssert(System.Boolean)"/> and <see cref="M:Remotion.Utilities.Assertion.TraceAssert(System.Boolean)"/>). 
371               </para><para>
372               Note that assertion expressions passed to these methods are not evaluated (read: executed) if the respective symbol are not defined during
373               compilation, nor are the methods called. This increases performance for production builds, but make sure that your assertion expressions do
374               not cause any side effects! See <see cref="T:System.Diagnostics.ConditionalAttribute"/> or <see cref="T:System.Diagnostics.Debug"/> and <see cref="T:System.Diagnostics.Trace"/> the for more information 
375               about conditional compilation.
376               </para><para>
377               Assertions are no replacement for checking input parameters of public methods (see <see cref="T:Remotion.Utilities.ArgumentUtility"/>).  
378               </para>
379             </remarks>
380         </member>
381         <member name="M:Remotion.Utilities.NullableTypeUtility.IsNullableType(System.Type)">
382             <summary>
383             Determines whether a type is nullable, ie. whether variables of it can be assigned <see langword="null"/>.
384             </summary>
385             <param name="type">The type to check.</param>
386             <returns>
387             true if <paramref name="type"/> is nullable; otherwise, false.
388             </returns>
389             <remarks>
390             A type is nullable if it is a reference type or a nullable value type. This method returns false only for non-nullable value types.
391             </remarks>
392         </member>
393         <member name="T:Remotion.Linq.Clauses.AdditionalFromClause">
394             <summary>
395             Represents a data source in a query that adds new data items in addition to those provided by the <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>.
396             </summary>
397             <example>
398             In C#, the second "from" clause in the following sample corresponds to an <see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/>:
399             <ode>
400             var query = from s in Students
401                         from f in s.Friends
402                         select f;
403             </ode>
404             </example>
405         </member>
406         <member name="T:Remotion.Linq.Clauses.FromClauseBase">
407             <summary>
408             Base class for <see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/> and <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>.
409             </summary>
410             <seealso cref="T:Remotion.Linq.Clauses.IFromClause"/>
411         </member>
412         <member name="T:Remotion.Linq.Clauses.IFromClause">
413             <summary>
414             Common interface for from clauses (<see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/> and <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>). From clauses define query sources that
415             provide data items to the query which are filtered, ordered, projected, or otherwise processed by the following clauses.
416             </summary>
417         </member>
418         <member name="T:Remotion.Linq.Clauses.IClause">
419             <summary>
420             Represents a clause within the <see cref="T:Remotion.Linq.QueryModel"/>. Implemented by <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>, <see cref="T:Remotion.Linq.Clauses.SelectClause"/>, 
421             <see cref="T:Remotion.Linq.Clauses.IBodyClause"/>, and <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.
422             </summary>
423         </member>
424         <member name="M:Remotion.Linq.Clauses.IClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
425             <summary>
426             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
427             </summary>
428             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this 
429             clause, and those expressions will be replaced with what the delegate returns.</param>
430         </member>
431         <member name="T:Remotion.Linq.Clauses.IQuerySource">
432             <summary>
433             Represents a clause or result operator that generates items which are streamed to the following clauses or operators.
434             </summary>
435         </member>
436         <member name="P:Remotion.Linq.Clauses.IQuerySource.ItemName">
437             <summary>
438             Gets the name of the items generated by this <see cref="T:Remotion.Linq.Clauses.IQuerySource"/>.
439             </summary>
440             <remarks>
441             Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. 
442             However, note that names are not necessarily unique within a <see cref="T:Remotion.Linq.QueryModel"/>. Use names only for readability and debugging, not for 
443             uniquely identifying <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> objects. To match an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> with its references, use the 
444             <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> property rather than the <see cref="P:Remotion.Linq.Clauses.IQuerySource.ItemName"/>.
445             </remarks>
446         </member>
447         <member name="P:Remotion.Linq.Clauses.IQuerySource.ItemType">
448             <summary>
449             Gets the type of the items generated by this <see cref="T:Remotion.Linq.Clauses.IQuerySource"/>.
450             </summary>
451         </member>
452         <member name="M:Remotion.Linq.Clauses.IFromClause.CopyFromSource(Remotion.Linq.Clauses.IFromClause)">
453             <summary>
454             Copies the <paramref name="source"/>'s attributes, i.e. the <see cref="P:Remotion.Linq.Clauses.IQuerySource.ItemName"/>, <see cref="P:Remotion.Linq.Clauses.IQuerySource.ItemType"/>, and
455             <see cref="P:Remotion.Linq.Clauses.IFromClause.FromExpression"/>.
456             </summary>
457             <param name="source"></param>
458         </member>
459         <member name="P:Remotion.Linq.Clauses.IFromClause.FromExpression">
460             <summary>
461             The expression generating the data items for this from clause.
462             </summary>
463         </member>
464         <member name="M:Remotion.Linq.Clauses.FromClauseBase.#ctor(System.String,System.Type,System.Linq.Expressions.Expression)">
465             <summary>
466             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.FromClauseBase"/> class.
467             </summary>
468             <param name="itemName">A name describing the items generated by the from clause.</param>
469             <param name="itemType">The type of the items generated by the from clause.</param>
470             <param name="fromExpression">The <see cref="T:System.Linq.Expressions.Expression"/> generating data items for this from clause.</param>
471         </member>
472         <member name="M:Remotion.Linq.Clauses.FromClauseBase.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
473             <summary>
474             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
475             </summary>
476             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
477             clause, and those expressions will be replaced with what the delegate returns.</param>
478         </member>
479         <member name="P:Remotion.Linq.Clauses.FromClauseBase.ItemName">
480             <summary>
481             Gets or sets a name describing the items generated by this from clause.
482             </summary>
483             <remarks>
484             Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. 
485             However, note that names are not necessarily unique within a <see cref="T:Remotion.Linq.QueryModel"/>. Use names only for readability and debugging, not for 
486             uniquely identifying <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> objects. To match an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> with its references, use the 
487             <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> property rather than the <see cref="P:Remotion.Linq.Clauses.FromClauseBase.ItemName"/>.
488             </remarks>
489         </member>
490         <member name="P:Remotion.Linq.Clauses.FromClauseBase.ItemType">
491             <summary>
492             Gets or sets the type of the items generated by this from clause.
493             </summary>
494             <note type="warning">
495             Changing the <see cref="P:Remotion.Linq.Clauses.FromClauseBase.ItemType"/> of a <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> can make all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects that
496             point to that <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> invalid, so the property setter should be used with care.
497             </note>
498         </member>
499         <member name="P:Remotion.Linq.Clauses.FromClauseBase.FromExpression">
500             <summary>
501             The expression generating the data items for this from clause.
502             </summary>
503         </member>
504         <member name="T:Remotion.Linq.Clauses.IBodyClause">
505             <summary>
506             Represents a clause in a <see cref="T:Remotion.Linq.QueryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection. Body clauses take the items generated by 
507             the <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>, filtering (<see cref="T:Remotion.Linq.Clauses.WhereClause"/>), ordering (<see cref="T:Remotion.Linq.Clauses.OrderByClause"/>), augmenting 
508             (<see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/>), or otherwise processing them before they are passed to the <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>.
509             </summary>
510         </member>
511         <member name="M:Remotion.Linq.Clauses.IBodyClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
512             <summary>
513             Accepts the specified visitor by calling one of its Visit... methods.
514             </summary>
515             <param name="visitor">The visitor to accept.</param>
516             <param name="queryModel">The query model in whose context this clause is visited.</param>
517             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
518         </member>
519         <member name="M:Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext)">
520             <summary>
521             Clones this clause, registering its clone with the <paramref name="cloneContext"/> if it is a query source clause.
522             </summary>
523             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
524             <returns>A clone of this clause.</returns>
525         </member>
526         <member name="M:Remotion.Linq.Clauses.AdditionalFromClause.#ctor(System.String,System.Type,System.Linq.Expressions.Expression)">
527             <summary>
528             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/> class.
529             </summary>
530             <param name="itemName">A name describing the items generated by the from clause.</param>
531             <param name="itemType">The type of the items generated by the from clause.</param>
532             <param name="fromExpression">The <see cref="T:System.Linq.Expressions.Expression"/> generating the items of this from clause.</param>
533         </member>
534         <member name="M:Remotion.Linq.Clauses.AdditionalFromClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
535             <summary>
536             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause,Remotion.Linq.QueryModel,System.Int32)"/> method.
537             </summary>
538             <param name="visitor">The visitor to accept.</param>
539             <param name="queryModel">The query model in whose context this clause is visited.</param>
540             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
541         </member>
542         <member name="M:Remotion.Linq.Clauses.AdditionalFromClause.Clone(Remotion.Linq.Clauses.CloneContext)">
543             <summary>
544             Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
545             </summary>
546             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
547             <returns>A clone of this clause.</returns>
548         </member>
549         <member name="T:Remotion.Linq.Clauses.CloneContext">
550             <summary>
551             Aggregates all objects needed in the process of cloning a <see cref="T:Remotion.Linq.QueryModel"/> and its clauses.
552             </summary>
553         </member>
554         <member name="P:Remotion.Linq.Clauses.CloneContext.QuerySourceMapping">
555             <summary>
556             Gets the clause mapping used during the cloning process. This is used to adjust the <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances
557             of clauses to point to clauses in the cloned <see cref="T:Remotion.Linq.QueryModel"/>.
558             </summary>
559         </member>
560         <member name="T:Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor">
561             <summary>
562             This interface should be implemented by visitors that handle the <see cref="T:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression"/> instances.
563             </summary>
564         </member>
565         <member name="T:Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor">
566             <summary>
567             This interface should be implemented by visitors that handle VB-specific expressions.
568             </summary>
569         </member>
570         <member name="T:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression">
571             <summary>
572             Wraps an exception whose partial evaluation caused an exception.
573             </summary>
574             <remarks>
575             <para>
576             When <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor"/> encounters an exception while evaluating an independent expression subtree, it
577             will wrap the subtree within a <see cref="T:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression"/>. The wrapper contains both the <see cref="P:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.Exception"/> 
578             instance and the <see cref="P:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.EvaluatedExpression"/> that caused the exception.
579             </para>
580             <para>
581             To explicitly support this expression type, implement  <see cref="T:Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor"/>.
582             To ignore this wrapper and only handle the inner <see cref="P:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.EvaluatedExpression"/>, call the <see cref="M:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.Reduce"/> method and visit the result.
583             </para>
584             <para>
585             Subclasses of <see cref="T:Remotion.Linq.Parsing.ThrowingExpressionVisitor"/> that do not implement <see cref="T:Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor"/> will, 
586             by default, automatically reduce this expression type to the <see cref="P:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.EvaluatedExpression"/> in the 
587             <see cref="M:Remotion.Linq.Parsing.ThrowingExpressionVisitor.VisitExtension(System.Linq.Expressions.Expression)"/> method.
588             </para>
589             <para>
590             Subclasses of <see cref="T:Remotion.Linq.Parsing.RelinqExpressionVisitor"/> that do not implement <see cref="T:Remotion.Linq.Clauses.Expressions.IPartialEvaluationExceptionExpressionVisitor"/> will, 
591             by default, ignore this expression and visit its child expressions via the <see cref="M:System.Linq.Expressions.ExpressionVisitor.VisitExtension(System.Linq.Expressions.Expression)"/> and 
592             <see cref="M:Remotion.Linq.Clauses.Expressions.PartialEvaluationExceptionExpression.VisitChildren(System.Linq.Expressions.ExpressionVisitor)"/> methods.
593             </para>
594             </remarks>
595         </member>
596         <member name="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression">
597             <summary>
598             Represents an expression tree node that points to a query source represented by a <see cref="T:Remotion.Linq.Clauses.FromClauseBase"/>. These expressions should always
599             point back, to a clause defined prior to the clause holding a <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>. Otherwise, exceptions might be 
600             thrown at runtime.
601             </summary>
602             <remarks>
603             This particular expression overrides <see cref="M:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.Equals(System.Object)"/>, i.e. it can be compared to another <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> based
604             on the <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/>.
605             </remarks>
606         </member>
607         <member name="M:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.Equals(System.Object)">
608             <summary>
609             Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> by 
610             comparing the <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> properties for reference equality.
611             </summary>
612             <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>.</param>
613             <returns>
614             <see langword="true"/> if the specified <see cref="T:System.Object"/> is a <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> that points to the 
615             same <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/>; otherwise, false.
616             </returns>
617         </member>
618         <member name="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource">
619             <summary>
620             Gets the query source referenced by this expression.
621             </summary>
622             <value>The referenced query source.</value>
623         </member>
624         <member name="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression">
625             <summary>
626             Represents an <see cref="T:System.Linq.Expressions.Expression"/> that holds a subquery. The subquery is held by <see cref="P:Remotion.Linq.Clauses.Expressions.SubQueryExpression.QueryModel"/> in its parsed form.
627             </summary>
628         </member>
629         <member name="T:Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression">
630             <summary>
631             Represents a VB-specific comparison expression.
632             </summary>
633             <remarks>
634             <para>
635             To explicitly support this expression type, implement <see cref="T:Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor"/>.
636             To treat this expression as if it were an ordinary <see cref="T:System.Linq.Expressions.BinaryExpression"/>, call its <see cref="M:Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression.Reduce"/> method and visit the result.
637             </para>
638             <para>
639             Subclasses of <see cref="T:Remotion.Linq.Parsing.ThrowingExpressionVisitor"/> that do not implement <see cref="T:Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor"/> will, by default, 
640             automatically reduce this expression type to <see cref="T:System.Linq.Expressions.BinaryExpression"/> in the <see cref="M:Remotion.Linq.Parsing.ThrowingExpressionVisitor.VisitExtension(System.Linq.Expressions.Expression)"/> method.
641             </para>
642             <para>
643             Subclasses of <see cref="T:Remotion.Linq.Parsing.RelinqExpressionVisitor"/> that do not implement <see cref="T:Remotion.Linq.Clauses.Expressions.IVBSpecificExpressionVisitor"/> will, by default, 
644             ignore this expression and visit its child expressions via the <see cref="M:System.Linq.Expressions.ExpressionVisitor.VisitExtension(System.Linq.Expressions.Expression)"/> and 
645             <see cref="M:Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression.VisitChildren(System.Linq.Expressions.ExpressionVisitor)"/> methods.
646             </para>
647             </remarks>
648         </member>
649         <member name="T:Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor">
650             <summary>
651             Constructs a <see cref="T:System.Linq.Expressions.LambdaExpression"/> that is able to extract a specific simple expression from a complex <see cref="T:System.Linq.Expressions.NewExpression"/>
652             or <see cref="T:System.Linq.Expressions.MemberInitExpression"/>.
653             </summary>
654             <example>
655             <para>
656             For example, consider the task of determining the value of a specific query source [s] from an input value corresponding to a complex 
657             expression. This <see cref="T:Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor"/> will return a <see cref="T:System.Linq.Expressions.LambdaExpression"/> able to perform this task.
658             </para>
659             <para>
660             <list type="bullet">
661             <item>If the complex expression is [s], it will simply return input =&gt; input.</item>
662             <item>If the complex expression is new { a = [s], b = "..." }, it will return input =&gt; input.a.</item>
663             <item>If the complex expression is new { a = new { b = [s], c = "..." }, d = "..." }, it will return input =&gt; input.a.b.</item>
664             </list>
665             </para>
666             </example>
667         </member>
668         <member name="T:Remotion.Linq.Parsing.RelinqExpressionVisitor">
669             <summary>
670             Provides a base class for expression visitors used with re-linq, adding support for <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/> and <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>.
671             </summary>
672         </member>
673         <member name="M:Remotion.Linq.Parsing.RelinqExpressionVisitor.AdjustArgumentsForNewExpression(System.Collections.Generic.IList{System.Linq.Expressions.Expression},System.Collections.Generic.IList{System.Reflection.MemberInfo})">
674             <summary>
675             Adjusts the arguments for a <see cref="T:System.Linq.Expressions.NewExpression"/> so that they match the given members.
676             </summary>
677             <param name="arguments">The arguments to adjust.</param>
678             <param name="members">The members defining the required argument types.</param>
679             <returns>
680             A sequence of expressions that are equivalent to <paramref name="arguments"/>, but converted to the associated member's
681             result type if needed.
682             </returns>
683         </member>
684         <member name="M:Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor.FindAccessorLambda(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression)">
685             <summary>
686             Constructs a <see cref="T:System.Linq.Expressions.LambdaExpression"/> that is able to extract a specific simple <paramref name="searchedExpression"/> from a 
687             complex <paramref name="fullExpression"/>.
688             </summary>
689             <param name="searchedExpression">The expression an accessor to which should be created.</param>
690             <param name="fullExpression">The full expression containing the <paramref name="searchedExpression"/>.</param>
691             <param name="inputParameter">The input parameter to be used by the resulting lambda. Its type must match the type of <paramref name="fullExpression"/>.</param>
692             <remarks>The <see cref="T:Remotion.Linq.Clauses.ExpressionVisitors.AccessorFindingExpressionVisitor"/> compares the <paramref name="searchedExpression"/> via reference equality,
693             which means that exactly the same expression reference must be contained by <paramref name="fullExpression"/> for the visitor to return the
694             expected result. In addition, the visitor can only provide accessors for expressions nested in <see cref="T:System.Linq.Expressions.NewExpression"/> or 
695             <see cref="T:System.Linq.Expressions.MemberInitExpression"/>.</remarks>
696             <returns>A <see cref="T:System.Linq.Expressions.LambdaExpression"/> acting as an accessor for the <paramref name="searchedExpression"/> when an input matching 
697             <paramref name="fullExpression"/> is given.
698             </returns>
699         </member>
700         <member name="T:Remotion.Linq.Clauses.ExpressionVisitors.ReferenceReplacingExpressionVisitor">
701             <summary>
702             Takes an expression and replaces all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances, as defined by a given <see cref="T:Remotion.Linq.Clauses.QuerySourceMapping"/>.
703             This is used whenever references to query sources should be replaced by a transformation.
704             </summary>
705         </member>
706         <member name="M:Remotion.Linq.Clauses.ExpressionVisitors.ReferenceReplacingExpressionVisitor.ReplaceClauseReferences(System.Linq.Expressions.Expression,Remotion.Linq.Clauses.QuerySourceMapping,System.Boolean)">
707             <summary>
708             Takes an expression and replaces all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances, as defined by a given 
709             <paramref name="querySourceMapping"/>.
710             </summary>
711             <param name="expression">The expression to be scanned for references.</param>
712             <param name="querySourceMapping">The clause mapping to be used for replacing <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances.</param>
713             <param name="throwOnUnmappedReferences">If <see langword="true"/>, the visitor will throw an exception when 
714             <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> not mapped in the <paramref name="querySourceMapping"/> is encountered. If <see langword="false"/>,
715             the visitor will ignore such expressions.</param>
716             <returns>An expression with its <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances replaced as defined by the 
717             <paramref name="querySourceMapping"/>.</returns>
718         </member>
719         <member name="T:Remotion.Linq.Clauses.ExpressionVisitors.ReverseResolvingExpressionVisitor">
720             <summary>
721             Performs a reverse <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> operation, i.e. creates a <see cref="T:System.Linq.Expressions.LambdaExpression"/> from a given resolved expression, 
722             substituting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects by getting the referenced objects from the lambda's input parameter.
723             </summary>
724             <example>
725             Given the following input:
726             <list type="bullet">
727             <item>ItemExpression: <c>new AnonymousType ( a = [s1], b = [s2] )</c></item>
728             <item>ResolvedExpression: <c>[s1].ID + [s2].ID</c></item>
729             </list> 
730             The visitor generates the following <see cref="T:System.Linq.Expressions.LambdaExpression"/>: <c>input =&gt; input.a.ID + input.b.ID</c>
731             The lambda's input parameter has the same type as the ItemExpression.
732             </example>
733         </member>
734         <member name="M:Remotion.Linq.Clauses.ExpressionVisitors.ReverseResolvingExpressionVisitor.ReverseResolve(System.Linq.Expressions.Expression,System.Linq.Expressions.Expression)">
735             <summary>
736             Performs a reverse <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> operation, i.e. creates a <see cref="T:System.Linq.Expressions.LambdaExpression"/> from a given resolved expression, 
737             substituting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects by getting the referenced objects from the lambda's input parameter.
738             </summary>
739             <param name="itemExpression">The item expression representing the items passed to the generated <see cref="T:System.Linq.Expressions.LambdaExpression"/> via its input 
740             parameter.</param>
741             <param name="resolvedExpression">The resolved expression for which to generate a reverse resolved <see cref="T:System.Linq.Expressions.LambdaExpression"/>.</param>
742             <returns>A <see cref="T:System.Linq.Expressions.LambdaExpression"/> from the given resolved expression, substituting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> 
743             objects by getting the referenced objects from the lambda's input parameter. The generated <see cref="T:System.Linq.Expressions.LambdaExpression"/> has exactly one 
744             parameter which is of the type defined by <paramref name="itemExpression"/>.</returns>
745         </member>
746         <member name="M:Remotion.Linq.Clauses.ExpressionVisitors.ReverseResolvingExpressionVisitor.ReverseResolveLambda(System.Linq.Expressions.Expression,System.Linq.Expressions.LambdaExpression,System.Int32)">
747             <summary>
748             Performs a reverse <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> operation on a <see cref="T:System.Linq.Expressions.LambdaExpression"/>, i.e. creates a new 
749             <see cref="T:System.Linq.Expressions.LambdaExpression"/> with an additional parameter from a given resolved <see cref="T:System.Linq.Expressions.LambdaExpression"/>, 
750             substituting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects by getting the referenced objects from the new input parameter.
751             </summary>
752             <param name="itemExpression">The item expression representing the items passed to the generated <see cref="T:System.Linq.Expressions.LambdaExpression"/> via its new
753             input parameter.</param>
754             <param name="resolvedExpression">The resolved <see cref="T:System.Linq.Expressions.LambdaExpression"/> for which to generate a reverse resolved <see cref="T:System.Linq.Expressions.LambdaExpression"/>.</param>
755             <param name="parameterInsertionPosition">The position at which to insert the new parameter.</param>
756             <returns>A <see cref="T:System.Linq.Expressions.LambdaExpression"/> similar to the given resolved expression, substituting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> 
757             objects by getting the referenced objects from an additional input parameter. The new input parameter is of the type defined by 
758             <paramref name="itemExpression"/>.</returns>
759         </member>
760         <member name="T:Remotion.Linq.Clauses.GroupJoinClause">
761             <summary>
762             Represents the join part of a query, adding new data items and joining them with data items from previous clauses. In contrast to 
763             <see cref="T:Remotion.Linq.Clauses.JoinClause"/>, the <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/> does not provide access to the individual items of the joined query source.
764             Instead, it provides access to all joined items for each item coming from the previous clauses, thus grouping them together. The semantics
765             of this join is so that for all input items, a joined sequence is returned. That sequence can be empty if no joined items are available.
766             </summary>
767             <example>
768             In C#, the "into" clause in the following sample corresponds to a <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>. The "join" part before that is encapsulated
769             as a <see cref="T:Remotion.Linq.Clauses.JoinClause"/> held in <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.JoinClause"/>. The <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.JoinClause"/> adds a new query source to the query 
770             ("addresses"), but the item type of that query source is <see cref="T:System.Collections.Generic.IEnumerable`1"/>, not "Address". Therefore, it can be
771             used in the <see cref="P:Remotion.Linq.Clauses.FromClauseBase.FromExpression"/> of an <see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/> to extract the single items.
772             <code>
773             var query = from s in Students
774                         join a in Addresses on s.AdressID equals a.ID into addresses
775                         from a in addresses
776                         select new { s, a };
777             </code>
778             </example>
779         </member>
780         <member name="M:Remotion.Linq.Clauses.GroupJoinClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
781             <summary>
782             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
783             </summary>
784             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
785             clause, and those expressions will be replaced with what the delegate returns.</param>
786         </member>
787         <member name="M:Remotion.Linq.Clauses.GroupJoinClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
788             <summary>
789             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause,Remotion.Linq.QueryModel,System.Int32)"/> method.
790             </summary>
791             <param name="visitor">The visitor to accept.</param>
792             <param name="queryModel">The query model in whose context this clause is visited.</param>
793             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
794         </member>
795         <member name="M:Remotion.Linq.Clauses.GroupJoinClause.Clone(Remotion.Linq.Clauses.CloneContext)">
796             <summary>
797             Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
798             </summary>
799             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
800             <returns>A clone of this clause.</returns>
801         </member>
802         <member name="P:Remotion.Linq.Clauses.GroupJoinClause.ItemName">
803             <summary>
804             Gets or sets a name describing the items generated by this <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>.
805             </summary>
806             <remarks>
807             Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. 
808             However, note that names are not necessarily unique within a <see cref="T:Remotion.Linq.QueryModel"/>. Use names only for readability and debugging, not for 
809             uniquely identifying <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> objects. To match an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> with its references, use the 
810             <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> property rather than the <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.ItemName"/>.
811             </remarks>
812         </member>
813         <member name="P:Remotion.Linq.Clauses.GroupJoinClause.ItemType">
814             <summary>
815             Gets or sets the type of the items generated by this <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>. This must implement <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
816             </summary>
817             <note type="warning">
818             Changing the <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.ItemType"/> of a <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> can make all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects that
819             point to that <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> invalid, so the property setter should be used with care.
820             </note>
821         </member>
822         <member name="P:Remotion.Linq.Clauses.GroupJoinClause.JoinClause">
823             <summary>
824             Gets or sets the inner join clause of this <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>. The <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.JoinClause"/> represents the actual join operation
825             performed by this clause; its results are then grouped by this clause before streaming them to subsequent clauses. 
826             <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects outside the <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/> must not point to <see cref="P:Remotion.Linq.Clauses.GroupJoinClause.JoinClause"/> 
827             because the items generated by it are only available in grouped form from outside this clause.
828             </summary>
829         </member>
830         <member name="T:Remotion.Linq.Clauses.JoinClause">
831             <summary>
832             Represents the join part of a query, adding new data items and joining them with data items from previous clauses. This can either
833             be part of <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> or of <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>. The semantics of the <see cref="T:Remotion.Linq.Clauses.JoinClause"/>
834             is that of an inner join, i.e. only combinations where both an input item and a joined item exist are returned.
835             </summary>
836             <example>
837             In C#, the "join" clause in the following sample corresponds to a <see cref="T:Remotion.Linq.Clauses.JoinClause"/>. The <see cref="T:Remotion.Linq.Clauses.JoinClause"/> adds a new
838             query source to the query, selecting addresses (called "a") from the source "Addresses". It associates addresses and students by
839             comparing the students' "AddressID" properties with the addresses' "ID" properties. "a" corresponds to <see cref="P:Remotion.Linq.Clauses.JoinClause.ItemName"/> and 
840             <see cref="P:Remotion.Linq.Clauses.JoinClause.ItemType"/>, "Addresses" is <see cref="P:Remotion.Linq.Clauses.JoinClause.InnerSequence"/> and the left and right side of the "equals" operator are held by
841             <see cref="P:Remotion.Linq.Clauses.JoinClause.OuterKeySelector"/> and <see cref="P:Remotion.Linq.Clauses.JoinClause.InnerKeySelector"/>, respectively:
842             <code>
843             var query = from s in Students
844                         join a in Addresses on s.AdressID equals a.ID
845                         select new { s, a };
846             </code>
847             </example>
848         </member>
849         <member name="M:Remotion.Linq.Clauses.JoinClause.#ctor(System.String,System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression)">
850             <summary>
851             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.JoinClause"/> class.
852             </summary>
853             <param name="itemName">A name describing the items generated by this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.</param>
854             <param name="itemType">The type of the items generated by this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.</param>
855             <param name="innerSequence">The expression that generates the inner sequence, i.e. the items of this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.</param>
856             <param name="outerKeySelector">An expression that selects the left side of the comparison by which source items and inner items are joined.</param>
857             <param name="innerKeySelector">An expression that selects the right side of the comparison by which source items and inner items are joined.</param>
858         </member>
859         <member name="M:Remotion.Linq.Clauses.JoinClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
860             <summary>
861             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitJoinClause(Remotion.Linq.Clauses.JoinClause,Remotion.Linq.QueryModel,System.Int32)"/> 
862             method.
863             </summary>
864             <param name="visitor">The visitor to accept.</param>
865             <param name="queryModel">The query model in whose context this clause is visited.</param>
866             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
867         </member>
868         <member name="M:Remotion.Linq.Clauses.JoinClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.GroupJoinClause)">
869             <summary>
870             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitJoinClause(Remotion.Linq.Clauses.JoinClause,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.GroupJoinClause)"/> 
871             method. This overload is used when visiting a <see cref="T:Remotion.Linq.Clauses.JoinClause"/> that is held by a <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/>.
872             </summary>
873             <param name="visitor">The visitor to accept.</param>
874             <param name="queryModel">The query model in whose context this clause is visited.</param>
875             <param name="groupJoinClause">The <see cref="T:Remotion.Linq.Clauses.GroupJoinClause"/> holding this <see cref="T:Remotion.Linq.Clauses.JoinClause"/> instance.</param>
876         </member>
877         <member name="M:Remotion.Linq.Clauses.JoinClause.Clone(Remotion.Linq.Clauses.CloneContext)">
878             <summary>
879             Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
880             </summary>
881             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
882             <returns>A clone of this clause.</returns>
883         </member>
884         <member name="M:Remotion.Linq.Clauses.JoinClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
885             <summary>
886             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
887             </summary>
888             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
889             clause, and those expressions will be replaced with what the delegate returns.</param>
890         </member>
891         <member name="P:Remotion.Linq.Clauses.JoinClause.ItemType">
892             <summary>
893             Gets or sets the type of the items generated by this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.
894             </summary>
895             <note type="warning">
896             Changing the <see cref="P:Remotion.Linq.Clauses.JoinClause.ItemType"/> of a <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> can make all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> objects that
897             point to that <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> invalid, so the property setter should be used with care.
898             </note>
899         </member>
900         <member name="P:Remotion.Linq.Clauses.JoinClause.ItemName">
901             <summary>
902             Gets or sets a name describing the items generated by this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.
903             </summary>
904             <remarks>
905             Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. 
906             However, note that names are not necessarily unique within a <see cref="T:Remotion.Linq.QueryModel"/>. Use names only for readability and debugging, not for 
907             uniquely identifying <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> objects. To match an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> with its references, use the 
908             <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> property rather than the <see cref="P:Remotion.Linq.Clauses.JoinClause.ItemName"/>.
909             </remarks>
910         </member>
911         <member name="P:Remotion.Linq.Clauses.JoinClause.InnerSequence">
912             <summary>
913             Gets or sets the inner sequence, the expression that generates the inner sequence, i.e. the items of this <see cref="T:Remotion.Linq.Clauses.JoinClause"/>.
914             </summary>
915             <value>The inner sequence.</value>
916         </member>
917         <member name="P:Remotion.Linq.Clauses.JoinClause.OuterKeySelector">
918             <summary>
919             Gets or sets the outer key selector, an expression that selects the right side of the comparison by which source items and inner items are joined.
920             </summary>
921             <value>The outer key selector.</value>
922         </member>
923         <member name="P:Remotion.Linq.Clauses.JoinClause.InnerKeySelector">
924             <summary>
925             Gets or sets the inner key selector, an expression that selects the left side of the comparison by which source items and inner items are joined.
926             </summary>
927             <value>The inner key selector.</value>
928         </member>
929         <member name="T:Remotion.Linq.Clauses.MainFromClause">
930             <summary>
931             Represents the main data source in a query, producing data items that are filtered, aggregated, projected, or otherwise processed by
932             subsequent clauses.
933             </summary>
934             <example>
935             In C#, the first "from" clause in the following sample corresponds to the <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>:
936             <ode>
937             var query = from s in Students
938                         from f in s.Friends
939                         select f;
940             </ode>
941             </example>
942         </member>
943         <member name="M:Remotion.Linq.Clauses.MainFromClause.#ctor(System.String,System.Type,System.Linq.Expressions.Expression)">
944             <summary>
945             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> class.
946             </summary>
947             <param name="itemName">A name describing the items generated by the from clause.</param>
948             <param name="itemType">The type of the items generated by the from clause.</param>
949             <param name="fromExpression">The <see cref="T:System.Linq.Expressions.Expression"/> generating data items for this from clause.</param>
950         </member>
951         <member name="M:Remotion.Linq.Clauses.MainFromClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel)">
952             <summary>
953             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause,Remotion.Linq.QueryModel)"/> method.
954             </summary>
955             <param name="visitor">The visitor to accept.</param>
956             <param name="queryModel">The query model in whose context this clause is visited.</param>
957         </member>
958         <member name="M:Remotion.Linq.Clauses.MainFromClause.Clone(Remotion.Linq.Clauses.CloneContext)">
959             <summary>
960             Clones this clause, registering its clone with the <paramref name="cloneContext"/>.
961             </summary>
962             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
963             <returns>A clone of this clause.</returns>
964         </member>
965         <member name="T:Remotion.Linq.Clauses.OrderByClause">
966             <summary>
967             Represents the orderby part of a query, ordering data items according to some <see cref="P:Remotion.Linq.Clauses.OrderByClause.Orderings"/>.
968             </summary>
969             <example>
970             In C#, the whole "orderby" clause in the following sample (including two orderings) corresponds to an <see cref="T:Remotion.Linq.Clauses.OrderByClause"/>:
971             <ode>
972             var query = from s in Students
973                         orderby s.Last, s.First
974                         select s;
975             </ode>
976             </example>
977         </member>
978         <member name="M:Remotion.Linq.Clauses.OrderByClause.#ctor">
979             <summary>
980             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.OrderByClause"/> class.
981             </summary>
982         </member>
983         <member name="M:Remotion.Linq.Clauses.OrderByClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
984             <summary>
985             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause,Remotion.Linq.QueryModel,System.Int32)"/> method.
986             </summary>
987             <param name="visitor">The visitor to accept.</param>
988             <param name="queryModel">The query model in whose context this clause is visited.</param>
989             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
990         </member>
991         <member name="M:Remotion.Linq.Clauses.OrderByClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
992             <summary>
993             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
994             </summary>
995             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
996             clause, and those expressions will be replaced with what the delegate returns.</param>
997         </member>
998         <member name="M:Remotion.Linq.Clauses.OrderByClause.Clone(Remotion.Linq.Clauses.CloneContext)">
999             <summary>
1000             Clones this clause.
1001             </summary>
1002             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
1003             <returns>A clone of this clause.</returns>
1004         </member>
1005         <member name="P:Remotion.Linq.Clauses.OrderByClause.Orderings">
1006             <summary>
1007             Gets the <see cref="T:Remotion.Linq.Clauses.Ordering"/> instances that define how to sort the items coming from previous clauses. The order of the 
1008             <see cref="P:Remotion.Linq.Clauses.OrderByClause.Orderings"/> in the collection defines their priorities. For example, { LastName, FirstName } would sort all items by
1009             LastName, and only those items that have equal LastName values would be sorted by FirstName.
1010             </summary>
1011         </member>
1012         <member name="T:Remotion.Linq.Clauses.Ordering">
1013             <summary>
1014             Represents a single ordering instruction in an <see cref="T:Remotion.Linq.Clauses.OrderByClause"/>.
1015             </summary>
1016         </member>
1017         <member name="M:Remotion.Linq.Clauses.Ordering.#ctor(System.Linq.Expressions.Expression,Remotion.Linq.Clauses.OrderingDirection)">
1018             <summary>
1019             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.Ordering"/> class.
1020             </summary>
1021             <param name="expression">The expression used to order the data items returned by the query.</param>
1022             <param name="direction">The <see cref="P:Remotion.Linq.Clauses.Ordering.OrderingDirection"/> to use for sorting.</param>
1023         </member>
1024         <member name="M:Remotion.Linq.Clauses.Ordering.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.OrderByClause,System.Int32)">
1025             <summary>
1026             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitOrdering(Remotion.Linq.Clauses.Ordering,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.OrderByClause,System.Int32)"/> method.
1027             </summary>
1028             <param name="visitor">The visitor to accept.</param>
1029             <param name="queryModel">The query model in whose context this clause is visited.</param>
1030             <param name="orderByClause">The <see cref="T:Remotion.Linq.Clauses.OrderByClause"/> in whose context this item is visited.</param>
1031             <param name="index">The index of this item in the <paramref name="orderByClause"/>'s <see cref="P:Remotion.Linq.Clauses.OrderByClause.Orderings"/> collection.</param>
1032         </member>
1033         <member name="M:Remotion.Linq.Clauses.Ordering.Clone(Remotion.Linq.Clauses.CloneContext)">
1034             <summary>
1035             Clones this item.
1036             </summary>
1037             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
1038             <returns>A clone of this item.</returns>
1039         </member>
1040         <member name="M:Remotion.Linq.Clauses.Ordering.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1041             <summary>
1042             Transforms all the expressions in this item via the given <paramref name="transformation"/> delegate.
1043             </summary>
1044             <param name="transformation">The transformation object. This delegate is called for each <see cref="P:Remotion.Linq.Clauses.Ordering.Expression"/> within this
1045             item, and those expressions will be replaced with what the delegate returns.</param>
1046         </member>
1047         <member name="P:Remotion.Linq.Clauses.Ordering.Expression">
1048             <summary>
1049             Gets or sets the expression used to order the data items returned by the query.
1050             </summary>
1051             <value>The expression.</value>
1052         </member>
1053         <member name="P:Remotion.Linq.Clauses.Ordering.OrderingDirection">
1054             <summary>
1055             Gets or sets the direction to use for ordering data items.
1056             </summary>
1057         </member>
1058         <member name="T:Remotion.Linq.Clauses.OrderingDirection">
1059             <summary>
1060             Specifies the direction used to sort the result items in a query using an <see cref="T:Remotion.Linq.Clauses.OrderByClause"/>.
1061             </summary>
1062         </member>
1063         <member name="F:Remotion.Linq.Clauses.OrderingDirection.Asc">
1064             <summary>
1065             Sorts the items in an ascending way, from smallest to largest.
1066             </summary>
1067         </member>
1068         <member name="F:Remotion.Linq.Clauses.OrderingDirection.Desc">
1069             <summary>
1070             Sorts the items in an descending way, from largest to smallest.
1071             </summary>
1072         </member>
1073         <member name="T:Remotion.Linq.Clauses.QuerySourceMapping">
1074             <summary>
1075             Maps <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> instances to <see cref="T:System.Linq.Expressions.Expression"/> instances. This is used by <see cref="M:Remotion.Linq.QueryModel.Clone"/>
1076             in order to be able to correctly update references to old clauses to point to the new clauses. Via 
1077             <see cref="T:Remotion.Linq.Clauses.ExpressionVisitors.ReferenceReplacingExpressionVisitor"/>, it can also be used manually.
1078             </summary>
1079         </member>
1080         <member name="T:Remotion.Linq.Clauses.ResultOperatorBase">
1081             <summary>
1082             Represents an operation that is executed on the result set of the query, aggregating, filtering, or restricting the number of result items
1083             before the query result is returned.
1084             </summary>
1085         </member>
1086         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)">
1087             <summary>
1088             Executes this result operator in memory, on a given input. Executing result operators in memory should only be 
1089             performed if the target query system does not support the operator.
1090             </summary>
1091             <param name="input">The input for the result operator. This must match the type of <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedData"/> expected by the operator.</param>
1092             <returns>The result of the operator.</returns>
1093         </member>
1094         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo)">
1095             <summary>
1096             Gets information about the data streamed out of this <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>. This contains the result type a query would have if 
1097             it ended with this <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>, and it optionally includes an <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression"/> describing
1098             the streamed sequence's items.
1099             </summary>
1100             <param name="inputInfo">Information about the data produced by the preceding <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>, or the <see cref="T:Remotion.Linq.Clauses.SelectClause"/>
1101             of the query if no previous <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/> exists.</param>
1102             <returns>Gets information about the data streamed out of this <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>.</returns>
1103         </member>
1104         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.Clone(Remotion.Linq.Clauses.CloneContext)">
1105             <summary>
1106             Clones this item, registering its clone with the <paramref name="cloneContext"/> if it is a query source clause.
1107             </summary>
1108             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
1109             <returns>A clone of this item.</returns>
1110         </member>
1111         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
1112             <summary>
1113             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase,Remotion.Linq.QueryModel,System.Int32)"/> method.
1114             </summary>
1115             <param name="visitor">The visitor to accept.</param>
1116             <param name="queryModel">The query model in whose context this clause is visited.</param>
1117             <param name="index">The index of this item in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/> collection.</param>
1118         </member>
1119         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1120             <summary>
1121             Transforms all the expressions in this item via the given <paramref name="transformation"/> delegate. Subclasses must apply the 
1122             <paramref name="transformation"/> to any expressions they hold. If a subclass does not hold any expressions, it shouldn't do anything
1123             in the implementation of this method.
1124             </summary>
1125             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
1126             item, and those expressions will be replaced with what the delegate returns.</param>
1127         </member>
1128         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.InvokeExecuteMethod(System.Reflection.MethodInfo,System.Object)">
1129             <summary>
1130             Invokes the given <paramref name="method"/> via reflection on the given <paramref name="input"/>.
1131             </summary>
1132             <param name="input">The input to invoke the method with.</param>
1133             <param name="method">The method to be invoked.</param>
1134             <returns>The result of the invocation</returns>
1135         </member>
1136         <member name="M:Remotion.Linq.Clauses.ResultOperatorBase.GetConstantValueFromExpression``1(System.String,System.Linq.Expressions.Expression)">
1137             <summary>
1138             Gets the constant value of the given expression, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1139             not, an <see cref="T:System.InvalidOperationException"/> is thrown.
1140             </summary>
1141             <typeparam name="T">The expected value type. If the value is not of this type, an <see cref="T:System.InvalidOperationException"/> is thrown.</typeparam>
1142             <param name="expressionName">A string describing the value; this will be included in the exception message if an exception is thrown.</param>
1143             <param name="expression">The expression whose value to get.</param>
1144             <returns>
1145             The constant value of the given <paramref name="expression"/>.
1146             </returns>
1147         </member>
1148         <member name="T:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator">
1149             <summary>
1150             Represents aggregating the items returned by a query into a single value with an initial seeding value.
1151             This is a result operator, operating on the whole result set of a query.
1152             </summary>
1153             <example>
1154             In C#, the "Aggregate" call in the following example corresponds to an <see cref="T:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator"/>.
1155             <code>
1156             var result = (from s in Students
1157                          select s).Aggregate(0, (totalAge, s) =&gt; totalAge + s.Age);
1158             </code>
1159             </example>
1160         </member>
1161         <member name="T:Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase">
1162             <summary>
1163             Represents a <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/> that is executed on a sequence, returning a scalar value or single item as its result.
1164             </summary>
1165         </member>
1166         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.#ctor(System.Linq.Expressions.Expression,System.Linq.Expressions.LambdaExpression,System.Linq.Expressions.LambdaExpression)">
1167             <summary>
1168             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator"/> class.
1169             </summary>
1170             <param name="seed">The seed expression.</param>
1171             <param name="func">The aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression"/> taking a parameter that represents the value accumulated so 
1172             far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators
1173             are represented as expressions containing <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> nodes.</param>
1174             <param name="optionalResultSelector">The result selector, can be <see langword="null"/>.</param>
1175         </member>
1176         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.GetConstantSeed``1">
1177             <summary>
1178             Gets the constant value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Seed"/> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1179             not, an <see cref="T:System.InvalidOperationException"/> is thrown.
1180             </summary>
1181             <typeparam name="T">The expected seed type. If the item is not of this type, an <see cref="T:System.InvalidOperationException"/> is thrown.</typeparam>
1182             <returns>The constant value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Seed"/> property.</returns>
1183         </member>
1184         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ExecuteInMemory``1(Remotion.Linq.Clauses.StreamedData.StreamedSequence)">
1185             <inheritdoc cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>
1186         </member>
1187         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ExecuteAggregateInMemory``3(Remotion.Linq.Clauses.StreamedData.StreamedSequence)">
1188             <summary>
1189             Executes the aggregating operation in memory.
1190             </summary>
1191             <typeparam name="TInput">The type of the source items.</typeparam>
1192             <typeparam name="TAggregate">The type of the aggregated items.</typeparam>
1193             <typeparam name="TResult">The type of the result items.</typeparam>
1194             <param name="input">The input sequence.</param>
1195             <returns>A <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValue"/> object holding the aggregated value.</returns>
1196         </member>
1197         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Clone(Remotion.Linq.Clauses.CloneContext)">
1198             <inheritdoc />
1199         </member>
1200         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo)">
1201             <inheritdoc />
1202         </member>
1203         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.ToString">
1204             <inheritdoc />
1205         </member>
1206         <member name="P:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Func">
1207             <summary>
1208             Gets or sets the aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression"/> taking a parameter that represents the value accumulated so 
1209             far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators
1210             are represented as expressions containing <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> nodes.
1211             </summary>
1212             <value>The aggregating function.</value>
1213         </member>
1214         <member name="P:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.Seed">
1215             <summary>
1216             Gets or sets the seed of the accumulation. This is an <see cref="T:System.Linq.Expressions.Expression"/> denoting the starting value of the aggregation.
1217             </summary>
1218             <value>The seed of the accumulation.</value>
1219         </member>
1220         <member name="P:Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator.OptionalResultSelector">
1221             <summary>
1222             Gets or sets the result selector. This is a <see cref="T:System.Linq.Expressions.LambdaExpression"/> applied after the aggregation to select the final value.
1223             Can be <see langword="null"/>.
1224             </summary>
1225             <value>The result selector.</value>
1226         </member>
1227         <member name="T:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator">
1228             <summary>
1229             Represents aggregating the items returned by a query into a single value. The first item is used as the seeding value for the aggregating 
1230             function.
1231             This is a result operator, operating on the whole result set of a query.
1232             </summary>
1233             <example>
1234             In C#, the "Aggregate" call in the following example corresponds to an <see cref="T:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator"/>.
1235             <code>
1236             var result = (from s in Students
1237                          select s.Name).Aggregate((allNames, name) =&gt; allNames + " " + name);
1238             </code>
1239             </example>
1240         </member>
1241         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.#ctor(System.Linq.Expressions.LambdaExpression)">
1242             <summary>
1243             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator"/> class.
1244             </summary>
1245             <param name="func">The aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression"/> taking a parameter that represents the value accumulated so 
1246             far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators
1247             are represented as expressions containing <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> nodes.</param>
1248         </member>
1249         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.ExecuteInMemory``1(Remotion.Linq.Clauses.StreamedData.StreamedSequence)">
1250             <inheritdoc cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>
1251         </member>
1252         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.Clone(Remotion.Linq.Clauses.CloneContext)">
1253             <inheritdoc />
1254         </member>
1255         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo)">
1256             <inheritdoc />
1257         </member>
1258         <member name="M:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.ToString">
1259             <inheritdoc />
1260         </member>
1261         <member name="P:Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator.Func">
1262             <summary>
1263             Gets or sets the aggregating function. This is a <see cref="T:System.Linq.Expressions.LambdaExpression"/> taking a parameter that represents the value accumulated so 
1264             far and returns a new accumulated value. This is a resolved expression, i.e. items streaming in from prior clauses and result operators
1265             are represented as expressions containing <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> nodes.
1266             </summary>
1267             <value>The aggregating function.</value>
1268         </member>
1269         <member name="T:Remotion.Linq.Clauses.ResultOperators.AllResultOperator">
1270             <summary>
1271             Represents a check whether all items returned by a query satisfy a predicate.
1272             This is a result operator, operating on the whole result set of a query.
1273             </summary>
1274             <example>
1275             In C#, the "All" call in the following example corresponds to an <see cref="T:Remotion.Linq.Clauses.ResultOperators.AllResultOperator"/>.
1276             <code>
1277             var result = (from s in Students
1278                          select s).All();
1279             </code>
1280             </example>
1281         </member>
1282         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.#ctor(System.Linq.Expressions.Expression)">
1283             <summary>
1284             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.AllResultOperator"/> class.
1285             </summary>
1286             <param name="predicate">The predicate to evaluate. This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression"/> that would be 
1287             passed to <see cref="M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.</param>
1288         </member>
1289         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.ExecuteInMemory``1(Remotion.Linq.Clauses.StreamedData.StreamedSequence)">
1290             <inheritdoc cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>
1291         </member>
1292         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.Clone(Remotion.Linq.Clauses.CloneContext)">
1293             <inheritdoc />
1294         </member>
1295         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1296             <inheritdoc />
1297         </member>
1298         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo)">
1299             <inheritdoc />
1300         </member>
1301         <member name="M:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.ToString">
1302             <inheritdoc />
1303         </member>
1304         <member name="P:Remotion.Linq.Clauses.ResultOperators.AllResultOperator.Predicate">
1305             <summary>
1306             Gets or sets the predicate to evaluate on all items in the sequence.
1307             This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression"/> that would be 
1308             passed to <see cref="M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.
1309             </summary>
1310             <value>The predicate.</value>
1311         </member>
1312         <member name="T:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator">
1313             <summary>
1314             Represents a check whether any items are returned by a query.
1315             This is a result operator, operating on the whole result set of a query.
1316             </summary>
1317             <remarks>
1318             "Any" query methods taking a predicate are represented as into a combination of a <see cref="T:Remotion.Linq.Clauses.WhereClause"/> and an 
1319             <see cref="T:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator"/>.
1320             </remarks>
1321             <example>
1322             In C#, the "Any" call in the following example corresponds to an <see cref="T:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator"/>.
1323             <code>
1324             var result = (from s in Students
1325                          select s).Any();
1326             </code>
1327             </example>
1328         </member>
1329         <member name="M:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator.ExecuteInMemory``1(Remotion.Linq.Clauses.StreamedData.StreamedSequence)">
1330             <inheritdoc cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>
1331         </member>
1332         <member name="M:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator.Clone(Remotion.Linq.Clauses.CloneContext)">
1333             <inheritdoc />
1334         </member>
1335         <member name="M:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator.GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo)">
1336             <inheritdoc />
1337         </member>
1338         <member name="M:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1339             <inheritdoc />
1340         </member>
1341         <member name="M:Remotion.Linq.Clauses.ResultOperators.AnyResultOperator.ToString">
1342             <inheritdoc />
1343         </member>
1344         <member name="T:Remotion.Linq.Clauses.ResultOperators.AverageResultOperator">
1345             <summary>
1346             Represents a calculation of an average value from the items returned by a query.
1347             This is a result operator, operating on the whole result set of a query.
1348             </summary>
1349             <example>
1350             In C#, the "Average" call in the following example corresponds to an <see cref="T:Remotion.Linq.Clauses.ResultOperators.AverageResultOperator"/>.
1351             <code>
1352             var query = (from s in Students
1353                          select s.ID).Average();
1354             </code>
1355             </example>
1356         </member>
1357         <member name="M:Remotion.Linq.Clauses.ResultOperators.AverageResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1358             <inheritdoc />
1359         </member>
1360         <member name="T:Remotion.Linq.Clauses.ResultOperators.CastResultOperator">
1361             <summary>
1362             Represents a cast of the items returned by a query to a different type.
1363             This is a result operator, operating on the whole result set of a query.
1364             </summary>
1365             <example>
1366             In C#, "Cast" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.CastResultOperator"/>.
1367             <code>
1368             var query = (from s in Students
1369                          select s.ID).Cast&lt;int&gt;();
1370             </code>
1371             </example>
1372         </member>
1373         <member name="T:Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase">
1374             <summary>
1375             Represents a <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/> that is executed on a sequence, returning a new sequence as its result.
1376             </summary>
1377         </member>
1378         <member name="M:Remotion.Linq.Clauses.ResultOperators.CastResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1379             <inheritdoc />
1380         </member>
1381         <member name="T:Remotion.Linq.Clauses.ResultOperators.ChoiceResultOperatorBase">
1382             <summary>
1383             Represents a <see cref="T:Remotion.Linq.Clauses.ResultOperators.ValueFromSequenceResultOperatorBase"/> that is executed on a sequence, choosing a single item for its result.
1384             </summary>
1385         </member>
1386         <member name="T:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator">
1387             <summary>
1388             Represents concatenating the items returned by a query with a given set of items, similar to the <see cref="T:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator"/> but
1389             retaining duplicates (and order). 
1390             This is a result operator, operating on the whole result set of a query.
1391             </summary>
1392             <example>
1393             In C#, the "Concat" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator"/>.
1394             <code>
1395             var query = (from s in Students
1396                          select s).Concat(students2);
1397             </code>
1398             </example>
1399         </member>
1400         <member name="M:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator.GetConstantSource2">
1401             <summary>
1402             Gets the value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator.Source2"/>, assuming <see cref="P:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator.Source2"/> holds a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it doesn't,
1403             an <see cref="T:System.InvalidOperationException"/> is thrown.
1404             </summary>
1405             <returns>The constant value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator.Source2"/>.</returns>
1406         </member>
1407         <member name="P:Remotion.Linq.Clauses.ResultOperators.ConcatResultOperator.Source2">
1408             <summary>
1409             Gets or sets the second source of this result operator, that is, an enumerable containing the items concatenated with the input sequence.
1410             </summary>
1411         </member>
1412         <member name="T:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator">
1413             <summary>
1414             Represents a check whether the results returned by a query contain a specific item.
1415             This is a result operator, operating on the whole result set of a query.
1416             </summary>
1417             <example>
1418             In C#, the "Contains" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator"/>.
1419             <code>
1420             var query = (from s in Students
1421                          select s).Contains (student);
1422             </code>
1423             </example>
1424         </member>
1425         <member name="M:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator.#ctor(System.Linq.Expressions.Expression)">
1426             <summary>
1427             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator"/> class.
1428             </summary>
1429             <param name="item">The item for which to be searched.</param>
1430         </member>
1431         <member name="M:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator.GetConstantItem``1">
1432             <summary>
1433             Gets the constant value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator.Item"/> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1434             not, an <see cref="T:System.InvalidOperationException"/> is thrown.
1435             </summary>
1436             <typeparam name="T">The expected item type. If the item is not of this type, an <see cref="T:System.InvalidOperationException"/> is thrown.</typeparam>
1437             <returns>The constant value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator.Item"/> property.</returns>
1438         </member>
1439         <member name="P:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator.Item">
1440             <summary>
1441             Gets or sets an expression yielding the item for which to be searched. This must be compatible with (ie., assignable to) the source sequence 
1442             items.
1443             </summary>
1444             <value>The item expression.</value>
1445         </member>
1446         <member name="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator">
1447             <summary>
1448             Represents counting the number of items returned by a query.
1449             This is a result operator, operating on the whole result set of a query.
1450             </summary>
1451             <remarks>
1452             "Count" query methods taking a predicate are represented as a combination of a <see cref="T:Remotion.Linq.Clauses.WhereClause"/> and a <see cref="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator"/>.
1453             </remarks>  /// <example>
1454             In C#, the "Count" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator"/>.
1455             <code>
1456             var query = (from s in Students
1457                          select s).Count();
1458             </code>
1459             </example>
1460         </member>
1461         <member name="M:Remotion.Linq.Clauses.ResultOperators.CountResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1462             <inheritdoc />
1463         </member>
1464         <member name="T:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator">
1465             <summary>
1466             Represents a guard clause yielding a singleton sequence with a default value if no items are returned by a query.
1467             This is a result operator, operating on the whole result set of a query.
1468             </summary>
1469             <example>
1470             In C#, the "Defaultifempty" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator"/>.
1471             <code>
1472             var query = (from s in Students
1473                          select s).DefaultIfEmpty ("student");
1474             </code>
1475             </example>
1476         </member>
1477         <member name="T:Remotion.Linq.Clauses.ResultOperators.SequenceTypePreservingResultOperatorBase">
1478             <summary>
1479             Represents a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SequenceFromSequenceResultOperatorBase"/> that is executed on a sequence, returning a new sequence with the same
1480             item type as its result.
1481             </summary>
1482         </member>
1483         <member name="M:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator.GetConstantOptionalDefaultValue">
1484             <summary>
1485             Gets the constant <see cref="T:System.Object"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator.OptionalDefaultValue"/> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1486             not, an <see cref="T:System.InvalidOperationException"/> is thrown. If it is <see langword="null"/>, <see langword="null"/> is returned.
1487             </summary>
1488             <returns>The constant <see cref="T:System.Object"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator.OptionalDefaultValue"/> property.</returns>
1489         </member>
1490         <member name="P:Remotion.Linq.Clauses.ResultOperators.DefaultIfEmptyResultOperator.OptionalDefaultValue">
1491             <summary>
1492             Gets or sets the optional default value.
1493             </summary>
1494             <value>The optional default value.</value>
1495         </member>
1496         <member name="T:Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator">
1497             <summary>
1498             Represents the removal of duplicate values from the items returned by a query.
1499             This is a result operator, operating on the whole result set of a query.
1500             </summary>
1501             <example>
1502             In C#, the "Distinct" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator"/>.
1503             <code>
1504             var query = (from s in Students
1505                          select s).Distinct();
1506             </code>
1507             </example>
1508         </member>
1509         <member name="M:Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1510             <inheritdoc />
1511         </member>
1512         <member name="T:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator">
1513             <summary>
1514             Represents the removal of a given set of items from the result set of a query.
1515             This is a result operator, operating on the whole result set of a query.
1516             </summary>
1517             <example>
1518             In C#, the "Except" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator"/>.
1519             <code>
1520             var query = (from s in Students
1521                          select s).Except(students2);
1522             </code>
1523             </example>
1524         </member>
1525         <member name="M:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator.GetConstantSource2``1">
1526             <summary>
1527             Gets the value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator.Source2"/>, assuming <see cref="P:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator.Source2"/> holds a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it doesn't,
1528             an <see cref="T:System.InvalidOperationException"/> is thrown.
1529             </summary>
1530             <returns>The constant value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator.Source2"/>.</returns>
1531         </member>
1532         <member name="P:Remotion.Linq.Clauses.ResultOperators.ExceptResultOperator.Source2">
1533             <summary>
1534             Gets or sets the second source of this result operator, that is, an enumerable containing the items removed from the input sequence.
1535             </summary>
1536         </member>
1537         <member name="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator">
1538             <summary>
1539             Represents taking only the first of the items returned by a query.
1540             This is a result operator, operating on the whole result set of a query.
1541             </summary>
1542             <remarks>
1543             "First" query methods taking a predicate are represented as a combination of a <see cref="T:Remotion.Linq.Clauses.WhereClause"/> and a <see cref="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator"/>.
1544             </remarks>
1545             <example>
1546             In C#, the "First" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator"/>.
1547             <code>
1548             var query = (from s in Students
1549                          select s).First();
1550             </code>
1551             </example>
1552         </member>
1553         <member name="M:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator.#ctor(System.Boolean)">
1554             <summary>
1555             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator"/>.
1556             </summary>
1557             <param name="returnDefaultWhenEmpty">The flag defines if a default expression should be regarded.</param>
1558         </member>
1559         <member name="M:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1560             <inheritdoc />
1561         </member>
1562         <member name="T:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator">
1563             <summary>
1564             Represents grouping the items returned by a query according to some key retrieved by a <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.KeySelector"/>, applying by an 
1565             <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ElementSelector"/> to the grouped items. This is a result operator, operating on the whole result set of the query.
1566             </summary>
1567             <example>
1568             In C#, the "group by" clause in the following sample corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator"/>. "s" (a reference to the query source 
1569             "s", see <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>) is the <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ElementSelector"/> expression, "s.Country" is the 
1570             <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.KeySelector"/> expression:
1571             <code>
1572             var query = from s in Students
1573                         where s.First == "Hugo"
1574                         group s by s.Country;
1575             </code>
1576             </example>
1577         </member>
1578         <member name="M:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.#ctor(System.String,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression)">
1579             <summary>
1580             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator"/> class.
1581             </summary>
1582             <param name="itemName">A name associated with the <see cref="T:System.Linq.IGrouping`2"/> items generated by the result operator.</param>
1583             <param name="keySelector">The selector retrieving the key by which to group items.</param>
1584             <param name="elementSelector">The selector retrieving the elements to group.</param>
1585         </member>
1586         <member name="M:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.Clone(Remotion.Linq.Clauses.CloneContext)">
1587             <summary>
1588             Clones this clause, adjusting all <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> instances held by it as defined by
1589             <paramref name="cloneContext"/>.
1590             </summary>
1591             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
1592             <returns>A clone of this clause.</returns>
1593         </member>
1594         <member name="M:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1595             <summary>
1596             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
1597             </summary>
1598             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
1599             clause, and those expressions will be replaced with what the delegate returns.</param>
1600         </member>
1601         <member name="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ItemName">
1602             <summary>
1603             Gets or sets the name of the items generated by this <see cref="T:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator"/>.
1604             </summary>
1605             <remarks>
1606             Item names are inferred when a query expression is parsed, and they usually correspond to the variable names present in that expression. 
1607             However, note that names are not necessarily unique within a <see cref="T:Remotion.Linq.QueryModel"/>. Use names only for readability and debugging, not for 
1608             uniquely identifying <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> objects. To match an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> with its references, use the 
1609             <see cref="P:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression.ReferencedQuerySource"/> property rather than the <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ItemName"/>.
1610             </remarks>
1611         </member>
1612         <member name="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ItemType">
1613             <summary>
1614             Gets or sets the type of the items generated by this <see cref="T:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator"/>. The item type is an instantiation of 
1615             <see cref="T:System.Linq.IGrouping`2"/> derived from the types of <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.KeySelector"/> and <see cref="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ElementSelector"/>.
1616             </summary>
1617         </member>
1618         <member name="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.KeySelector">
1619             <summary>
1620             Gets or sets the selector retrieving the key by which to group items.
1621             This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression"/> that would be 
1622             passed to <see cref="M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}})"/>.
1623             </summary>
1624             <value>The key selector.</value>
1625         </member>
1626         <member name="P:Remotion.Linq.Clauses.ResultOperators.GroupResultOperator.ElementSelector">
1627             <summary>
1628             Gets or sets the selector retrieving the elements to group.
1629             This is a resolved version of the body of the <see cref="T:System.Linq.Expressions.LambdaExpression"/> that would be 
1630             passed to <see cref="M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}})"/>.
1631             </summary>
1632             <value>The element selector.</value>
1633         </member>
1634         <member name="T:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator">
1635             <summary>
1636             Represents taking the mathematical intersection of a given set of items and the items returned by a query. 
1637             This is a result operator, operating on the whole result set of a query.
1638             </summary>
1639             <example>
1640             In C#, the "Intersect" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator"/>.
1641             <code>
1642             var query = (from s in Students
1643                          select s).Intersect(students2);
1644             </code>
1645             </example>
1646         </member>
1647         <member name="M:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator.GetConstantSource2``1">
1648             <summary>
1649             Gets the value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator.Source2"/>, assuming <see cref="P:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator.Source2"/> holds a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it doesn't,
1650             an <see cref="T:System.InvalidOperationException"/> is thrown.
1651             </summary>
1652             <returns>The constant value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator.Source2"/>.</returns>
1653         </member>
1654         <member name="P:Remotion.Linq.Clauses.ResultOperators.IntersectResultOperator.Source2">
1655             <summary>
1656             Gets or sets the second source of this result operator, that is, an enumerable containing the items intersected with the input sequence.
1657             </summary>
1658         </member>
1659         <member name="T:Remotion.Linq.Clauses.ResultOperators.LastResultOperator">
1660             <summary>
1661             Represents taking only the last one of the items returned by a query. 
1662             This is a result operator, operating on the whole result set of a query.
1663             </summary>
1664             <remarks>
1665             "Last" query methods taking a predicate are represented as a combination of a <see cref="T:Remotion.Linq.Clauses.WhereClause"/> and a <see cref="T:Remotion.Linq.Clauses.ResultOperators.LastResultOperator"/>.
1666             </remarks>
1667             <example>
1668             In C#, the "Last" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.LastResultOperator"/>.
1669             <code>
1670             var query = (from s in Students
1671                          select s).Last();
1672             </code>
1673             </example>
1674         </member>
1675         <member name="M:Remotion.Linq.Clauses.ResultOperators.LastResultOperator.#ctor(System.Boolean)">
1676             <summary>
1677             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.LastResultOperator"/>.
1678             </summary>
1679             <param name="returnDefaultWhenEmpty">The flag defines if a default expression should be regarded.</param>
1680         </member>
1681         <member name="M:Remotion.Linq.Clauses.ResultOperators.LastResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1682             <inheritdoc />
1683         </member>
1684         <member name="T:Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator">
1685             <summary>
1686             Represents counting the number of items returned by a query as a 64-bit number.
1687             This is a result operator, operating on the whole result set of a query.
1688             </summary>
1689             <remarks>
1690             "LongCount" query methods taking a predicate are represented as a combination of a <see cref="T:Remotion.Linq.Clauses.WhereClause"/> and a 
1691             <see cref="T:Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator"/>.
1692             </remarks>
1693             <example>
1694             In C#, the "LongCount" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator"/>.
1695             <code>
1696             var query = (from s in Students
1697                          select s).LongCount();
1698             </code>
1699             </example>
1700         </member>
1701         <member name="M:Remotion.Linq.Clauses.ResultOperators.LongCountResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1702             <inheritdoc />
1703         </member>
1704         <member name="T:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator">
1705             <summary>
1706             Represents taking only the greatest one of the items returned by a query.
1707             This is a result operator, operating on the whole result set of a query.
1708             </summary>
1709             <remarks>
1710             The semantics of "greatest" are defined by the query provider. "Max" query methods taking a selector are represented as a combination
1711             of a <see cref="T:Remotion.Linq.Clauses.SelectClause"/> and a <see cref="T:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator"/>.
1712             </remarks>
1713             <example>
1714             In C#, the "Max" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator"/>.
1715             <code>
1716             var query = (from s in Students
1717                          select s.ID).Max();
1718             </code>
1719             </example>
1720         </member>
1721         <member name="M:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator.#ctor">
1722             <summary>
1723             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator"/>.
1724             </summary>
1725         </member>
1726         <member name="M:Remotion.Linq.Clauses.ResultOperators.MaxResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1727             <inheritdoc />
1728         </member>
1729         <member name="T:Remotion.Linq.Clauses.ResultOperators.MinResultOperator">
1730             <summary>
1731             Represents taking only the smallest one of the items returned by a query.
1732             This is a result operator, operating on the whole result set of a query.
1733             </summary>
1734             <remarks>
1735             The semantics of "smallest" are defined by the query provider. "Min" query methods taking a selector are represented as a combination
1736             of a <see cref="T:Remotion.Linq.Clauses.SelectClause"/> and a <see cref="T:Remotion.Linq.Clauses.ResultOperators.MinResultOperator"/>.
1737             </remarks>
1738             <example>
1739             In C#, the "Min" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.MinResultOperator"/>.
1740             <code>
1741             var query = (from s in Students
1742                          select s.ID).Min();
1743             </code>
1744             </example>
1745         </member>
1746         <member name="M:Remotion.Linq.Clauses.ResultOperators.MinResultOperator.#ctor">
1747             <summary>
1748             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.MinResultOperator"/>.
1749             </summary>
1750         </member>
1751         <member name="M:Remotion.Linq.Clauses.ResultOperators.MinResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1752             <inheritdoc />
1753         </member>
1754         <member name="T:Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator">
1755             <summary>
1756             Represents filtering the items returned by a query to only return those items that are of a specific type. 
1757             This is a result operator, operating on the whole result set of a query.
1758             </summary>
1759             <example>
1760             In C#, the "OfType" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator"/>.
1761             <code>
1762             var query = (from s in Students
1763                          select s.ID).OfType&lt;int&gt;();
1764             </code>
1765             </example>
1766         </member>
1767         <member name="M:Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1768             <inheritdoc />
1769         </member>
1770         <member name="T:Remotion.Linq.Clauses.ResultOperators.ReverseResultOperator">
1771             <summary>
1772             Represents reversing the sequence of items returned by of a query. 
1773             This is a result operator, operating on the whole result set of a query.
1774             </summary>
1775             <example>
1776             In C#, the "Reverse" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.ReverseResultOperator"/>.
1777             <code>
1778             var query = (from s in Students
1779                          select s).Reverse();
1780             </code>
1781             </example>
1782         </member>
1783         <member name="M:Remotion.Linq.Clauses.ResultOperators.ReverseResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1784             <inheritdoc />
1785         </member>
1786         <member name="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator">
1787             <summary>
1788             Represents taking the single item returned by a query.
1789             This is a result operator, operating on the whole result set of a query.
1790             </summary>
1791             <example>
1792             In C#, the "Single" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator"/>.
1793             <code>
1794             var query = (from s in Students
1795                          select s).Single();
1796             </code>
1797             </example>
1798         </member>
1799         <member name="M:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator.#ctor(System.Boolean)">
1800             <summary>
1801             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator"/>.
1802             </summary>
1803             <param name="returnDefaultWhenEmpty">The flag defines if a default expression should be regarded.</param>
1804         </member>
1805         <member name="M:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1806             <inheritdoc />
1807         </member>
1808         <member name="T:Remotion.Linq.Clauses.ResultOperators.SkipResultOperator">
1809             <summary>
1810             Represents skipping a number of the items returned by a query.
1811             This is a result operator, operating on the whole result set of a query.
1812             </summary>
1813             <example>
1814             In C#, the "Skip" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SkipResultOperator"/>.
1815             <code>
1816             var query = (from s in Students
1817                          select s).Skip (3);
1818             </code>
1819             </example>
1820         </member>
1821         <member name="M:Remotion.Linq.Clauses.ResultOperators.SkipResultOperator.GetConstantCount">
1822             <summary>
1823             Gets the constant <see cref="T:System.Int32"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.SkipResultOperator.Count"/> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1824             not, an <see cref="T:System.InvalidOperationException"/> is thrown.
1825             </summary>
1826             <returns>The constant <see cref="T:System.Int32"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.SkipResultOperator.Count"/> property.</returns>
1827         </member>
1828         <member name="T:Remotion.Linq.Clauses.ResultOperators.SumResultOperator">
1829             <summary>
1830             Represents calculating the sum of the items returned by a query. 
1831             This is a result operator, operating on the whole result set of a query.
1832             </summary>
1833             <example>
1834             In C#, the "Sum" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SumResultOperator"/>.
1835             <code>
1836             var query = (from s in Students
1837                          select s.ID).Sum();
1838             </code>
1839             </example>
1840         </member>
1841         <member name="M:Remotion.Linq.Clauses.ResultOperators.SumResultOperator.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1842             <inheritdoc />
1843         </member>
1844         <member name="T:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator">
1845             <summary>
1846             Represents taking only a specific number of items returned by a query. 
1847             This is a result operator, operating on the whole result set of a query.
1848             </summary>
1849             <example>
1850             In C#, the "Take" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator"/>.
1851             <code>
1852             var query = (from s in Students
1853                          select s).Take(3);
1854             </code>
1855             </example>
1856         </member>
1857         <member name="M:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator.#ctor(System.Linq.Expressions.Expression)">
1858             <summary>
1859             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator"/>.
1860             </summary>
1861             <param name="count">The number of elements which should be returned.</param>
1862         </member>
1863         <member name="M:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator.GetConstantCount">
1864             <summary>
1865             Gets the constant <see cref="T:System.Int32"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator.Count"/> property, assuming it is a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it is
1866             not, an <see cref="T:System.InvalidOperationException"/> is thrown.
1867             </summary>
1868             <returns>The constant <see cref="T:System.Int32"/> value of the <see cref="P:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator.Count"/> property.</returns>
1869         </member>
1870         <member name="T:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator">
1871             <summary>
1872             Represents forming the mathematical union of  a given set of items and the items returned by a query. 
1873             This is a result operator, operating on the whole result set of a query.
1874             </summary>
1875             <example>
1876             In C#, the "Union" call in the following example corresponds to a <see cref="T:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator"/>.
1877             <code>
1878             var query = (from s in Students
1879                          select s).Union(students2);
1880             </code>
1881             </example>
1882         </member>
1883         <member name="M:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator.GetConstantSource2">
1884             <summary>
1885             Gets the value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator.Source2"/>, assuming <see cref="P:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator.Source2"/> holds a <see cref="T:System.Linq.Expressions.ConstantExpression"/>. If it doesn't,
1886             an <see cref="T:System.InvalidOperationException"/> is thrown.
1887             </summary>
1888             <returns>The constant value of <see cref="P:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator.Source2"/>.</returns>
1889         </member>
1890         <member name="P:Remotion.Linq.Clauses.ResultOperators.UnionResultOperator.Source2">
1891             <summary>
1892             Gets or sets the second source of this result operator, that is, an enumerable containing the items united with the input sequence.
1893             </summary>
1894         </member>
1895         <member name="T:Remotion.Linq.Clauses.SelectClause">
1896             <summary>
1897             Represents the select part of a query, projecting data items according to some <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/>.
1898             </summary>
1899             <example>
1900             In C#, the "select" clause in the following sample corresponds to a <see cref="T:Remotion.Linq.Clauses.SelectClause"/>. "s" (a reference to the query source "s", see
1901             <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>) is the <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/> expression:
1902             <code>
1903             var query = from s in Students
1904                         where s.First == "Hugo"
1905                         select s;
1906             </code>
1907             </example>
1908         </member>
1909         <member name="M:Remotion.Linq.Clauses.SelectClause.#ctor(System.Linq.Expressions.Expression)">
1910             <summary>
1911             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.SelectClause"/> class.
1912             </summary>
1913             <param name="selector">The selector that projects the data items.</param>
1914         </member>
1915         <member name="M:Remotion.Linq.Clauses.SelectClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel)">
1916             <summary>
1917             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitSelectClause(Remotion.Linq.Clauses.SelectClause,Remotion.Linq.QueryModel)"/> method.
1918             </summary>
1919             <param name="visitor">The visitor to accept.</param>
1920             <param name="queryModel">The query model in whose context this clause is visited.</param>
1921         </member>
1922         <member name="M:Remotion.Linq.Clauses.SelectClause.Clone(Remotion.Linq.Clauses.CloneContext)">
1923             <summary>
1924             Clones this clause.
1925             </summary>
1926             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
1927             <returns>A clone of this clause.</returns>
1928         </member>
1929         <member name="M:Remotion.Linq.Clauses.SelectClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
1930             <summary>
1931             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
1932             </summary>
1933             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
1934             clause, and those expressions will be replaced with what the delegate returns.</param>
1935         </member>
1936         <member name="M:Remotion.Linq.Clauses.SelectClause.GetOutputDataInfo">
1937             <summary>
1938             Gets an <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> object describing the data streaming out of this <see cref="T:Remotion.Linq.Clauses.SelectClause"/>. If a query ends with
1939             the <see cref="T:Remotion.Linq.Clauses.SelectClause"/>, this corresponds to the query's output data. If a query has <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>, the data
1940             is further modified by those operators. Use <see cref="M:Remotion.Linq.QueryModel.GetOutputDataInfo"/> to obtain the real result type of
1941             a query model, including the <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>.
1942             </summary>
1943             <returns>Gets a <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> object describing the data streaming out of this <see cref="T:Remotion.Linq.Clauses.SelectClause"/>.</returns>
1944             <remarks>
1945             The data streamed from a <see cref="T:Remotion.Linq.Clauses.SelectClause"/> is always of type <see cref="T:System.Linq.IQueryable`1"/> instantiated
1946             with the type of <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/> as its generic parameter. Its <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression"/> corresponds to the
1947             <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/>.
1948             </remarks>
1949         </member>
1950         <member name="P:Remotion.Linq.Clauses.SelectClause.Selector">
1951             <summary>
1952             Gets the selector defining what parts of the data items are returned by the query.
1953             </summary>
1954         </member>
1955         <member name="T:Remotion.Linq.Clauses.StreamedData.IStreamedData">
1956             <summary>
1957             Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for 
1958             <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>. The data held by implementations of this interface can be either a value or a sequence.
1959             </summary>
1960         </member>
1961         <member name="P:Remotion.Linq.Clauses.StreamedData.IStreamedData.DataInfo">
1962             <summary>
1963             Gets an object describing the data held by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedData"/> instance.
1964             </summary>
1965             <value>An <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> object describing the data held by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedData"/> instance.</value>
1966         </member>
1967         <member name="P:Remotion.Linq.Clauses.StreamedData.IStreamedData.Value">
1968             <summary>
1969             Gets the value held by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedData"/> instance.
1970             </summary>
1971             <value>The value.</value>
1972         </member>
1973         <member name="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo">
1974             <summary>
1975             Describes the data streamed out of a <see cref="T:Remotion.Linq.QueryModel"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>.
1976             </summary>
1977         </member>
1978         <member name="M:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.ExecuteQueryModel(Remotion.Linq.QueryModel,Remotion.Linq.IQueryExecutor)">
1979             <summary>
1980             Executes the specified <see cref="T:Remotion.Linq.QueryModel"/> with the given <see cref="T:Remotion.Linq.IQueryExecutor"/>, calling either 
1981             <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)"/> or <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Linq.QueryModel)"/>, depending on the type of data streamed
1982             from this interface.
1983             </summary>
1984             <param name="queryModel">The query model to be executed.</param>
1985             <param name="executor">The executor to use.</param>
1986             <returns>An <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedData"/> object holding the results of the query execution.</returns>
1987         </member>
1988         <member name="M:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.AdjustDataType(System.Type)">
1989             <summary>
1990             Returns a new <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> of the same type as this instance, but with a new <see cref="P:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.DataType"/>.
1991             </summary>
1992             <param name="dataType">The type to use for the <see cref="P:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.DataType"/> property. The type must be compatible with the data described by this 
1993             <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/>, otherwise an exception is thrown.
1994             The type may be a generic type definition if the <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> supports generic types; in this case,
1995             the type definition is automatically closed with generic parameters to match the data described by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/>.</param>
1996             <returns>A new <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> of the same type as this instance, but with a new <see cref="P:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.DataType"/>.</returns>
1997             <exception cref="T:System.ArgumentException">The <paramref name="dataType"/> is not compatible with the data described by this 
1998             <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/>.</exception>
1999         </member>
2000         <member name="P:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo.DataType">
2001             <summary>
2002             Gets the type of the data described by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> instance. For a sequence, this is a type implementing 
2003             <see cref="T:System.Collections.Generic.IEnumerable`1"/>, where <c>T</c> is instantiated with a concrete type. For a single value, this is the value type.
2004             </summary>
2005         </member>
2006         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedScalarValueInfo">
2007             <summary>
2008             Describes a scalar value streamed out of a <see cref="T:Remotion.Linq.QueryModel"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>. A scalar value corresponds to a
2009             value calculated from the result set, as produced by <see cref="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator"/>, for instance.
2010             </summary>
2011         </member>
2012         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo">
2013             <summary>
2014             Describes a single or scalar value streamed out of a <see cref="T:Remotion.Linq.QueryModel"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>.
2015             </summary>
2016         </member>
2017         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo.ExecuteQueryModel(Remotion.Linq.QueryModel,Remotion.Linq.IQueryExecutor)">
2018             <inheritdoc />
2019         </member>
2020         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo.CloneWithNewDataType(System.Type)">
2021             <summary>
2022             Returns a new instance of the same <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo"/> type with a different <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo.DataType"/>.
2023             </summary>
2024             <param name="dataType">The new data type.</param>
2025             <exception cref="T:System.ArgumentException">The <paramref name="dataType"/> cannot be used for the clone.</exception>
2026             <returns>A new instance of the same <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo"/> type with the given <paramref name="dataType"/>.</returns>
2027         </member>
2028         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo.AdjustDataType(System.Type)">
2029             <inheritdoc />
2030         </member>
2031         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo.DataType">
2032             <summary>
2033             Gets the type of the data described by this <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> instance. This is the type of the streamed value, or 
2034             <see cref="T:System.Object"/> if the value is <see langword="null"/>.
2035             </summary>
2036         </member>
2037         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedSequence">
2038             <summary>
2039             Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for 
2040             <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>.  The data consists of a sequence of items.
2041             </summary>
2042         </member>
2043         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedSequence.#ctor(System.Collections.IEnumerable,Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo)">
2044             <summary>
2045             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequence"/> class, setting the <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequence.Sequence"/> and 
2046             <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequence.DataInfo"/> properties.
2047             </summary>
2048             <param name="sequence">The sequence.</param>
2049             <param name="streamedSequenceInfo">An instance of <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> describing the sequence.</param>
2050         </member>
2051         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedSequence.GetTypedSequence``1">
2052             <summary>
2053             Gets the current sequence held by this object as well as an <see cref="T:System.Linq.Expressions.Expression"/> describing the
2054             sequence's items, throwing an exception if the object does not hold a sequence of items of type <typeparamref name="T"/>.
2055             </summary>
2056             <typeparam name="T">The expected item type of the sequence.</typeparam>
2057             <returns>
2058             The sequence and an <see cref="T:System.Linq.Expressions.Expression"/> describing its items.
2059             </returns>
2060             <exception cref="T:System.InvalidOperationException">Thrown when the item type is not the expected type <typeparamref name="T"/>.</exception>
2061         </member>
2062         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedSequence.Sequence">
2063             <summary>
2064             Gets the current sequence for the <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/> operation. If the object is used as input, this 
2065             holds the input sequence for the operation. If the object is used as output, this holds the result of the operation.
2066             </summary>
2067             <value>The current sequence.</value>
2068         </member>
2069         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo">
2070             <summary>
2071             Describes sequence data streamed out of a <see cref="T:Remotion.Linq.QueryModel"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>. Sequence data can be held by an object
2072             implementing <see cref="T:System.Collections.Generic.IEnumerable`1"/>, and its items are described via a <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression"/>.
2073             </summary>
2074         </member>
2075         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.AdjustDataType(System.Type)">
2076             <summary>
2077             Returns a new <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> with an adjusted <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.DataType"/>.
2078             </summary>
2079             <param name="dataType">The type to use for the <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.DataType"/> property. The type must be convertible from the previous type, otherwise
2080             an exception is thrown. The type may be a generic type definition; in this case,
2081             the type definition is automatically closed with the type of the <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression"/>.</param>
2082             <returns>
2083             A new <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> with a new <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.DataType"/>.
2084             </returns>
2085             <exception cref="T:System.ArgumentException">The <paramref name="dataType"/> is not compatible with the items described by this
2086             <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/>.</exception>
2087         </member>
2088         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ResultItemType">
2089             <summary>
2090             Gets the type of the items returned by the sequence described by this object, as defined by <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.DataType"/>. Note that because 
2091             <see cref="T:System.Collections.Generic.IEnumerable`1"/> is covariant starting from .NET 4.0, this may be a more abstract type than what's returned by 
2092             <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression"/>'s <see cref="P:System.Linq.Expressions.Expression.Type"/> property.
2093             </summary>
2094         </member>
2095         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.ItemExpression">
2096             <summary>
2097             Gets an expression that describes the structure of the items held by the sequence described by this object.
2098             </summary>
2099             <value>The expression for the sequence's items.</value>
2100         </member>
2101         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo.DataType">
2102             <summary>
2103             Gets the type of the data described by this <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedSequenceInfo"/> instance. This is a type implementing
2104             <see cref="T:System.Collections.Generic.IEnumerable`1"/>, where <c>T</c> is instantiated with a concrete type.
2105             </summary>
2106         </member>
2107         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo">
2108             <summary>
2109             Describes a single value streamed out of a <see cref="T:Remotion.Linq.QueryModel"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>. A single value corresponds to one
2110             item from the result set, as produced by <see cref="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator"/>, for instance.
2111             </summary>
2112         </member>
2113         <member name="T:Remotion.Linq.Clauses.StreamedData.StreamedValue">
2114             <summary>
2115             Holds the data needed to represent the output or input of a part of a query in memory. This is mainly used for 
2116             <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/>.  The data is a single, non-sequence value and can only be consumed by result operators 
2117             working with single values.
2118             </summary>
2119         </member>
2120         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedValue.#ctor(System.Object,Remotion.Linq.Clauses.StreamedData.StreamedValueInfo)">
2121             <summary>
2122             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValue"/> class, setting the <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.Value"/> and <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.DataInfo"/> properties.
2123             </summary>
2124             <param name="value">The value.</param>
2125             <param name="streamedValueInfo">A <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo"/> describing the value.</param>
2126         </member>
2127         <member name="M:Remotion.Linq.Clauses.StreamedData.StreamedValue.GetTypedValue``1">
2128             <summary>
2129             Gets the value held by <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.Value"/>, throwing an exception if the value is not of type <typeparamref name="T"/>.
2130             </summary>
2131             <typeparam name="T">The expected type of the value.</typeparam>
2132             <returns><see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.Value"/>, cast to <typeparamref name="T"/>.</returns>
2133             <exception cref="T:System.InvalidOperationException">Thrown when <see cref="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.Value"/> if not of the expected type.</exception>
2134         </member>
2135         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.DataInfo">
2136             <summary>
2137             Gets an object describing the data held by this <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValue"/> instance.
2138             </summary>
2139             <value>
2140             An <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValueInfo"/> object describing the data held by this <see cref="T:Remotion.Linq.Clauses.StreamedData.StreamedValue"/> instance.
2141             </value>
2142         </member>
2143         <member name="P:Remotion.Linq.Clauses.StreamedData.StreamedValue.Value">
2144             <summary>
2145             Gets the current value for the <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData)"/> operation. If the object is used as input, this 
2146             holds the input value for the operation. If the object is used as output, this holds the result of the operation.
2147             </summary>
2148             <value>The current value.</value>
2149         </member>
2150         <member name="T:Remotion.Linq.Clauses.WhereClause">
2151             <summary>
2152             Represents the where part of a query, filtering data items according to some <see cref="P:Remotion.Linq.Clauses.WhereClause.Predicate"/>.
2153             </summary>
2154             <example>
2155             In C#, the "where" clause in the following sample corresponds to a <see cref="T:Remotion.Linq.Clauses.WhereClause"/>:
2156             <ode>
2157             var query = from s in Students
2158                         where s.First == "Hugo"
2159                         select s;
2160             </ode>
2161             </example>
2162         </member>
2163         <member name="M:Remotion.Linq.Clauses.WhereClause.#ctor(System.Linq.Expressions.Expression)">
2164             <summary>
2165             Initializes a new instance of the <see cref="T:Remotion.Linq.Clauses.WhereClause"/> class.
2166             </summary>
2167             <param name="predicate">The predicate used to filter data items.</param>
2168         </member>
2169         <member name="M:Remotion.Linq.Clauses.WhereClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)">
2170             <summary>
2171             Accepts the specified visitor by calling its <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitWhereClause(Remotion.Linq.Clauses.WhereClause,Remotion.Linq.QueryModel,System.Int32)"/> method.
2172             </summary>
2173             <param name="visitor">The visitor to accept.</param>
2174             <param name="queryModel">The query model in whose context this clause is visited.</param>
2175             <param name="index">The index of this clause in the <paramref name="queryModel"/>'s <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection.</param>
2176         </member>
2177         <member name="M:Remotion.Linq.Clauses.WhereClause.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
2178             <summary>
2179             Transforms all the expressions in this clause and its child objects via the given <paramref name="transformation"/> delegate.
2180             </summary>
2181             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this
2182             clause, and those expressions will be replaced with what the delegate returns.</param>
2183         </member>
2184         <member name="M:Remotion.Linq.Clauses.WhereClause.Clone(Remotion.Linq.Clauses.CloneContext)">
2185             <summary>
2186             Clones this clause.
2187             </summary>
2188             <param name="cloneContext">The clones of all query source clauses are registered with this <see cref="T:Remotion.Linq.Clauses.CloneContext"/>.</param>
2189             <returns></returns>
2190         </member>
2191         <member name="P:Remotion.Linq.Clauses.WhereClause.Predicate">
2192             <summary>
2193             Gets the predicate, the expression representing the where condition by which the data items are filtered
2194             </summary>
2195         </member>
2196         <member name="T:Remotion.Linq.Collections.ChangeResistantObservableCollectionEnumerator`1">
2197             <summary>
2198             Provides a way to enumerate an <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> while items are inserted, removed, or cleared in a consistent fashion.
2199             </summary>
2200             <typeparam name="T">The element type of the <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/>.</typeparam>
2201             <remarks>
2202             This class subscribes to the <see cref="E:System.Collections.ObjectModel.ObservableCollection`1.CollectionChanged"/> event exposed by <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/> 
2203             and reacts on changes to the collection. If an item is inserted or removed before the current element, the enumerator will continue after 
2204             the current element without regarding the new or removed item. If the current item is removed, the enumerator will continue with the item that 
2205             previously followed the current item. If an item is inserted or removed after the current element, the enumerator will simply continue, 
2206             including the newly inserted item and not including the removed item. If an item is moved or replaced, the enumeration will also continue 
2207             with the item located at the next position in the sequence.
2208             </remarks>
2209         </member>
2210         <member name="T:Remotion.Linq.Collections.IndexValuePair`1">
2211             <summary>
2212             Represents an item enumerated by <see cref="M:Remotion.Linq.Collections.ObservableCollectionExtensions.AsChangeResistantEnumerableWithIndex``1(System.Collections.ObjectModel.ObservableCollection{``0})"/>. This provides access
2213             to the <see cref="P:Remotion.Linq.Collections.IndexValuePair`1.Index"/> as well as the <see cref="P:Remotion.Linq.Collections.IndexValuePair`1.Value"/> of the enumerated item.
2214             </summary>
2215         </member>
2216         <member name="P:Remotion.Linq.Collections.IndexValuePair`1.Index">
2217             <summary>
2218             Gets the index of the current enumerated item. Can only be called while enumerating, afterwards, it will throw an 
2219             <see cref="T:System.ObjectDisposedException"/>. If an item is inserted into or removed from the collection before the current item, this
2220             index will change.
2221             </summary>
2222         </member>
2223         <member name="P:Remotion.Linq.Collections.IndexValuePair`1.Value">
2224             <summary>
2225             Gets the value of the current enumerated item. Can only be called while enumerating, afterwards, it will throw an 
2226             <see cref="T:System.ObjectDisposedException"/>.
2227             </summary>
2228             <value>The value.</value>
2229         </member>
2230         <member name="T:Remotion.Linq.Collections.MultiDictionaryExtensions">
2231             <summary>
2232             Defines extension methods that simplify working with a dictionary that has a collection-values item-type.
2233             </summary>
2234         </member>
2235         <member name="T:Remotion.Linq.Collections.ObservableCollectionExtensions">
2236             <summary>
2237             Extension methods for <see cref="T:System.Collections.ObjectModel.ObservableCollection`1"/>
2238             </summary>
2239         </member>
2240         <member name="M:Remotion.Linq.Collections.ObservableCollectionExtensions.AsChangeResistantEnumerable``1(System.Collections.ObjectModel.ObservableCollection{``0})">
2241             <summary>
2242             Returns an instance of <see cref="T:System.Collections.Generic.IEnumerable`1"/> that represents this collection and can be enumerated even while the collection changes;
2243             the enumerator will adapt to the changes (see <see cref="T:Remotion.Linq.Collections.ChangeResistantObservableCollectionEnumerator`1"/>).
2244             </summary>
2245         </member>
2246         <member name="M:Remotion.Linq.Collections.ObservableCollectionExtensions.AsChangeResistantEnumerableWithIndex``1(System.Collections.ObjectModel.ObservableCollection{``0})">
2247             <summary>
2248             Returns an instance of <see cref="T:System.Collections.Generic.IEnumerable`1"/> that represents this collection and can be enumerated even while the collection changes;
2249             the enumerator will adapt to the changes (see <see cref="T:Remotion.Linq.Collections.ChangeResistantObservableCollectionEnumerator`1"/>). The enumerable will yield
2250             instances of type <see cref="T:Remotion.Linq.Collections.IndexValuePair`1"/>, which hold both the index and the value of the current item. If this collection changes
2251             while enumerating, <see cref="P:Remotion.Linq.Collections.IndexValuePair`1.Index"/> will reflect those changes.
2252             </summary>
2253         </member>
2254         <member name="T:Remotion.Linq.DefaultQueryProvider">
2255             <summary>
2256             Represents a default implementation of <see cref="T:Remotion.Linq.QueryProviderBase"/> that is automatically used by <see cref="T:Remotion.Linq.QueryableBase`1"/>
2257             unless a custom <see cref="T:System.Linq.IQueryProvider"/> is specified. The <see cref="T:Remotion.Linq.DefaultQueryProvider"/> executes queries by parsing them into
2258             an instance of type <see cref="T:Remotion.Linq.QueryModel"/>, which is then passed to an implementation of <see cref="T:Remotion.Linq.IQueryExecutor"/> to obtain the
2259             result set.
2260             </summary>
2261         </member>
2262         <member name="T:Remotion.Linq.QueryProviderBase">
2263             <summary>
2264             Provides a default implementation of <see cref="T:System.Linq.IQueryProvider"/> that executes queries (subclasses of <see cref="T:Remotion.Linq.QueryableBase`1"/>) by
2265             first parsing them into a <see cref="T:Remotion.Linq.QueryModel"/> and then passing that to a given implementation of <see cref="T:Remotion.Linq.IQueryExecutor"/>.
2266             Usually, <see cref="T:Remotion.Linq.DefaultQueryProvider"/> should be used unless <see cref="M:Remotion.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)"/> must be manually implemented.
2267             </summary>
2268         </member>
2269         <member name="M:Remotion.Linq.QueryProviderBase.#ctor(Remotion.Linq.Parsing.Structure.IQueryParser,Remotion.Linq.IQueryExecutor)">
2270             <summary>
2271             Initializes a new instance of <see cref="T:Remotion.Linq.QueryProviderBase"/> using a custom <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/>. Use this
2272             constructor to customize how queries are parsed.
2273             </summary>
2274             <param name="queryParser">The <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/> used to parse queries. Specify an instance of <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/>
2275               for default behavior.</param>
2276             <param name="executor">The <see cref="T:Remotion.Linq.IQueryExecutor"/> used to execute queries against a specific query backend.</param>
2277         </member>
2278         <member name="M:Remotion.Linq.QueryProviderBase.CreateQuery(System.Linq.Expressions.Expression)">
2279             <summary>
2280             Constructs an <see cref="T:System.Linq.IQueryable"/> object that can evaluate the query represented by a specified expression tree. This
2281             method delegates to <see cref="M:Remotion.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)"/>.
2282             </summary>
2283             <param name="expression">An expression tree that represents a LINQ query.</param>
2284             <returns>
2285             An <see cref="T:System.Linq.IQueryable"/> that can evaluate the query represented by the specified expression tree.
2286             </returns>
2287         </member>
2288         <member name="M:Remotion.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)">
2289             <summary>
2290             Constructs an <see cref="T:System.Linq.IQueryable`1"/> object that can evaluate the query represented by a specified expression tree. This method is 
2291             called by the standard query operators defined by the <see cref="T:System.Linq.Queryable"/> class.
2292             </summary>
2293             <param name="expression">An expression tree that represents a LINQ query.</param>
2294             <returns>
2295             An <see cref="T:System.Linq.IQueryable`1"/> that can evaluate the query represented by the specified expression tree.
2296             </returns>
2297         </member>
2298         <member name="M:Remotion.Linq.QueryProviderBase.Execute(System.Linq.Expressions.Expression)">
2299             <summary>
2300             Executes the query defined by the specified expression by parsing it with a 
2301             <see cref="P:Remotion.Linq.QueryProviderBase.QueryParser"/> and then running it through the <see cref="P:Remotion.Linq.QueryProviderBase.Executor"/>.
2302             This method is invoked through the <see cref="T:System.Linq.IQueryProvider"/> interface methods, for example by 
2303             <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0})"/> and 
2304             <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0})"/>, and it's also used by <see cref="T:Remotion.Linq.QueryableBase`1"/>
2305             when the <see cref="T:System.Linq.IQueryable`1"/> is enumerated.
2306             </summary>
2307             <remarks>
2308             Override this method to replace the query execution mechanism by a custom implementation.
2309             </remarks>
2310         </member>
2311         <member name="M:Remotion.Linq.QueryProviderBase.System#Linq#IQueryProvider#Execute``1(System.Linq.Expressions.Expression)">
2312             <summary>
2313             Executes the query defined by the specified expression by parsing it with a
2314             <see cref="P:Remotion.Linq.QueryProviderBase.QueryParser"/> and then running it through the <see cref="P:Remotion.Linq.QueryProviderBase.Executor"/>.
2315             The result is cast to <typeparamref name="TResult"/>.
2316             </summary>
2317             <typeparam name="TResult">The type of the query result.</typeparam>
2318             <param name="expression">The query expression to be executed.</param>
2319             <returns>The result of the query cast to <typeparamref name="TResult"/>.</returns>
2320             <remarks>
2321             This method is called by the standard query operators that return a single value, such as 
2322             <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0})"/> or 
2323             <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0})"/>.
2324             In addition, it is called by <see cref="T:Remotion.Linq.QueryableBase`1"/> to execute queries that return sequences.
2325             </remarks>
2326         </member>
2327         <member name="M:Remotion.Linq.QueryProviderBase.System#Linq#IQueryProvider#Execute(System.Linq.Expressions.Expression)">
2328             <summary>
2329             Executes the query defined by the specified expression by parsing it with a
2330             <see cref="P:Remotion.Linq.QueryProviderBase.QueryParser"/> and then running it through the <see cref="P:Remotion.Linq.QueryProviderBase.Executor"/>.
2331             </summary>
2332             <param name="expression">The query expression to be executed.</param>
2333             <returns>The result of the query.</returns>
2334             <remarks>
2335             This method is similar to the <see cref="M:System.Linq.IQueryProvider.Execute``1(System.Linq.Expressions.Expression)"/> method, but without the cast to a defined return type.
2336             </remarks>
2337         </member>
2338         <member name="M:Remotion.Linq.QueryProviderBase.GenerateQueryModel(System.Linq.Expressions.Expression)">
2339             <summary>
2340             The method generates a <see cref="T:Remotion.Linq.QueryModel"/>.
2341             </summary>
2342             <param name="expression">The query as expression chain.</param>
2343             <returns>a <see cref="T:Remotion.Linq.QueryModel"/></returns>
2344         </member>
2345         <member name="P:Remotion.Linq.QueryProviderBase.QueryParser">
2346             <summary>
2347             Gets the <see cref="P:Remotion.Linq.QueryProviderBase.QueryParser"/> used by this <see cref="T:Remotion.Linq.QueryProviderBase"/> to parse LINQ queries.
2348             </summary>
2349             <value>The query parser.</value>
2350         </member>
2351         <member name="P:Remotion.Linq.QueryProviderBase.Executor">
2352             <summary>
2353             Gets or sets the implementation of <see cref="T:Remotion.Linq.IQueryExecutor"/> used to execute queries created via <see cref="M:Remotion.Linq.QueryProviderBase.CreateQuery``1(System.Linq.Expressions.Expression)"/>.
2354             </summary>
2355             <value>The executor used to execute queries.</value>
2356         </member>
2357         <member name="M:Remotion.Linq.DefaultQueryProvider.#ctor(System.Type,Remotion.Linq.Parsing.Structure.IQueryParser,Remotion.Linq.IQueryExecutor)">
2358             <summary>
2359             Initializes a new instance of <see cref="T:Remotion.Linq.DefaultQueryProvider"/> using a custom <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/>.
2360             </summary>
2361             <param name="queryableType">
2362               A type implementing <see cref="T:System.Linq.IQueryable`1"/>. This type is used to construct the chain of query operators. Must be a generic type
2363               definition.
2364             </param>
2365             <param name="queryParser">The <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/> used to parse queries. Specify an instance of 
2366               <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/> for default behavior. See also <see cref="M:Remotion.Linq.Parsing.Structure.QueryParser.CreateDefault"/>.</param>
2367             <param name="executor">The <see cref="T:Remotion.Linq.IQueryExecutor"/> used to execute queries against a specific query backend.</param>
2368         </member>
2369         <member name="M:Remotion.Linq.DefaultQueryProvider.CreateQuery``1(System.Linq.Expressions.Expression)">
2370             <summary>
2371             Creates a new <see cref="T:System.Linq.IQueryable"/> (of type <see cref="P:Remotion.Linq.DefaultQueryProvider.QueryableType"/> with <typeparamref name="T"/> as its generic argument) that
2372             represents the query defined by <paramref name="expression"/> and is able to enumerate its results.
2373             </summary>
2374             <typeparam name="T">The type of the data items returned by the query.</typeparam>
2375             <param name="expression">An expression representing the query for which a <see cref="T:System.Linq.IQueryable`1"/> should be created.</param>
2376             <returns>An <see cref="T:System.Linq.IQueryable`1"/> that represents the query defined by <paramref name="expression"/>.</returns>
2377         </member>
2378         <member name="P:Remotion.Linq.DefaultQueryProvider.QueryableType">
2379             <summary>
2380             Gets the type of queryable created by this provider. This is the generic type definition of an implementation of <see cref="T:System.Linq.IQueryable`1"/>
2381             (usually a subclass of <see cref="T:Remotion.Linq.QueryableBase`1"/>) with exactly one type argument.
2382             </summary>
2383         </member>
2384         <member name="T:Remotion.Linq.IQueryExecutor">
2385             <summary>
2386             Constitutes the bridge between re-linq and a concrete query provider implementation. Concrete providers implement this interface
2387             and <see cref="T:Remotion.Linq.QueryProviderBase"/> calls the respective method of the interface implementation when a query is to be executed.
2388             </summary>
2389         </member>
2390         <member name="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)">
2391             <summary>
2392             Executes the given <paramref name="queryModel"/> as a scalar query, i.e. as a query returning a scalar value of type <typeparamref name="T"/>.
2393             The query ends with a scalar result operator, for example a <see cref="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator"/> or a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SumResultOperator"/>.
2394             </summary>
2395             <typeparam name="T">The type of the scalar value returned by the query.</typeparam>
2396             <param name="queryModel">The <see cref="T:Remotion.Linq.QueryModel"/> representing the query to be executed. Analyze this via an 
2397             <see cref="T:Remotion.Linq.IQueryModelVisitor"/>.</param>
2398             <returns>A scalar value of type <typeparamref name="T"/> that represents the query's result.</returns>
2399             <remarks>
2400             The difference between <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Linq.QueryModel,System.Boolean)"/> and <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)"/> is in the kind of object that is returned.
2401             <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Linq.QueryModel,System.Boolean)"/> is used when a query that would otherwise return a collection result set should pick a single value from the 
2402             set, for example the first, last, minimum, maximum, or only value in the set. <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)"/> is used when a value is 
2403             calculated or aggregated from all the values in the collection result set. This applies to, for example, item counts, average calculations,
2404             checks for the existence of a specific item, and so on.
2405             </remarks>
2406         </member>
2407         <member name="M:Remotion.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Linq.QueryModel,System.Boolean)">
2408             <summary>
2409             Executes the given <paramref name="queryModel"/> as a single object query, i.e. as a query returning a single object of type 
2410             <typeparamref name="T"/>.
2411             The query ends with a single result operator, for example a <see cref="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator"/> or a <see cref="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator"/>.
2412             </summary>
2413             <typeparam name="T">The type of the single value returned by the query.</typeparam>
2414             <param name="queryModel">The <see cref="T:Remotion.Linq.QueryModel"/> representing the query to be executed. Analyze this via an 
2415             <see cref="T:Remotion.Linq.IQueryModelVisitor"/>.</param>
2416             <param name="returnDefaultWhenEmpty">If <see langword="true"/>, the executor must return a default value when its result set is empty; 
2417             if <see langword="false"/>, it should throw an <see cref="T:System.InvalidOperationException"/> when its result set is empty.</param>
2418             <returns>A single value of type <typeparamref name="T"/> that represents the query's result.</returns>
2419             <remarks>
2420             The difference between <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Linq.QueryModel,System.Boolean)"/> and <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)"/> is in the kind of object that is returned.
2421             <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteSingle``1(Remotion.Linq.QueryModel,System.Boolean)"/> is used when a query that would otherwise return a collection result set should pick a single value from the 
2422             set, for example the first, last, minimum, maximum, or only value in the set. <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteScalar``1(Remotion.Linq.QueryModel)"/> is used when a value is 
2423             calculated or aggregated from all the values in the collection result set. This applies to, for example, item counts, average calculations,
2424             checks for the existence of a specific item, and so on.
2425             </remarks>
2426         </member>
2427         <member name="M:Remotion.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Linq.QueryModel)">
2428             <summary>
2429             Executes the given <paramref name="queryModel"/> as a collection query, i.e. as a query returning objects of type <typeparamref name="T"/>. 
2430             The query does not end with a scalar result operator, but it can end with a single result operator, for example 
2431             <see cref="T:Remotion.Linq.Clauses.ResultOperators.SingleResultOperator"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperators.FirstResultOperator"/>. In such a case, the returned enumerable must yield exactly 
2432             one object (or none if the last result operator allows empty result sets).
2433             </summary>
2434             <typeparam name="T">The type of the items returned by the query.</typeparam>
2435             <param name="queryModel">The <see cref="T:Remotion.Linq.QueryModel"/> representing the query to be executed. Analyze this via an 
2436             <see cref="T:Remotion.Linq.IQueryModelVisitor"/>.</param>
2437             <returns>A scalar value of type <typeparamref name="T"/> that represents the query's result.</returns>
2438         </member>
2439         <member name="T:Remotion.Linq.IQueryModelVisitor">
2440             <summary>
2441             Defines an interface for visiting the clauses of a <see cref="T:Remotion.Linq.QueryModel"/>.
2442             </summary>
2443             <remarks>
2444             <para>
2445             When implement this interface, implement <see cref="M:Remotion.Linq.IQueryModelVisitor.VisitQueryModel(Remotion.Linq.QueryModel)"/>, then call <c>Accept</c> on every clause that should
2446             be visited. Child clauses, joins, orderings, and result operators are not visited automatically; they always need to be explicitly visited 
2447             via <see cref="M:Remotion.Linq.Clauses.IBodyClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)"/>, <see cref="M:Remotion.Linq.Clauses.JoinClause.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)"/>, <see cref="M:Remotion.Linq.Clauses.Ordering.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.OrderByClause,System.Int32)"/>, 
2448             <see cref="M:Remotion.Linq.Clauses.ResultOperatorBase.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,System.Int32)"/>, and so on.
2449             </para>
2450             <para>
2451             <see cref="T:Remotion.Linq.QueryModelVisitorBase"/> provides a robust default implementation of this interface that can be used as a base for other visitors.
2452             </para>
2453             </remarks>
2454         </member>
2455         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.FieldInfoBinding">
2456             <summary>
2457             Represents a <see cref="T:System.Reflection.FieldInfo"/> being bound to an associated <see cref="T:System.Linq.Expressions.Expression"/> instance. This binding's 
2458             <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.FieldInfoBinding.MatchesReadAccess(System.Reflection.MemberInfo)"/> method returns <see langword="true"/> only for the same <see cref="T:System.Reflection.FieldInfo"/> the expression is bound to.
2459             <seealso cref="T:System.Linq.Expressions.MemberBinding"/>
2460             </summary>
2461         </member>
2462         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding">
2463             <summary>
2464             Represents a <see cref="T:System.Reflection.MemberInfo"/> being bound to an associated <see cref="T:System.Linq.Expressions.Expression"/> instance. This is used by the 
2465             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor"/> to represent assignments in constructor calls such as <c>new AnonymousType (a = 5)</c>, 
2466             where <c>a</c> is the member of <c>AnonymousType</c> and <c>5</c> is the associated expression.
2467             The <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MemberBinding.MatchesReadAccess(System.Reflection.MemberInfo)"/> method can be used to check whether the member bound to an expression matches a given <see cref="T:System.Reflection.MemberInfo"/>
2468             (considering read access). See the subclasses for details.
2469             </summary>
2470         </member>
2471         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MethodInfoBinding">
2472             <summary>
2473             Represents a <see cref="T:System.Reflection.MethodInfo"/> being bound to an associated <see cref="T:System.Linq.Expressions.Expression"/> instance. 
2474             <seealso cref="T:System.Linq.Expressions.MemberBinding"/>
2475             This binding's 
2476             <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.MethodInfoBinding.MatchesReadAccess(System.Reflection.MemberInfo)"/> method returns <see langword="true"/> for the same <see cref="T:System.Reflection.MethodInfo"/> the expression is bound to or for a
2477             <see cref="T:System.Reflection.PropertyInfo"/> whose getter method is the <see cref="T:System.Reflection.MethodInfo"/> the expression is bound to.
2478             </summary>
2479         </member>
2480         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.PropertyInfoBinding">
2481             <summary>
2482             Represents a <see cref="T:System.Reflection.PropertyInfo"/> being bound to an associated <see cref="T:System.Linq.Expressions.Expression"/> instance. 
2483             <seealso cref="T:System.Linq.Expressions.MemberBinding"/>
2484             This binding's 
2485             <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.MemberBindings.PropertyInfoBinding.MatchesReadAccess(System.Reflection.MemberInfo)"/> method returns <see langword="true"/> for the same <see cref="T:System.Reflection.PropertyInfo"/> the expression is bound to 
2486             or for its getter method's <see cref="T:System.Reflection.MethodInfo"/>.
2487             </summary>
2488         </member>
2489         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.MultiReplacingExpressionVisitor">
2490             <summary>
2491             Replaces <see cref="T:System.Linq.Expressions.Expression"/> nodes according to a given mapping specification. Expressions are also replaced within subqueries; the 
2492             <see cref="T:Remotion.Linq.QueryModel"/> is changed by the replacement operations, it is not copied. The replacement node is not recursively searched for 
2493             occurrences of <see cref="T:System.Linq.Expressions.Expression"/> nodes to be replaced.
2494             </summary>
2495         </member>
2496         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor">
2497             <summary>
2498             Takes an expression tree and first analyzes it for evaluatable subtrees (using <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor"/>), i.e.
2499             subtrees that can be pre-evaluated before actually generating the query. Examples for evaluatable subtrees are operations on constant
2500             values (constant folding), access to closure variables (variables used by the LINQ query that are defined in an outer scope), or method
2501             calls on known objects or their members. In a second step, it replaces all of the evaluatable subtrees (top-down and non-recursive) by 
2502             their evaluated counterparts.
2503             </summary>
2504             <remarks>
2505             This visitor visits each tree node at most twice: once via the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor"/> for analysis and once
2506             again to replace nodes if possible (unless the parent node has already been replaced).
2507             </remarks>
2508         </member>
2509         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor.EvaluateIndependentSubtrees(System.Linq.Expressions.Expression,Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter)">
2510             <summary>
2511             Takes an expression tree and finds and evaluates all its evaluatable subtrees.
2512             </summary>
2513         </member>
2514         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor.EvaluateSubtree(System.Linq.Expressions.Expression)">
2515             <summary>
2516             Evaluates an evaluatable <see cref="T:System.Linq.Expressions.Expression"/> subtree, i.e. an independent expression tree that is compilable and executable
2517             without any data being passed in. The result of the evaluation is returned as a <see cref="T:System.Linq.Expressions.ConstantExpression"/>; if the subtree
2518             is already a <see cref="T:System.Linq.Expressions.ConstantExpression"/>, no evaluation is performed.
2519             </summary>
2520             <param name="subtree">The subtree to be evaluated.</param>
2521             <returns>A <see cref="T:System.Linq.Expressions.ConstantExpression"/> holding the result of the evaluation.</returns>
2522         </member>
2523         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.ReplacingExpressionVisitor">
2524             <summary>
2525             Replaces all nodes that equal a given <see cref="T:System.Linq.Expressions.Expression"/> with a replacement node. Expressions are also replaced within subqueries; the 
2526             <see cref="T:Remotion.Linq.QueryModel"/> is changed by the replacement operations, it is not copied. The replacement node is not recursively searched for 
2527             occurrences of the <see cref="T:System.Linq.Expressions.Expression"/> to be replaced.
2528             </summary>
2529         </member>
2530         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.SubQueryFindingExpressionVisitor">
2531             <summary>
2532             Preprocesses an expression tree for parsing. The preprocessing involves detection of sub-queries and VB-specific expressions.
2533             </summary>
2534         </member>
2535         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation">
2536             <summary>
2537             Transforms a given <see cref="T:System.Linq.Expressions.Expression"/>. If the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> can handle the <see cref="T:System.Linq.Expressions.Expression"/>,
2538             it should return a new, transformed <see cref="T:System.Linq.Expressions.Expression"/> instance. Otherwise, it should return the input <paramref name="expression"/> 
2539             instance.
2540             </summary>
2541             <param name="expression">The expression to be transformed.</param>
2542             <returns>The result of the transformation, or <paramref name="expression"/> if no transformation was applied.</returns>
2543         </member>
2544         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry">
2545             <summary>
2546             Manages registration and lookup of <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> objects, and converts them to 
2547             weakly typed <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> instances. Use this class together with <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor"/>
2548             in order to apply the registered transformers to an <see cref="T:System.Linq.Expressions.Expression"/> tree.
2549             </summary>
2550         </member>
2551         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider">
2552             <summary>
2553             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider"/> defines an API for classes returning <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> instances for specific 
2554             <see cref="T:System.Linq.Expressions.Expression"/> objects. Usually, the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/> will be used when an implementation of this
2555             interface is needed.
2556             </summary>
2557         </member>
2558         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider.GetTransformations(System.Linq.Expressions.Expression)">
2559             <summary>
2560             Gets the transformers for the given <see cref="T:System.Linq.Expressions.Expression"/>.
2561             </summary>
2562             <param name="expression">The <see cref="T:System.Linq.Expressions.Expression"/> to be transformed.</param>
2563             <returns>
2564             A sequence containing <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> objects that should be applied to the <paramref name="expression"/>. Must not
2565             be <see langword="null"/>.
2566             </returns>
2567         </member>
2568         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry.CreateDefault">
2569             <summary>
2570             Creates an <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/> with the default transformations provided by this library already registered.
2571             New transformers can be registered by calling <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry.Register``1(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer{``0})"/>.
2572             </summary>
2573             <returns> A default <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/>.</returns>
2574             <remarks>
2575             Currently, the default registry contains:
2576             <list type="bullet">
2577             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBCompareStringExpressionTransformer"/></item>
2578             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBInformationIsNothingExpressionTransformer"/></item>
2579             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.InvocationOfLambdaExpressionTransformer"/></item>
2580             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.NullableValueTransformer"/></item>
2581             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.KeyValuePairNewExpressionTransformer"/></item>
2582             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.DictionaryEntryNewExpressionTransformer"/></item>
2583             <item><see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.TupleNewExpressionTransformer"/></item>
2584             </list>
2585             </remarks>
2586         </member>
2587         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry.Register``1(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer{``0})">
2588             <summary>
2589             Registers the specified <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> for the transformer's 
2590             <see cref="P:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1.SupportedExpressionTypes"/>. If <see cref="P:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1.SupportedExpressionTypes"/>
2591             returns <see langword="null"/>, the <paramref name="transformer"/> is registered as a generic transformer which will be applied to all
2592             <see cref="T:System.Linq.Expressions.Expression"/> nodes.
2593             </summary>
2594             <typeparam name="T">The type of expressions handled by the <paramref name="transformer"/>. This should be a type implemented by all
2595             expressions identified by <see cref="P:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1.SupportedExpressionTypes"/>. For generic transformers, <typeparamref name="T"/> 
2596             must be <see cref="T:System.Linq.Expressions.Expression"/>.</typeparam>
2597             <param name="transformer">The transformer to register.</param>
2598             <remarks>
2599             <para>
2600             The order in which transformers are registered is the same order on which they will later be applied by 
2601             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor"/>. When more than one transformer is registered for a certain <see cref="T:System.Linq.Expressions.ExpressionType"/>,
2602             each of them will get a chance to transform a given <see cref="T:System.Linq.Expressions.Expression"/>, until the first one returns a new <see cref="T:System.Linq.Expressions.Expression"/>.
2603             At that point, the transformation will start again with the new <see cref="T:System.Linq.Expressions.Expression"/> (and, if the expression's type has changed, potentially 
2604             different transformers).
2605             </para>
2606             <para>
2607             When generic transformers are registered, they act as if they had been registered for all <see cref="T:System.Linq.Expressions.ExpressionType"/> values (including
2608             custom ones). They will be applied in the order registered, but only after all respective specific transformers have run (without modifying 
2609             the expression, which would restart the transformation process with the new expression as explained above).
2610             </para>
2611             <para>
2612             When an <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> is registered for an incompatible <see cref="T:System.Linq.Expressions.ExpressionType"/>, this is not detected until 
2613             the transformer is actually applied to an <see cref="T:System.Linq.Expressions.Expression"/> of that <see cref="T:System.Linq.Expressions.ExpressionType"/>.
2614             </para>
2615             </remarks>
2616         </member>
2617         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1">
2618             <summary>
2619             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> is implemented by classes that transform <see cref="T:System.Linq.Expressions.Expression"/> instances. The 
2620             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/> manages registration of <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> instances, and the 
2621             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor"/> applies the transformations.
2622             </summary>
2623             <typeparam name="T">The type of expressions handled by this <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> implementation.</typeparam>
2624             <remarks>
2625             <para>
2626             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> is a convenience interface that provides strong typing, whereas 
2627             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> only operates on <see cref="T:System.Linq.Expressions.Expression"/> instances. 
2628             </para>
2629             <para>
2630             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> can be used together with the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor"/> class by using the 
2631             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/> class as the transformation provider. <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/> converts 
2632             strongly typed <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> instances to weakly typed <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> delegate instances.
2633             </para>
2634             </remarks>
2635         </member>
2636         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1.Transform(`0)">
2637             <summary>
2638             Transforms a given <see cref="T:System.Linq.Expressions.Expression"/>. If the implementation can handle the <see cref="T:System.Linq.Expressions.Expression"/>,
2639             it should return a new, transformed <see cref="T:System.Linq.Expressions.Expression"/> instance. Otherwise, it should return the input
2640             <paramref name="expression"/> instance.
2641             </summary>
2642             <param name="expression">The expression to be transformed.</param>
2643             <returns>The result of the transformation, or <paramref name="expression"/> if no transformation was applied.</returns>
2644         </member>
2645         <member name="P:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1.SupportedExpressionTypes">
2646             <summary>
2647             Gets the expression types supported by this <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/>.
2648             </summary>
2649             <value>The supported expression types. Return <see langword="null"/> to support all expression types. (This is only sensible when
2650             <typeparamref name="T"/> is <see cref="T:System.Linq.Expressions.Expression"/>.)
2651             </value>
2652         </member>
2653         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer">
2654             <summary>
2655             Dynamically discovers attributes implementing the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute"/> interface on methods and get accessors
2656             invoked by <see cref="T:System.Linq.Expressions.MethodCallExpression"/> or <see cref="T:System.Linq.Expressions.MemberExpression"/> instances and applies the respective 
2657             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/>.
2658             </summary>
2659         </member>
2660         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute">
2661             <summary>
2662             Defines an interface for attributes providing an <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> for a given <see cref="T:System.Linq.Expressions.MethodCallExpression"/>.
2663             </summary>
2664             <remarks>
2665             <para>
2666             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer"/> detects attributes implementing this interface while expressions are parsed 
2667             and uses the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> returned by <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute.GetExpressionTransformer(System.Linq.Expressions.MethodCallExpression)"/> to modify the expressions.
2668             </para>
2669             <para>
2670             Only one attribute instance implementing <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute"/> must be applied to a single method or property
2671             get accessor.
2672             </para>
2673             </remarks>
2674         </member>
2675         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.DictionaryEntryNewExpressionTransformer">
2676             <summary>
2677             Detects <see cref="T:System.Linq.Expressions.NewExpression"/> nodes for <see cref="T:System.Collections.DictionaryEntry"/> and adds <see cref="T:System.Reflection.MemberInfo"/> metadata to those nodes.
2678             This allows LINQ providers to match member access and constructor arguments more easily.
2679             </summary>
2680         </member>
2681         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MemberAddingNewExpressionTransformerBase">
2682             <summary>
2683             Provides a base class for transformers detecting <see cref="T:System.Linq.Expressions.NewExpression"/> nodes for tuple types and adding <see cref="T:System.Reflection.MemberInfo"/> metadata 
2684             to those nodes. This allows LINQ providers to match member access and constructor arguments more easily.
2685             </summary>
2686         </member>
2687         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.InvocationOfLambdaExpressionTransformer">
2688             <summary>
2689             Detects expressions invoking a <see cref="T:System.Linq.Expressions.LambdaExpression"/> and replaces them with the body of that 
2690             <see cref="T:System.Linq.Expressions.LambdaExpression"/> (with the parameter references replaced with the invocation arguments).
2691             Providers use this transformation to be able to handle queries with <see cref="T:System.Linq.Expressions.InvocationExpression"/> instances.
2692             </summary>
2693             <remarks>
2694             When the <see cref="T:System.Linq.Expressions.InvocationExpression"/> is applied to a delegate instance (rather than a 
2695             <see cref="T:System.Linq.Expressions.LambdaExpression"/>), the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.InvocationOfLambdaExpressionTransformer"/> ignores it.
2696             </remarks>
2697         </member>
2698         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.KeyValuePairNewExpressionTransformer">
2699             <summary>
2700             Detects <see cref="T:System.Linq.Expressions.NewExpression"/> nodes for <see cref="T:System.Collections.Generic.KeyValuePair`2"/> and adds <see cref="T:System.Reflection.MemberInfo"/> metadata to those nodes.
2701             This allows LINQ providers to match member access and constructor arguments more easily.
2702             </summary>
2703         </member>
2704         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.MethodCallExpressionTransformerAttribute">
2705             <summary>
2706             Chooses a given <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> for a specific method (or property get accessor).
2707             </summary>
2708             <remarks>
2709             The <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> must have a default constructor. To choose a transformer that does not have a default constructor,
2710             create your own custom attribute class implementing 
2711             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.AttributeEvaluatingExpressionTransformer.IMethodCallExpressionTransformerAttribute"/>.
2712             </remarks>
2713         </member>
2714         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.NullableValueTransformer">
2715             <summary>
2716             Replaces calls to <see cref="P:System.Nullable`1.Value"/> and <see cref="P:System.Nullable`1.HasValue"/> with casts and null checks. This allows LINQ providers
2717             to treat nullables like reference types.
2718             </summary>
2719         </member>
2720         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.TupleNewExpressionTransformer">
2721             <summary>
2722             Detects <see cref="T:System.Linq.Expressions.NewExpression"/> nodes for the .NET tuple types and adds <see cref="T:System.Reflection.MemberInfo"/> metadata to those nodes.
2723             This allows LINQ providers to match member access and constructor arguments more easily.
2724             </summary>
2725         </member>
2726         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBCompareStringExpressionTransformer">
2727             <summary>
2728             Detects expressions calling the CompareString method used by Visual Basic .NET, and replaces them with 
2729             <see cref="T:Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression"/> instances. Providers use this transformation to be able to handle VB string comparisons
2730             more easily. See <see cref="T:Remotion.Linq.Clauses.Expressions.VBStringComparisonExpression"/> for details.
2731             </summary>
2732         </member>
2733         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.PredefinedTransformations.VBInformationIsNothingExpressionTransformer">
2734             <summary>
2735             Detects expressions calling the Information.IsNothing (...) method used by Visual Basic .NET, and replaces them with 
2736             <see cref="T:System.Linq.Expressions.BinaryExpression"/> instances comparing with <see langword="null"/>. Providers use this transformation to be able to 
2737             handle queries using IsNothing (...) more easily.
2738             </summary>
2739         </member>
2740         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor">
2741             <summary>
2742             Applies <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformation"/> delegates obtained from an <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider"/> to an expression tree. 
2743             The transformations occur in post-order (transforming child <see cref="T:System.Linq.Expressions.Expression"/> nodes before parent nodes). When a transformation changes 
2744             the current <see cref="T:System.Linq.Expressions.Expression"/>, its child nodes and itself will be revisited (and may be transformed again).
2745             </summary>
2746         </member>
2747         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TransparentIdentifierRemovingExpressionVisitor">
2748             <summary>
2749             Replaces expression patterns of the form <c>new T { x = 1, y = 2 }.x</c> (<see cref="T:System.Linq.Expressions.MemberInitExpression"/>) or 
2750             <c>new T ( x = 1, y = 2 ).x</c> (<see cref="T:System.Linq.Expressions.NewExpression"/>) to <c>1</c> (or <c>2</c> if <c>y</c> is accessed instead of <c>x</c>).
2751             Expressions are also replaced within subqueries; the <see cref="T:Remotion.Linq.QueryModel"/> is changed by the replacement operations, it is not copied. 
2752             </summary>
2753         </member>
2754         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableExpressionFilterBase">
2755             <summary>
2756             Base class for typical implementations of the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter"/>.
2757             </summary>
2758             <seealso cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter"/>
2759             <threadsafety static="true" instance="true"/>
2760         </member>
2761         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter">
2762             <summary>
2763             The <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter"/> interface defines an extension point for disabling partial evaluation on specific <see cref="T:System.Linq.Expressions.Expression"/> nodes.
2764             </summary>
2765             <remarks>
2766             <para>
2767             Implement the individual evaluation methods and return <see langword="false"/> to mark a specfic <see cref="T:System.Linq.Expressions.Expression"/> node as not partially 
2768             evaluatable. Note that the partial evaluation infrastructure will take care of visiting an <see cref="T:System.Linq.Expressions.Expression"/> node's children, 
2769             so the determination can usually be constrained to the attributes of the <see cref="T:System.Linq.Expressions.Expression"/> node itself.
2770             </para><para>
2771             Use the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableExpressionFilterBase"/> type as a base class for filter implementations that only require testing a few 
2772             <see cref="T:System.Linq.Expressions.Expression"/> node types, e.g. to disable partial evaluation for individual method calls.
2773             </para>
2774             </remarks>
2775             <seealso cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableExpressionFilterBase"/>
2776             <threadsafety static="true" instance="true"/>
2777         </member>
2778         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor">
2779             <summary>
2780             Analyzes an expression tree by visiting each of its nodes, finding those subtrees that can be evaluated without modifying the meaning of
2781             the tree.
2782             </summary>
2783             <remarks>
2784             An expression node/subtree is evaluatable if:
2785             <list type="bullet">
2786             <item>it is not a <see cref="T:System.Linq.Expressions.ParameterExpression"/> or any non-standard expression, </item>
2787             <item>it is not a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> that involves an <see cref="T:System.Linq.IQueryable"/>, and</item>
2788             <item>it does not have any of those non-evaluatable expressions as its children.</item>
2789             </list>
2790             <para>
2791             <see cref="T:System.Linq.Expressions.ParameterExpression"/> nodes are not evaluatable because they usually identify the flow of
2792             some information from one query node to the next. 
2793             </para><para>
2794             <see cref="T:System.Linq.Expressions.MethodCallExpression"/> nodes that involve <see cref="T:System.Linq.IQueryable"/> parameters or object instances are not evaluatable because they 
2795             should usually be translated into the target query syntax.
2796             </para><para>
2797             In .NET 3.5, non-standard expressions are not evaluatable because they cannot be compiled and evaluated by LINQ. 
2798             In .NET 4.0, non-standard expressions can be evaluated if they can be reduced to an evaluatable expression.
2799             </para>
2800             </remarks>
2801         </member>
2802         <member name="M:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.EvaluatableTreeFindingExpressionVisitor.IsCurrentExpressionEvaluatable(System.Linq.Expressions.Expression)">
2803             <summary>
2804             Determines whether the given <see cref="T:System.Linq.Expressions.Expression"/> is one of the expressions defined by <see cref="T:System.Linq.Expressions.ExpressionType"/> for which
2805             <see cref="T:System.Linq.Expressions.ExpressionVisitor"/> has a dedicated Visit method. <see cref="M:System.Linq.Expressions.ExpressionVisitor.Visit(System.Linq.Expressions.Expression)"/> handles those by calling the respective Visit method.
2806             </summary>
2807             <param name="expression">The expression to check. Must not be <see langword="null"/>.</param>
2808             <returns>
2809             <see langword="true"/> if <paramref name="expression"/> is one of the expressions defined by <see cref="T:System.Linq.Expressions.ExpressionType"/> and 
2810             <see cref="T:System.Linq.Expressions.ExpressionVisitor"/> has a dedicated Visit method for it; otherwise, <see langword="false"/>. 
2811             Note that <see cref="F:System.Linq.Expressions.ExpressionType.Extension"/>-type expressions are considered 'not supported' and will also return <see langword="false"/>.
2812             </returns>
2813         </member>
2814         <member name="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.NullEvaluatableExpressionFilter">
2815             <summary>
2816             Implementation of the null-object pattern for <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter"/>.
2817             </summary>
2818             <threadsafety static="true" instance="true"/>
2819         </member>
2820         <member name="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser">
2821             <summary>
2822             Parses an expression tree into a chain of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> objects after executing a sequence of 
2823             <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> objects.
2824             </summary>
2825         </member>
2826         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultNodeTypeProvider">
2827             <summary>
2828             Creates a default <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider"/> that already has all expression node parser defined by the re-linq assembly 
2829             registered. Users can add inner providers to register their own expression node parsers.
2830             </summary>
2831             <returns>A default <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider"/> that already has all expression node parser defined by the re-linq assembly 
2832             registered.</returns>
2833         </member>
2834         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider,Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter)">
2835             <summary>
2836             Creates a default <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor"/> that already has the expression tree processing steps defined by the re-linq assembly
2837             registered. Users can insert additional processing steps.
2838             </summary>
2839             <param name="tranformationProvider">
2840             The tranformation provider to be used by the <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor"/> included
2841             in the result set. Use <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry.CreateDefault"/> to create a default provider.
2842             </param>
2843             <param name="evaluatableExpressionFilter">
2844             The expression filter used by the <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor"/> included in the result set.
2845             Use <see langword="null"/> to indicate that no custom filtering should be applied.
2846             </param>
2847             <returns>
2848             A default <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor"/> that already has all expression tree processing steps defined by the re-linq assembly
2849             registered.
2850             </returns>
2851             <remarks>
2852             The following steps are included:
2853             <list type="bullet">
2854                         <item><see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor"/></item>
2855                         <item><see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor"/> (parameterized with <paramref name="tranformationProvider"/>)</item>
2856                 </list>
2857             </remarks>
2858         </member>
2859         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.#ctor(Remotion.Linq.Parsing.Structure.INodeTypeProvider,Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor)">
2860             <summary>
2861             Initializes a new instance of the <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> class with a custom <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/> and 
2862             <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> implementation.
2863             </summary>
2864             <param name="nodeTypeProvider">The <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/> to use when parsing <see cref="T:System.Linq.Expressions.Expression"/> trees. Use 
2865             <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultNodeTypeProvider"/> to create an instance of <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider"/> that already includes all
2866             default node types. (The <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider"/> can be customized as needed by adding or removing 
2867             <see cref="P:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider.InnerProviders"/>).</param>
2868             <param name="processor">The <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> to apply to <see cref="T:System.Linq.Expressions.Expression"/> trees before parsing their nodes. Use
2869             <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider,Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter)"/> to create an instance of <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor"/> that already includes
2870             the default steps. (The <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor"/> can be customized as needed by adding or removing 
2871             <see cref="P:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor.InnerProcessors"/>).</param>
2872         </member>
2873         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.ParseTree(System.Linq.Expressions.Expression)">
2874             <summary>
2875             Parses the given <paramref name="expressionTree"/> into a chain of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> instances, using 
2876             <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> to convert expressions to nodes.
2877             </summary>
2878             <param name="expressionTree">The expression tree to parse.</param>
2879             <returns>A chain of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> instances representing the <paramref name="expressionTree"/>.</returns>
2880         </member>
2881         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.GetQueryOperatorExpression(System.Linq.Expressions.Expression)">
2882             <summary>
2883             Gets the query operator <see cref="T:System.Linq.Expressions.MethodCallExpression"/> represented by <paramref name="expression"/>. If <paramref name="expression"/>
2884             is already a <see cref="T:System.Linq.Expressions.MethodCallExpression"/>, that is the assumed query operator. If <paramref name="expression"/> is a 
2885             <see cref="T:System.Linq.Expressions.MemberExpression"/> and the member's getter is registered with <see cref="P:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.NodeTypeProvider"/>, a corresponding 
2886             <see cref="T:System.Linq.Expressions.MethodCallExpression"/> is constructed and returned. Otherwise, <see langword="null"/> is returned.
2887             </summary>
2888             <param name="expression">The expression to get a query operator expression for.</param>
2889             <returns>A <see cref="T:System.Linq.Expressions.MethodCallExpression"/> to be parsed as a query operator, or <see langword="null"/> if the expression does not represent
2890             a query operator.</returns>
2891         </member>
2892         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.InferAssociatedIdentifierForSource(System.Linq.Expressions.MethodCallExpression)">
2893             <summary>
2894             Infers the associated identifier for the source expression node contained in methodCallExpression.Arguments[0]. For example, for the
2895             call chain "<c>source.Where (i => i > 5)</c>" (which actually reads "<c>Where (source, i => i > 5</c>"), the identifier "i" is associated
2896             with the node generated for "source". If no identifier can be inferred, <see langword="null"/> is returned.
2897             </summary>
2898         </member>
2899         <member name="P:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.NodeTypeProvider">
2900             <summary>
2901             Gets the node type provider used to parse <see cref="T:System.Linq.Expressions.MethodCallExpression"/> instances in <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.ParseTree(System.Linq.Expressions.Expression)"/>.
2902             </summary>
2903             <value>The node type provider.</value>
2904         </member>
2905         <member name="P:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.Processor">
2906             <summary>
2907             Gets the processing steps used by <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.ParseTree(System.Linq.Expressions.Expression)"/> to process the <see cref="T:System.Linq.Expressions.Expression"/> tree before analyzing its structure.
2908             </summary>
2909             <value>The processing steps.</value>
2910         </member>
2911         <member name="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor">
2912             <summary>
2913             Implements <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> by storing a list of inner <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> instances.
2914             The <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor.Process(System.Linq.Expressions.Expression)"/> method calls each inner instance in the order defined by the <see cref="P:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.CompoundExpressionTreeProcessor.InnerProcessors"/> property. This is an
2915             implementation of the Composite Pattern.
2916             </summary>
2917         </member>
2918         <member name="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor">
2919             <summary>
2920             <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> is implemented by classes that represent steps in the process of parsing the structure
2921             of an <see cref="T:System.Linq.Expressions.Expression"/> tree. <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> applies a series of these steps to the <see cref="T:System.Linq.Expressions.Expression"/>
2922             tree before analyzing the query operators and creating a <see cref="T:Remotion.Linq.QueryModel"/>.
2923             </summary>
2924             <remarks>
2925             <para>
2926             There are predefined implementations of <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> that should only be left out when parsing an 
2927             <see cref="T:System.Linq.Expressions.Expression"/> tree when there are very good reasons to do so.
2928             </para>
2929             <para>
2930             <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> can be implemented to provide custom, complex transformations on an <see cref="T:System.Linq.Expressions.Expression"/>
2931             tree. For performance reasons, avoid adding too many steps each of which visits the whole tree. For
2932             simple transformations, consider using <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer`1"/> and <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor"/> - which can
2933             batch several transformations into a single expression tree visiting run - rather than implementing a dedicated 
2934             <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/>.
2935             </para>
2936             </remarks>
2937         </member>
2938         <member name="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.NullExpressionTreeProcessor">
2939             <summary>
2940             Implements the <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> interface by doing nothing in the <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.NullExpressionTreeProcessor.Process(System.Linq.Expressions.Expression)"/> method. This is an
2941             implementation of the Null Object Pattern.
2942             </summary>
2943         </member>
2944         <member name="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor">
2945             <summary>
2946             Analyzes an <see cref="T:System.Linq.Expressions.Expression"/> tree for sub-trees that are evaluatable in-memory, and evaluates those sub-trees.
2947             </summary>
2948             <remarks>
2949             The <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.PartialEvaluatingExpressionTreeProcessor"/> uses the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.PartialEvaluatingExpressionVisitor"/> for partial evaluation.
2950             It performs two visiting runs over the <see cref="T:System.Linq.Expressions.Expression"/> tree.
2951             </remarks>
2952         </member>
2953         <member name="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor">
2954             <summary>
2955             Applies a given set of transformations to an <see cref="T:System.Linq.Expressions.Expression"/> tree. The transformations are provided by an instance of
2956             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider"/> (eg., <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/>).
2957             </summary>
2958             <remarks>
2959             The <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor"/> uses the <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.TransformingExpressionVisitor"/> to apply the transformations.
2960             It performs a single visiting run over the <see cref="T:System.Linq.Expressions.Expression"/> tree.
2961             </remarks>
2962         </member>
2963         <member name="M:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor.#ctor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider)">
2964             <summary>
2965             Initializes a new instance of the <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeProcessors.TransformingExpressionTreeProcessor"/> class.
2966             </summary>
2967             <param name="provider">A class providing the transformations to apply to the tree, eg., an instance of 
2968             <see cref="T:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry"/>.</param>
2969         </member>
2970         <member name="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider">
2971             <summary>
2972             Provides a common interface for classes mapping a <see cref="T:System.Reflection.MethodInfo"/> to the respective <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>
2973             type. Implementations are used by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> is encountered to 
2974             instantiate the right <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> for the given method.
2975             </summary>
2976         </member>
2977         <member name="M:Remotion.Linq.Parsing.Structure.INodeTypeProvider.IsRegistered(System.Reflection.MethodInfo)">
2978             <summary>
2979             Determines whether a node type for the given <see cref="T:System.Reflection.MethodInfo"/> can be returned by this 
2980             <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/>.
2981             </summary>
2982         </member>
2983         <member name="M:Remotion.Linq.Parsing.Structure.INodeTypeProvider.GetNodeType(System.Reflection.MethodInfo)">
2984             <summary>
2985             Gets the type of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> that matches the given <paramref name="method"/>, returning <see langword="null"/> 
2986             if none can be found.
2987             </summary>
2988         </member>
2989         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateExpressionNode">
2990             <summary>
2991             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the 
2992             <see cref="M:System.Linq.Queryable.Aggregate``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``0,``0}})"/> and <see cref="M:System.Linq.Enumerable.Aggregate``2(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1})"/> methods.
2993             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
2994             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
2995             </summary>
2996         </member>
2997         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase">
2998             <summary>
2999             Acts as a base class for <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>s standing for <see cref="T:System.Linq.Expressions.MethodCallExpression"/>s that operate on the result of the query
3000             rather than representing actual clauses, such as <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.CountExpressionNode"/> or <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.DistinctExpressionNode"/>.
3001             </summary>
3002         </member>
3003         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase">
3004             <summary>
3005             Base class for <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> implementations that represent instantiations of <see cref="T:System.Linq.Expressions.MethodCallExpression"/>.
3006             </summary>
3007         </member>
3008         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode">
3009             <summary>
3010             Interface for classes representing structural parts of an <see cref="T:System.Linq.Expressions.Expression"/> tree.
3011             </summary>
3012         </member>
3013         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3014             <summary>
3015             Resolves the specified <paramref name="expressionToBeResolved"/> by replacing any occurrence of <paramref name="inputParameter"/>
3016             by the result of the projection of this <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>. The result is an <see cref="T:System.Linq.Expressions.Expression"/> that goes all the
3017             way to an <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>.
3018             </summary>
3019             <param name="inputParameter">The parameter representing the input data streaming into an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>. This is replaced
3020             by the projection data coming out of this <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>.</param>
3021             <param name="expressionToBeResolved">The expression to be resolved. Any occurrence of <paramref name="inputParameter"/> in this expression
3022             is replaced.</param>
3023             <param name="clauseGenerationContext">Context information used during the current parsing process. This structure maps 
3024             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode"/>s  to the clauses created from them. Implementers that also implement 
3025             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode"/> (such as  <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode"/> or <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode"/>) must add 
3026             their clauses to the mapping in <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Apply(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> if they want to be able to implement <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> correctly.</param>
3027             <returns>An equivalent of <paramref name="expressionToBeResolved"/> with each occurrence of <paramref name="inputParameter"/> replaced by
3028             the projection data streaming out of this <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>.</returns>
3029             <exception cref="T:System.InvalidOperationException">
3030             This node does not support this operation because it does not stream any data to subsequent nodes.
3031             </exception>
3032         </member>
3033         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Apply(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3034             <summary>
3035             Applies this <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> to the specified query model. Nodes can add or replace clauses, add or replace expressions, 
3036             add or replace <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/> objects, or even create a completely new <see cref="T:Remotion.Linq.QueryModel"/>, depending on their semantics.
3037             </summary>
3038             <param name="queryModel">The query model this node should be applied to.</param>
3039             <param name="clauseGenerationContext">Context information used during the current parsing process. This structure maps 
3040             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode"/>s to the clauses created from them. Implementers that 
3041             also implement <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode"/> (such as 
3042             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode"/> or <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode"/>) must add their clauses to the mapping in 
3043             <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Apply(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> in order to be able to implement <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> correctly.</param>
3044             <returns>The modified <paramref name="queryModel"/> or a new <see cref="T:Remotion.Linq.QueryModel"/> that reflects the changes made by this node.</returns>
3045             <remarks>
3046             For <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode"/> objects, which mark the end of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain, this method must not be called.
3047             Instead, use <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode.CreateMainFromClause(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> to generate a <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> and instantiate a new 
3048             <see cref="T:Remotion.Linq.QueryModel"/> with that clause.
3049             </remarks>
3050         </member>
3051         <member name="P:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Source">
3052             <summary>
3053             Gets the source <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> that streams data into this node.
3054             </summary>
3055             <value>The source <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>, or <see langword="null"/> if this node is the end of the chain.</value>
3056         </member>
3057         <member name="P:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.AssociatedIdentifier">
3058             <summary>
3059             Gets the identifier associated with this <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>. <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> tries to find the identifier
3060             that was originally associated with this node in the query written by the user by analyzing the parameter names of the next expression in the 
3061             method call chain.
3062             </summary>
3063             <value>The associated identifier.</value>
3064         </member>
3065         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.WrapQueryModelAfterEndOfQuery(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3066             <summary>
3067             Wraps the <paramref name="queryModel"/> into a subquery after a node that indicates the end of the query (
3068             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ResultOperatorExpressionNodeBase"/> or <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode"/>). Override this method
3069             when implementing a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> that does not need a subquery to be created if it occurs after the query end.
3070             </summary>
3071             <remarks>
3072             <para>
3073             When an ordinary node follows a result operator or group node, it cannot simply append its clauses to the <paramref name="queryModel"/> 
3074             because semantically, the result operator (or grouping) must be executed _before_ the clause. Therefore, in such scenarios, we wrap 
3075             the current query model into a <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/> that we put into the <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> of a new 
3076             <see cref="T:Remotion.Linq.QueryModel"/>.
3077             </para>
3078             <para>
3079             This method also changes the <see cref="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.Source"/> of this node because logically, all <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> operations must be handled
3080             by the new <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> holding the <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/>. For example, consider the following call chain:
3081             <code>
3082             MainSource (...)
3083               .Select (x =&gt; x)
3084               .Distinct ()
3085               .Select (x =&gt; x)
3086             </code>
3087             
3088             Naively, the last Select node would resolve (via Distinct and Select) to the <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> created by the initial MainSource.
3089             After this method is executed, however, that <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> is part of the sub query, and a new <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> 
3090             has been created to hold it. Therefore, we replace the chain as follows:
3091             <code>
3092             MainSource (MainSource (...).Select (x =&gt; x).Distinct ())
3093               .Select (x =&gt; x)
3094             </code>
3095             
3096             Now, the last Select node resolves to the new <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>.
3097             </para>
3098             </remarks>
3099         </member>
3100         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.SetResultTypeOverride(Remotion.Linq.QueryModel)">
3101             <summary>
3102             Sets the result type override of the given <see cref="T:Remotion.Linq.QueryModel"/>.
3103             </summary>
3104             <param name="queryModel">The query model to set the <see cref="P:Remotion.Linq.QueryModel.ResultTypeOverride"/> of.</param>
3105             <remarks>
3106             By default, the result type override is set to <see cref="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.NodeResultType"/> in the <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase.Apply(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> method. This ensures that the query
3107             model represents the type of the query correctly. Specific node parsers can override this method to set the 
3108             <see cref="P:Remotion.Linq.QueryModel.ResultTypeOverride"/> to another value, or to clear it (set it to <see langword="null"/>). Do not leave the
3109             <see cref="P:Remotion.Linq.QueryModel.ResultTypeOverride"/> unchanged when overriding this method, as a source node might have set it to a value that doesn't 
3110             fit this node.
3111             </remarks>
3112         </member>
3113         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.AggregateFromSeedExpressionNode">
3114             <summary>
3115             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the 
3116             <see cref="M:System.Linq.Queryable.Aggregate``2(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}})"/>, <see cref="M:System.Linq.Queryable.Aggregate``3(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,``2}})"/>,
3117             <see cref="M:System.Linq.Enumerable.Aggregate``2(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1})"/>, and <see cref="M:System.Linq.Enumerable.Aggregate``3(System.Collections.Generic.IEnumerable{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})"/>
3118             methods.
3119             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3120             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3121             </summary>
3122         </member>
3123         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.AllExpressionNode">
3124             <summary>
3125             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the 
3126             <see cref="M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/> and
3127             <see cref="M:System.Linq.Enumerable.All``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})"/> methods.
3128             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3129             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3130             </summary>
3131         </member>
3132         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.AnyExpressionNode">
3133             <summary>
3134             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the <see cref="M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0})"/>,
3135             <see cref="M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3136             <see cref="M:System.Linq.Enumerable.Any``1(System.Collections.Generic.IEnumerable{``0})"/>, and
3137             <see cref="M:System.Linq.Enumerable.Any``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})"/> methods.
3138             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3139             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3140             </summary>
3141         </member>
3142         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.AverageExpressionNode">
3143             <summary>
3144             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the different overloads of <see cref="M:System.Linq.Queryable.Average(System.Linq.IQueryable{System.Int32})"/>.
3145             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3146             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3147             </summary>
3148         </member>
3149         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.CastExpressionNode">
3150             <summary>
3151             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3152             <see cref="M:System.Linq.Queryable.Cast``1(System.Linq.IQueryable)"/>.
3153             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3154             </summary>
3155         </member>
3156         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext">
3157             <summary>
3158             Encapsulates contextual information used while generating clauses from <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> instances.
3159             </summary>
3160         </member>
3161         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ConcatExpressionNode">
3162             <summary>
3163             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3164             <see cref="M:System.Linq.Queryable.Concat``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0})"/>.
3165             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3166             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3167             represents a query.
3168             </summary>
3169         </member>
3170         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceSetOperationExpressionNodeBase">
3171             <summary>
3172             Acts as a base class for <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.UnionExpressionNode"/> and <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ConcatExpressionNode"/>, i.e., for node parsers for set operations
3173             acting as an <see cref="T:Remotion.Linq.Clauses.IQuerySource"/>.
3174             </summary>
3175         </member>
3176         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode">
3177             <summary>
3178             Interface for classes representing query source parts of an <see cref="T:System.Linq.Expressions.Expression"/> tree.
3179             </summary>
3180         </member>
3181         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ContainsExpressionNode">
3182             <summary>
3183             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0)"/> and
3184             <see cref="M:System.Linq.Enumerable.Contains``1(System.Collections.Generic.IEnumerable{``0},``0)"/>. 
3185             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3186             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3187             </summary>
3188         </member>
3189         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.CountExpressionNode">
3190             <summary>
3191             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0})"/>,
3192             <see cref="M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3193             for the Count properties of <see cref="T:System.Collections.Generic.List`1"/>, <see cref="T:System.Collections.ArrayList"/>, <see cref="T:System.Collections.Generic.ICollection`1"/>, 
3194             and <see cref="T:System.Collections.ICollection"/>, and for the <see cref="P:System.Array.Length"/> property of arrays.
3195             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3196             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3197             </summary>
3198         </member>
3199         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.DefaultIfEmptyExpressionNode">
3200             <summary>
3201             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0})"/> and
3202             <see cref="M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0},``0)"/> and 
3203             <see cref="M:System.Linq.Enumerable.DefaultIfEmpty``1(System.Collections.Generic.IEnumerable{``0})"/> and
3204             <see cref="M:System.Linq.Enumerable.DefaultIfEmpty``1(System.Collections.Generic.IEnumerable{``0},``0)"/>
3205             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3206             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3207             represents a query.
3208             </summary>
3209         </member>
3210         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.DistinctExpressionNode">
3211             <summary>
3212             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0})"/>.
3213             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3214             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3215             represents a query.
3216             </summary>
3217         </member>
3218         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ExceptExpressionNode">
3219             <summary>
3220             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3221             <see cref="M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0})"/>.
3222             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3223             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3224             represents a query.
3225             </summary>
3226         </member>
3227         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionNodeInstantiationException">
3228             <summary>
3229             Thrown whan an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> parser cannot be instantiated for a query. Note that this <see cref="T:System.Exception"/> is not serializable
3230             and intended to be caught in the call-site where it will then replaced by a different (serializable) exception.
3231             </summary>
3232         </member>
3233         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionResolver">
3234             <summary>
3235             Resolves an expression using <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Resolve(System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/>, removing transparent identifiers and detecting subqueries
3236             in the process. This is used by methods such as <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode.GetResolvedSelector(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/>, which are
3237             used when a clause is created from an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>.
3238             </summary>
3239         </member>
3240         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.FirstExpressionNode">
3241             <summary>
3242             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0})"/>,
3243             <see cref="M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3244             <see cref="M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0})"/> or
3245             <see cref="M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.
3246             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3247             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3248             </summary>
3249         </member>
3250         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode">
3251             <summary>
3252             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the different <see cref="M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/> 
3253             overloads that do not take a result selector. The overloads with a result selector are represented by 
3254             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByWithResultSelectorExpressionNode"/>.
3255             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3256             </summary>
3257         </member>
3258         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByWithResultSelectorExpressionNode">
3259             <summary>
3260             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the different <see cref="M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/> 
3261             overloads that do take a result selector. The overloads without a result selector are represented by 
3262             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode"/>.
3263             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3264             </summary>
3265             <remarks>
3266             The GroupBy overloads with result selector are parsed as if they were a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> following a 
3267             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupByExpressionNode"/>:
3268             <code>
3269             x.GroupBy (k =&gt; key, e =&gt; element, (k, g) =&gt; result)
3270             </code>
3271             is therefore equivalent to:
3272             <code>
3273             c.GroupBy (k =&gt; key, e =&gt; element).Select (grouping =&gt; resultSub)
3274             </code>
3275             where resultSub is the same as result with k and g substituted with grouping.Key and grouping, respectively.
3276             </remarks>
3277         </member>
3278         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.GroupJoinExpressionNode">
3279             <summary>
3280             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3281             <see cref="M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}})"/>
3282             or <see cref="M:System.Linq.Enumerable.GroupJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})"/>
3283             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3284             </summary>
3285         </member>
3286         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IntersectExpressionNode">
3287             <summary>
3288             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3289             <see cref="M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0})"/>.
3290             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3291             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3292             represents a query.
3293             </summary>
3294         </member>
3295         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.JoinExpressionNode">
3296             <summary>
3297             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3298             <see cref="M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}})"/>
3299             or <see cref="M:System.Linq.Enumerable.Join``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})"/>.
3300             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3301             </summary>
3302         </member>
3303         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.LastExpressionNode">
3304             <summary>
3305             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0})"/>,
3306             <see cref="M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3307             <see cref="M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0})"/> or
3308             <see cref="M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.
3309             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3310             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3311             </summary>
3312         </member>
3313         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.LongCountExpressionNode">
3314             <summary>
3315             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0})"/>,
3316             <see cref="M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3317             and for the <see cref="P:System.Array.Length"/> property of arrays.
3318             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3319             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3320             </summary>
3321         </member>
3322         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode">
3323             <summary>
3324             Represents the first expression in a LINQ query, which acts as the main query source.
3325             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode.ParsedExpression"/> tree is parsed.
3326             This node usually marks the end (i.e. the first node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3327             </summary>
3328         </member>
3329         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MaxExpressionNode">
3330             <summary>
3331             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0})"/> or <see cref="M:System.Linq.Queryable.Max``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3332             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3333             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3334             </summary>
3335         </member>
3336         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeFactory">
3337             <summary>
3338             Creates instances of classes implementing the <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> interface via Reflection.
3339             </summary>
3340             <remarks>
3341             The classes implementing <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> instantiated by this factory must implement a single constructor. The source and 
3342             constructor parameters handed to the <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeFactory.CreateExpressionNode(System.Type,Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo,System.Object[])"/> method are passed on to the constructor; for each argument where no 
3343             parameter is passed, <see langword="null"/> is passed to the constructor.
3344             </remarks>
3345         </member>
3346         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeFactory.CreateExpressionNode(System.Type,Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo,System.Object[])">
3347             <summary>
3348             Creates an instace of type <paramref name="nodeType"/>.
3349             </summary>
3350             <exception cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ExpressionNodeInstantiationException">
3351             Thrown if the <paramref name="parseInfo"/> or the <paramref name="additionalConstructorParameters"/> 
3352             do not match expected constructor parameters of the <paramref name="nodeType"/>.
3353             </exception>
3354         </member>
3355         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo">
3356             <summary>
3357             Contains metadata about a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> that is parsed into a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionNodeBase"/>.
3358             </summary>
3359         </member>
3360         <member name="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo.AssociatedIdentifier">
3361             <summary>
3362             Gets the associated identifier, i.e. the name the user gave the data streaming out of this expression. For example, the 
3363             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode"/> corresponding to a <c>from c in C</c> clause should get the identifier "c".
3364             If there is no user-defined identifier (or the identifier is impossible to infer from the expression tree), a generated identifier
3365             is given instead.
3366             </summary>
3367         </member>
3368         <member name="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo.Source">
3369             <summary>
3370             Gets the source expression node, i.e. the node streaming data into the parsed node.
3371             </summary>
3372             <value>The source.</value>
3373         </member>
3374         <member name="P:Remotion.Linq.Parsing.Structure.IntermediateModel.MethodCallExpressionParseInfo.ParsedExpression">
3375             <summary>
3376             Gets the <see cref="T:System.Linq.Expressions.MethodCallExpression"/> being parsed.
3377             </summary>
3378         </member>
3379         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MinExpressionNode">
3380             <summary>
3381             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0})"/> or <see cref="M:System.Linq.Queryable.Min``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3382             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3383             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3384             </summary>
3385         </member>
3386         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OfTypeExpressionNode">
3387             <summary>
3388             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3389             <see cref="M:System.Linq.Queryable.OfType``1(System.Linq.IQueryable)"/> and <see cref="M:System.Linq.Enumerable.OfType``1(System.Collections.IEnumerable)"/>.
3390             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3391             </summary>
3392         </member>
3393         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode">
3394             <summary>
3395             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3396             <see cref="M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3397             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3398             </summary>
3399         </member>
3400         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode">
3401             <summary>
3402             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3403             <see cref="M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3404             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3405             </summary>
3406         </member>
3407         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceExpressionNodeUtility">
3408             <summary>
3409             Provides common functionality used by implementors of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode"/>.
3410             </summary>
3411         </member>
3412         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceExpressionNodeUtility.ReplaceParameterWithReference(Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode,System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.Expression,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3413             <summary>
3414             Replaces the given parameter with a back-reference to the <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> corresponding to <paramref name="referencedNode"/>.
3415             </summary>
3416             <param name="referencedNode">The referenced node.</param>
3417             <param name="parameterToReplace">The parameter to replace with a <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>.</param>
3418             <param name="expression">The expression in which to replace the parameter.</param>
3419             <param name="context">The clause generation context.</param>
3420             <returns><paramref name="expression"/>, with <paramref name="parameterToReplace"/> replaced with a <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>
3421             pointing to the clause corresponding to <paramref name="referencedNode"/>.</returns>
3422         </member>
3423         <member name="M:Remotion.Linq.Parsing.Structure.IntermediateModel.QuerySourceExpressionNodeUtility.GetQuerySourceForNode(Remotion.Linq.Parsing.Structure.IntermediateModel.IQuerySourceExpressionNode,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3424             <summary>
3425             Gets the <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> corresponding to the given <paramref name="node"/>, throwing an <see cref="T:System.InvalidOperationException"/>
3426             if no such clause has been registered in the given <paramref name="context"/>.
3427             </summary>
3428             <param name="node">The node for which the <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> should be returned.</param>
3429             <param name="context">The clause generation context.</param>
3430             <returns>The <see cref="T:Remotion.Linq.Clauses.IQuerySource"/> corresponding to <paramref name="node"/>.</returns>
3431         </member>
3432         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ResolvedExpressionCache`1">
3433             <summary>
3434             Caches a resolved expression in the <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> classes.
3435             </summary>
3436         </member>
3437         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ReverseExpressionNode">
3438             <summary>
3439             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Reverse``1(System.Linq.IQueryable{``0})"/>.
3440             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3441             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3442             represents a query.
3443             </summary>
3444         </member>
3445         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode">
3446             <summary>
3447             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3448             <see cref="M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3449             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3450             </summary>
3451         </member>
3452         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectManyExpressionNode">
3453             <summary>
3454             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3455             <see cref="M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}})"/>.
3456             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3457             This node represents an additional query source introduced to the query.
3458             </summary>
3459         </member>
3460         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SingleExpressionNode">
3461             <summary>
3462             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0})"/>,
3463             <see cref="M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>,
3464             <see cref="M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0})"/> or 
3465             <see cref="M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.
3466             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3467             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3468             </summary>
3469         </member>
3470         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SkipExpressionNode">
3471             <summary>
3472             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Skip``1(System.Linq.IQueryable{``0},System.Int32)"/>
3473             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3474             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3475             represents a query.
3476             </summary>
3477         </member>
3478         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SumExpressionNode">
3479             <summary>
3480             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for the different overloads of <see cref="O:System.Linq.Queryable.Sum"/>.
3481             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3482             When this node is used, it marks the beginning (i.e. the last node) of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that represents a query.
3483             </summary>
3484         </member>
3485         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.TakeExpressionNode">
3486             <summary>
3487             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for <see cref="M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Int32)"/>.
3488             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3489             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3490             represents a query.
3491             </summary>
3492         </member>
3493         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode">
3494             <summary>
3495             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3496             <see cref="M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3497             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3498             When this node is used, it follows an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode"/>, an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode"/>, 
3499             a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode"/>, or a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode"/>.
3500             </summary>
3501         </member>
3502         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode">
3503             <summary>
3504             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3505             <see cref="M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})"/>.
3506             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3507             When this node is used, it follows an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByExpressionNode"/>, an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.OrderByDescendingExpressionNode"/>, 
3508             a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByExpressionNode"/>, or a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.ThenByDescendingExpressionNode"/>.
3509             </summary>
3510         </member>
3511         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.UnionExpressionNode">
3512             <summary>
3513             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3514             <see cref="M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0})"/>.
3515             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3516             When this node is used, it usually follows (or replaces) a <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.SelectExpressionNode"/> of an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain that 
3517             represents a query.
3518             </summary>
3519         </member>
3520         <member name="T:Remotion.Linq.Parsing.Structure.IntermediateModel.WhereExpressionNode">
3521             <summary>
3522             Represents a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> for 
3523             <see cref="M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})"/>.
3524             It is generated by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when an <see cref="T:System.Linq.Expressions.Expression"/> tree is parsed.
3525             </summary>
3526         </member>
3527         <member name="T:Remotion.Linq.Parsing.Structure.IQueryParser">
3528             <summary>
3529             <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/> is implemented by classes taking an <see cref="T:System.Linq.Expressions.Expression"/> tree and parsing it into a <see cref="T:Remotion.Linq.QueryModel"/>.
3530             </summary>
3531             <remarks>
3532             The default implementation of this interface is <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/>. LINQ providers can, however, implement <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/>
3533             themselves, eg. in order to decorate or replace the functionality of <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/>.
3534             </remarks>
3535         </member>
3536         <member name="M:Remotion.Linq.Parsing.Structure.IQueryParser.GetParsedQuery(System.Linq.Expressions.Expression)">
3537             <summary>
3538             Gets the <see cref="T:Remotion.Linq.QueryModel"/> of the given <paramref name="expressionTreeRoot"/>.
3539             </summary>
3540             <param name="expressionTreeRoot">The expression tree to parse.</param>
3541             <returns>A <see cref="T:Remotion.Linq.QueryModel"/> that represents the query defined in <paramref name="expressionTreeRoot"/>.</returns>
3542         </member>
3543         <member name="T:Remotion.Linq.Parsing.Structure.MethodCallExpressionParser">
3544             <summary>
3545             Parses a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> and creates an <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> from it. This is used by 
3546             <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> for parsing whole expression trees.
3547             </summary>
3548         </member>
3549         <member name="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider">
3550             <summary>
3551             Implements <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/> by storing a list of inner <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/> instances.
3552             The <see cref="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider.IsRegistered(System.Reflection.MethodInfo)"/> and <see cref="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.CompoundNodeTypeProvider.GetNodeType(System.Reflection.MethodInfo)"/> methods delegate to these inner instances. This is an
3553             implementation of the Composite Pattern.
3554             </summary>
3555         </member>
3556         <member name="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry">
3557             <summary>
3558             Maps the <see cref="T:System.Reflection.MethodInfo"/> objects used in <see cref="T:System.Linq.Expressions.MethodCallExpression"/> objects to the respective <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>
3559             types. This is used by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> is encountered to instantiate the
3560             right <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> for the given method.
3561             </summary>
3562         </member>
3563         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.CreateFromRelinqAssembly">
3564             <summary>
3565             Creates a <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> and registers all relevant <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> implementations in the <b>Remotion.Linq</b> assembly.
3566             </summary>
3567             <returns>
3568             A <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> with all <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> types in the <b>Remotion.Linq</b> assembly registered.
3569             </returns>
3570         </member>
3571         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.GetRegisterableMethodDefinition(System.Reflection.MethodInfo,System.Boolean)">
3572             <summary>
3573             Gets the registerable method definition from a given <see cref="T:System.Reflection.MethodInfo"/>. A registerable method is a <see cref="T:System.Reflection.MethodInfo"/> object
3574             that can be registered via a call to <see cref="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.Register(System.Collections.Generic.IEnumerable{System.Reflection.MethodInfo},System.Type)"/>. When the given <paramref name="method"/> is passed to 
3575             <see cref="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.GetNodeType(System.Reflection.MethodInfo)"/> and its corresponding registerable method was registered, the correct node type is returned.
3576             </summary>
3577             <param name="method">The method for which the registerable method should be retrieved. Must not be <see langword="null"/>.</param>
3578             <param name="throwOnAmbiguousMatch">
3579               <see langword="true"/> to throw a <see cref="T:System.NotSupportedException"/> if the method cannot be matched to a distinct generic method definition, 
3580               <see langword="false"/> to return <see langword="null"/> if an unambiguous match is not possible.
3581             </param>
3582             <returns>
3583             <para>
3584               <paramref name="method"/> itself, unless it is a closed generic method or declared in a closed generic type. In the latter cases,
3585               the corresponding generic method definition respectively the method declared in a generic type definition is returned.
3586             </para><para>
3587               If no generic method definition could be matched and <paramref name="throwOnAmbiguousMatch"/> was set to <see langword="false"/>, 
3588               <see langword="null"/> is returned.
3589             </para>
3590             </returns>
3591             <exception cref="T:System.NotSupportedException">
3592             Thrown if <paramref name="throwOnAmbiguousMatch"/> is set to <see langword="true"/> and no distinct generic method definition could be resolved.
3593             </exception>
3594         </member>
3595         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.Register(System.Collections.Generic.IEnumerable{System.Reflection.MethodInfo},System.Type)">
3596             <summary>
3597             Registers the specific <paramref name="methods"/> with the given <paramref name="nodeType"/>. The given methods must either be non-generic
3598             or open generic method definitions. If a method has already been registered before, the later registration overwrites the earlier one.
3599             </summary>
3600         </member>
3601         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.IsRegistered(System.Reflection.MethodInfo)">
3602             <summary>
3603             Determines whether the specified method was registered with this <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/>.
3604             </summary>
3605         </member>
3606         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.GetNodeType(System.Reflection.MethodInfo)">
3607             <summary>
3608             Gets the type of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> registered with this <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> instance that
3609             matches the given <paramref name="method"/>, returning <see langword="null"/> if none can be found.
3610             </summary>
3611         </member>
3612         <member name="P:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry.RegisteredMethodInfoCount">
3613             <summary>
3614             Returns the count of the registered <see cref="T:System.Reflection.MethodInfo"/>s.
3615             </summary>
3616         </member>
3617         <member name="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry">
3618             <summary>
3619             Maps the <see cref="T:System.Reflection.MethodInfo"/> objects used in <see cref="T:System.Linq.Expressions.MethodCallExpression"/> objects to the respective <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>
3620             types based on the method names and a filter (as defined by <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo"/>). 
3621             This is used by <see cref="T:Remotion.Linq.Parsing.Structure.ExpressionTreeParser"/> when a <see cref="T:System.Linq.Expressions.MethodCallExpression"/> is encountered to instantiate the right 
3622             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> for the given method.
3623             </summary>
3624         </member>
3625         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry.CreateFromRelinqAssembly">
3626             <summary>
3627             Creates a <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry"/> and registers all relevant <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> implementations in the <b>Remotion.Linq</b> assembly.
3628             </summary>
3629             <returns>
3630             A <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> with all <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> types in the <b>Remotion.Linq</b> assembly registered.
3631             </returns>
3632         </member>
3633         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry.Register(System.Collections.Generic.IEnumerable{Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo},System.Type)">
3634             <summary>
3635             Registers the given <paramref name="nodeType"/> for the query operator methods defined by the given <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo"/>
3636             objects.
3637             </summary>
3638             <param name="registrationInfo">A sequence of objects defining the methods to register the node type for.</param>
3639             <param name="nodeType">The type of the <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> to register.</param>
3640         </member>
3641         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry.IsRegistered(System.Reflection.MethodInfo)">
3642             <summary>
3643             Determines whether the specified method was registered with this <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/>.
3644             </summary>
3645         </member>
3646         <member name="M:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry.GetNodeType(System.Reflection.MethodInfo)">
3647             <summary>
3648             Gets the type of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> registered with this <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodInfoBasedNodeTypeRegistry"/> instance that
3649             matches the given <paramref name="method"/>, returning <see langword="null"/> if none can be found.
3650             </summary>
3651         </member>
3652         <member name="P:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry.RegisteredNamesCount">
3653             <summary>
3654             Returns the count of the registered method names.
3655             </summary>
3656         </member>
3657         <member name="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.NameBasedRegistrationInfo">
3658             <summary>
3659             Defines a name and a filter predicate used when determining the matching expression node type by <see cref="T:Remotion.Linq.Parsing.Structure.NodeTypeProviders.MethodNameBasedNodeTypeRegistry"/>.
3660             </summary>
3661         </member>
3662         <member name="T:Remotion.Linq.Parsing.Structure.QueryParser">
3663             <summary>
3664             Takes an <see cref="T:System.Linq.Expressions.Expression"/> tree and parses it into a <see cref="T:Remotion.Linq.QueryModel"/> by use of an <see cref="P:Remotion.Linq.Parsing.Structure.QueryParser.ExpressionTreeParser"/>.
3665             It first transforms the <see cref="T:System.Linq.Expressions.Expression"/> tree into a chain of <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> instances, and then calls 
3666             <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode.CreateMainFromClause(Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> and <see cref="M:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode.Apply(Remotion.Linq.QueryModel,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)"/> in order to instantiate all the 
3667             <see cref="T:Remotion.Linq.Clauses.IClause"/>s. With those, a <see cref="T:Remotion.Linq.QueryModel"/> is created and returned.
3668             </summary>
3669         </member>
3670         <member name="M:Remotion.Linq.Parsing.Structure.QueryParser.CreateDefault">
3671             <summary>
3672             Initializes a new instance of the <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/> class, using default parameters for parsing. 
3673             The <see cref="P:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.NodeTypeProvider"/> used has all relevant methods of the <see cref="T:System.Linq.Queryable"/> class 
3674             automatically registered, and the <see cref="P:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.Processor"/> comprises partial evaluation, and default 
3675             expression transformations. See <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultNodeTypeProvider"/>, 
3676             <see cref="M:Remotion.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultProcessor(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTranformationProvider,Remotion.Linq.Parsing.ExpressionVisitors.TreeEvaluation.IEvaluatableExpressionFilter)"/>, and <see cref="M:Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry.CreateDefault"/>
3677             for details.
3678             </summary>
3679         </member>
3680         <member name="M:Remotion.Linq.Parsing.Structure.QueryParser.#ctor(Remotion.Linq.Parsing.Structure.ExpressionTreeParser)">
3681             <summary>
3682             Initializes a new instance of the <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/> class, using the given <paramref name="expressionTreeParser"/> to
3683             convert <see cref="T:System.Linq.Expressions.Expression"/> instances into <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/>s. Use this constructor if you wish to customize the
3684             parser. To use a default parser (with the possibility to register custom node types), use the <see cref="M:Remotion.Linq.Parsing.Structure.QueryParser.CreateDefault"/> method.
3685             </summary>
3686             <param name="expressionTreeParser">The expression tree parser.</param>
3687         </member>
3688         <member name="M:Remotion.Linq.Parsing.Structure.QueryParser.GetParsedQuery(System.Linq.Expressions.Expression)">
3689             <summary>
3690             Gets the <see cref="T:Remotion.Linq.QueryModel"/> of the given <paramref name="expressionTreeRoot"/>.
3691             </summary>
3692             <param name="expressionTreeRoot">The expression tree to parse.</param>
3693             <returns>A <see cref="T:Remotion.Linq.QueryModel"/> that represents the query defined in <paramref name="expressionTreeRoot"/>.</returns>
3694         </member>
3695         <member name="M:Remotion.Linq.Parsing.Structure.QueryParser.ApplyAllNodes(Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode,Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext)">
3696             <summary>
3697             Applies all nodes to a <see cref="T:Remotion.Linq.QueryModel"/>, which is created by the trailing <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode"/> in the 
3698             <paramref name="node"/> chain.
3699             </summary>
3700             <param name="node">The entry point to the <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain.</param>
3701             <param name="clauseGenerationContext">The clause generation context collecting context information during the parsing process.</param>
3702             <returns>A <see cref="T:Remotion.Linq.QueryModel"/> created by the training <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.MainSourceExpressionNode"/> and transformed by each node in the
3703             <see cref="T:Remotion.Linq.Parsing.Structure.IntermediateModel.IExpressionNode"/> chain.</returns>
3704         </member>
3705         <member name="P:Remotion.Linq.Parsing.Structure.QueryParser.NodeTypeProvider">
3706             <summary>
3707             Gets the <see cref="T:Remotion.Linq.Parsing.Structure.INodeTypeProvider"/> used by <see cref="M:Remotion.Linq.Parsing.Structure.QueryParser.GetParsedQuery(System.Linq.Expressions.Expression)"/> to parse <see cref="T:System.Linq.Expressions.MethodCallExpression"/> instances.
3708             </summary>
3709             <value>The node type registry.</value>
3710         </member>
3711         <member name="P:Remotion.Linq.Parsing.Structure.QueryParser.Processor">
3712             <summary>
3713             Gets the <see cref="T:Remotion.Linq.Parsing.Structure.IExpressionTreeProcessor"/> used by <see cref="M:Remotion.Linq.Parsing.Structure.QueryParser.GetParsedQuery(System.Linq.Expressions.Expression)"/> to process the <see cref="T:System.Linq.Expressions.Expression"/> tree 
3714             before analyzing its structure.
3715             </summary>
3716             <value>The processor.</value>
3717         </member>
3718         <member name="T:Remotion.Linq.Parsing.ThrowingExpressionVisitor">
3719             <summary>
3720             Implements an <see cref="T:Remotion.Linq.Parsing.RelinqExpressionVisitor"/> that throws an exception for every expression type that is not explicitly supported.
3721             Inherit from this class to ensure that an exception is thrown when an expression is passed 
3722             </summary>
3723         </member>
3724         <member name="M:Remotion.Linq.Parsing.ThrowingExpressionVisitor.VisitUnhandledItem``2(``0,System.String,System.Func{``0,``1})">
3725             <summary>
3726             Called when an unhandled item is visited. This method provides the item the visitor cannot handle (<paramref name="unhandledItem"/>), 
3727             the <paramref name="visitMethod"/> that is not implemented in the visitor, and a delegate that can be used to invoke the 
3728             <paramref name="baseBehavior"/> of the <see cref="T:Remotion.Linq.Parsing.RelinqExpressionVisitor"/> class. The default behavior of this method is to call the
3729             <see cref="M:Remotion.Linq.Parsing.ThrowingExpressionVisitor.CreateUnhandledItemException``1(``0,System.String)"/> method, but it can be overridden to do something else.
3730             </summary>
3731             <typeparam name="TItem">The type of the item that could not be handled. Either an <see cref="T:System.Linq.Expressions.Expression"/> type, a <see cref="T:System.Linq.Expressions.MemberBinding"/> 
3732             type, or <see cref="T:System.Linq.Expressions.ElementInit"/>.</typeparam>
3733             <typeparam name="TResult">The result type expected for the visited <paramref name="unhandledItem"/>.</typeparam>
3734             <param name="unhandledItem">The unhandled item.</param>
3735             <param name="visitMethod">The visit method that is not implemented.</param>
3736             <param name="baseBehavior">The behavior exposed by <see cref="T:Remotion.Linq.Parsing.RelinqExpressionVisitor"/> for this item type.</param>
3737             <returns>An object to replace <paramref name="unhandledItem"/> in the expression tree. Alternatively, the method can throw any exception.</returns>
3738         </member>
3739         <member name="T:Remotion.Linq.Parsing.TupleExpressionBuilder">
3740             <summary>
3741             <see cref="T:Remotion.Linq.Parsing.TupleExpressionBuilder"/> can be used to build tuples incorporating a sequence of <see cref="T:System.Linq.Expressions.Expression"/>s. 
3742             For example, given three expressions, exp1, exp2, and exp3, it will build nested <see cref="T:System.Linq.Expressions.NewExpression"/>s that are equivalent to the 
3743             following: new KeyValuePair(exp1, new KeyValuePair(exp2, exp3)).
3744             Given an <see cref="T:System.Linq.Expressions.Expression"/> whose type matches that of a tuple built by <see cref="T:Remotion.Linq.Parsing.TupleExpressionBuilder"/>, the builder can also return 
3745             an enumeration of accessor expressions that can be used to access the tuple elements in the same order as they were put into the nested tuple 
3746             expression. In above example, this would yield tupleExpression.Key, tupleExpression.Value.Key, and tupleExpression.Value.Value.
3747             This class can be handy whenever a set of <see cref="T:System.Linq.Expressions.Expression"/> needs to be put into a single <see cref="T:System.Linq.Expressions.Expression"/> 
3748             (eg., a select projection), especially if each sub-expression needs to be explicitly accessed at a later point of time (eg., to retrieve the 
3749             items from a statement surrounding a sub-statement yielding the tuple in its select projection).
3750             </summary>
3751         </member>
3752         <member name="T:Remotion.Linq.QueryableBase`1">
3753             <summary>
3754             Acts as a common base class for <see cref="T:System.Linq.IQueryable`1"/> implementations based on re-linq. In a specific LINQ provider, a custom queryable
3755             class should be derived from <see cref="T:Remotion.Linq.QueryableBase`1"/> which supplies an implementation of <see cref="T:Remotion.Linq.IQueryExecutor"/> that is used to 
3756             execute the query. This is then used as an entry point (the main data source) of a LINQ query.
3757             </summary>
3758             <typeparam name="T">The type of the result items yielded by this query.</typeparam>
3759         </member>
3760         <member name="M:Remotion.Linq.QueryableBase`1.#ctor(Remotion.Linq.Parsing.Structure.IQueryParser,Remotion.Linq.IQueryExecutor)">
3761             <summary>
3762             Initializes a new instance of the <see cref="T:Remotion.Linq.QueryableBase`1"/> class with a <see cref="T:Remotion.Linq.DefaultQueryProvider"/> and the given
3763             <paramref name="executor"/>. This constructor should be used by subclasses to begin a new query. The <see cref="P:Remotion.Linq.QueryableBase`1.Expression"/> generated by
3764             this constructor is a <see cref="T:System.Linq.Expressions.ConstantExpression"/> pointing back to this <see cref="T:Remotion.Linq.QueryableBase`1"/>.
3765             </summary>
3766             <param name="queryParser">The <see cref="T:Remotion.Linq.Parsing.Structure.IQueryParser"/> used to parse queries. Specify an instance of 
3767               <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/> for default behavior. See also <see cref="M:Remotion.Linq.Parsing.Structure.QueryParser.CreateDefault"/>.</param>
3768             <param name="executor">The <see cref="T:Remotion.Linq.IQueryExecutor"/> used to execute the query represented by this <see cref="T:Remotion.Linq.QueryableBase`1"/>.</param>
3769         </member>
3770         <member name="M:Remotion.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider)">
3771             <summary>
3772             Initializes a new instance of the <see cref="T:Remotion.Linq.QueryableBase`1"/> class with a specific <see cref="T:System.Linq.IQueryProvider"/>. This constructor
3773             should only be used to begin a query when <see cref="T:Remotion.Linq.DefaultQueryProvider"/> does not fit the requirements.
3774             </summary>
3775             <param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Linq.QueryableBase`1"/> and to construct
3776             queries around this <see cref="T:Remotion.Linq.QueryableBase`1"/>.</param>
3777         </member>
3778         <member name="M:Remotion.Linq.QueryableBase`1.#ctor(System.Linq.IQueryProvider,System.Linq.Expressions.Expression)">
3779             <summary>
3780             Initializes a new instance of the <see cref="T:Remotion.Linq.QueryableBase`1"/> class with a given <paramref name="provider"/> and 
3781             <paramref name="expression"/>. This is an infrastructure constructor that must be exposed on subclasses because it is used by 
3782             <see cref="T:Remotion.Linq.DefaultQueryProvider"/> to construct queries around this <see cref="T:Remotion.Linq.QueryableBase`1"/> when a query method (e.g. of the
3783             <see cref="T:System.Linq.Queryable"/> class) is called.
3784             </summary>
3785             <param name="provider">The provider used to execute the query represented by this <see cref="T:Remotion.Linq.QueryableBase`1"/> and to construct
3786             queries around this <see cref="T:Remotion.Linq.QueryableBase`1"/>.</param>
3787             <param name="expression">The expression representing the query.</param>
3788         </member>
3789         <member name="M:Remotion.Linq.QueryableBase`1.GetEnumerator">
3790             <summary>
3791             Executes the query via the <see cref="P:Remotion.Linq.QueryableBase`1.Provider"/> and returns an enumerator that iterates through the items returned by the query.
3792             </summary>
3793             <returns>
3794             A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the query result.
3795             </returns>
3796         </member>
3797         <member name="P:Remotion.Linq.QueryableBase`1.Expression">
3798             <summary>
3799             Gets the expression tree that is associated with the instance of <see cref="T:System.Linq.IQueryable"/>. This expression describes the
3800             query represented by this <see cref="T:Remotion.Linq.QueryableBase`1"/>.
3801             </summary>
3802             <value></value>
3803             <returns>
3804             The <see cref="T:System.Linq.Expressions.Expression"/> that is associated with this instance of <see cref="T:System.Linq.IQueryable"/>.
3805             </returns>
3806         </member>
3807         <member name="P:Remotion.Linq.QueryableBase`1.Provider">
3808             <summary>
3809             Gets the query provider that is associated with this data source. The provider is used to execute the query. By default, a 
3810             <see cref="T:Remotion.Linq.DefaultQueryProvider"/> is used that parses the query and passes it on to an implementation of <see cref="T:Remotion.Linq.IQueryExecutor"/>.
3811             </summary>
3812             <value></value>
3813             <returns>
3814             The <see cref="T:System.Linq.IQueryProvider"/> that is associated with this data source.
3815             </returns>
3816         </member>
3817         <member name="P:Remotion.Linq.QueryableBase`1.ElementType">
3818             <summary>
3819             Gets the type of the element(s) that are returned when the expression tree associated with this instance of <see cref="T:System.Linq.IQueryable"/> is executed.
3820             </summary>
3821             <value></value>
3822             <returns>
3823             A <see cref="T:System.Type"/> that represents the type of the element(s) that are returned when the expression tree associated with this object is executed.
3824             </returns>
3825         </member>
3826         <member name="T:Remotion.Linq.QueryModel">
3827             <summary>
3828             Provides an abstraction of an expression tree created for a LINQ query. <see cref="T:Remotion.Linq.QueryModel"/> instances are passed to LINQ providers based
3829             on re-linq via <see cref="T:Remotion.Linq.IQueryExecutor"/>, but you can also use <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/> to parse an expression tree by hand or construct
3830             a <see cref="T:Remotion.Linq.QueryModel"/> manually via its constructor.
3831             </summary>
3832             <remarks>
3833             The different parts of the query are mapped to clauses, see <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>, <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/>, and 
3834             <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>. The simplest way to process all the clauses belonging to a <see cref="T:Remotion.Linq.QueryModel"/> is by implementing
3835             <see cref="T:Remotion.Linq.IQueryModelVisitor"/> (or deriving from <see cref="T:Remotion.Linq.QueryModelVisitorBase"/>) and calling <see cref="M:Remotion.Linq.QueryModel.Accept(Remotion.Linq.IQueryModelVisitor)"/>.
3836             </remarks>
3837         </member>
3838         <member name="M:Remotion.Linq.QueryModel.#ctor(Remotion.Linq.Clauses.MainFromClause,Remotion.Linq.Clauses.SelectClause)">
3839             <summary>
3840             Initializes a new instance of <see cref="T:Remotion.Linq.QueryModel"/>
3841             </summary>
3842             <param name="mainFromClause">The <see cref="T:Remotion.Linq.Clauses.MainFromClause"/> of the query. This is the starting point of the query, generating items 
3843             that are filtered and projected by the query.</param>
3844             <param name="selectClause">The <see cref="P:Remotion.Linq.QueryModel.SelectClause"/> of the query. This is the end point of
3845             the query, it defines what is actually returned for each of the items coming from the <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/> and passing the 
3846             <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/>. After it, only the <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/> modify the result of the query.</param>
3847         </member>
3848         <member name="M:Remotion.Linq.QueryModel.GetOutputDataInfo">
3849             <summary>
3850             Gets an <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> object describing the data streaming out of this <see cref="T:Remotion.Linq.QueryModel"/>. If a query ends with
3851             the <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>, this corresponds to <see cref="M:Remotion.Linq.Clauses.SelectClause.GetOutputDataInfo"/>. If a query has 
3852             <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>, the data is further modified by those operators.
3853             </summary>
3854             <returns>Gets a <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> object describing the data streaming out of this <see cref="T:Remotion.Linq.QueryModel"/>.</returns>
3855             <remarks>
3856             The data streamed from a <see cref="T:Remotion.Linq.QueryModel"/> is often of type <see cref="T:System.Linq.IQueryable`1"/> instantiated
3857             with a specific item type, unless the
3858             query ends with a <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/>. For example, if the query ends with a <see cref="T:Remotion.Linq.Clauses.ResultOperators.CountResultOperator"/>, the
3859             result type will be <see cref="T:System.Int32"/>.
3860             </remarks>
3861             <exception cref="T:System.InvalidOperationException">
3862             The <see cref="P:Remotion.Linq.QueryModel.ResultTypeOverride"/> is not compatible with the calculated <see cref="T:Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo"/> calculated from the <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>.
3863             </exception>
3864         </member>
3865         <member name="M:Remotion.Linq.QueryModel.GetUniqueIdentfierGenerator">
3866             <summary>
3867             Gets the <see cref="T:Remotion.Linq.UniqueIdentifierGenerator"/> which is used by the <see cref="T:Remotion.Linq.QueryModel"/>.
3868             </summary>
3869             <returns></returns>
3870         </member>
3871         <member name="M:Remotion.Linq.QueryModel.Accept(Remotion.Linq.IQueryModelVisitor)">
3872             <summary>
3873             Accepts an implementation of <see cref="T:Remotion.Linq.IQueryModelVisitor"/> or <see cref="T:Remotion.Linq.QueryModelVisitorBase"/>, as defined by the Visitor pattern.
3874             </summary>
3875         </member>
3876         <member name="M:Remotion.Linq.QueryModel.ToString">
3877             <summary>
3878             Returns a <see cref="T:System.String"/> representation of this <see cref="T:Remotion.Linq.QueryModel"/>.
3879             </summary>
3880         </member>
3881         <member name="M:Remotion.Linq.QueryModel.Clone">
3882             <summary>
3883             Clones this <see cref="T:Remotion.Linq.QueryModel"/>, returning a new <see cref="T:Remotion.Linq.QueryModel"/> equivalent to this instance, but with its clauses being
3884             clones of this instance's clauses. Any <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> in the cloned clauses that points back to another clause 
3885             in this <see cref="T:Remotion.Linq.QueryModel"/> (including its subqueries) is adjusted to point to the respective clones in the cloned 
3886             <see cref="T:Remotion.Linq.QueryModel"/>. Any subquery nested in the <see cref="T:Remotion.Linq.QueryModel"/> is also cloned.
3887             </summary>
3888         </member>
3889         <member name="M:Remotion.Linq.QueryModel.Clone(Remotion.Linq.Clauses.QuerySourceMapping)">
3890             <summary>
3891             Clones this <see cref="T:Remotion.Linq.QueryModel"/>, returning a new <see cref="T:Remotion.Linq.QueryModel"/> equivalent to this instance, but with its clauses being
3892             clones of this instance's clauses. Any <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> in the cloned clauses that points back to another clause 
3893             in  this <see cref="T:Remotion.Linq.QueryModel"/> (including its subqueries) is adjusted to point to the respective clones in the cloned 
3894             <see cref="T:Remotion.Linq.QueryModel"/>. Any subquery nested in the <see cref="T:Remotion.Linq.QueryModel"/> is also cloned.
3895             </summary>
3896             <param name="querySourceMapping">The <see cref="T:Remotion.Linq.Clauses.QuerySourceMapping"/> defining how to adjust instances of 
3897             <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/> in the cloned <see cref="T:Remotion.Linq.QueryModel"/>. If there is a <see cref="T:Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression"/>
3898             that points out of the <see cref="T:Remotion.Linq.QueryModel"/> being cloned, specify its replacement via this parameter. At the end of the cloning process,
3899             this object maps all the clauses in this original <see cref="T:Remotion.Linq.QueryModel"/> to the clones created in the process.
3900             </param>
3901         </member>
3902         <member name="M:Remotion.Linq.QueryModel.TransformExpressions(System.Func{System.Linq.Expressions.Expression,System.Linq.Expressions.Expression})">
3903             <summary>
3904             Transforms all the expressions in this <see cref="T:Remotion.Linq.QueryModel"/>'s clauses via the given <paramref name="transformation"/> delegate.
3905             </summary>
3906             <param name="transformation">The transformation object. This delegate is called for each <see cref="T:System.Linq.Expressions.Expression"/> within this 
3907             <see cref="T:Remotion.Linq.QueryModel"/>, and those expressions will be replaced with what the delegate returns.</param>
3908         </member>
3909         <member name="M:Remotion.Linq.QueryModel.GetNewName(System.String)">
3910             <summary>
3911             Returns a new name with the given prefix. The name is different from that of any <see cref="T:Remotion.Linq.Clauses.FromClauseBase"/> added
3912             in the <see cref="T:Remotion.Linq.QueryModel"/>. Note that clause names that are changed after the clause is added as well as names of other clauses
3913             than from clauses are not considered when determining "unique" names. Use names only for readability and debugging, not
3914             for uniquely identifying clauses.
3915             </summary>
3916         </member>
3917         <member name="M:Remotion.Linq.QueryModel.Execute(Remotion.Linq.IQueryExecutor)">
3918             <summary>
3919             Executes this <see cref="T:Remotion.Linq.QueryModel"/> via the given <see cref="T:Remotion.Linq.IQueryExecutor"/>. By default, this indirectly calls 
3920             <see cref="M:Remotion.Linq.IQueryExecutor.ExecuteCollection``1(Remotion.Linq.QueryModel)"/>, but this can be modified by the <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>.
3921             </summary>
3922             <param name="executor">The <see cref="T:Remotion.Linq.IQueryExecutor"/> to use for executing this query.</param>
3923         </member>
3924         <member name="M:Remotion.Linq.QueryModel.IsIdentityQuery">
3925             <summary>
3926             Determines whether this <see cref="T:Remotion.Linq.QueryModel"/> represents an identity query. An identity query is a query without any body clauses
3927             whose <see cref="P:Remotion.Linq.QueryModel.SelectClause"/> selects exactly the items produced by its <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>. An identity query can have
3928             <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>.
3929             </summary>
3930             <returns>
3931                 <see langword="true"/> if this <see cref="T:Remotion.Linq.QueryModel"/> represents an identity query; otherwise, <see langword="false"/>.
3932             </returns>
3933             <example>
3934             An example for an identity query is the subquery in that is produced for the <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/> in the following 
3935             query:
3936             <code>
3937             from order in ...
3938             select order.OrderItems.Count()
3939             </code>
3940             In this query, the <see cref="P:Remotion.Linq.Clauses.SelectClause.Selector"/> will become a <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/> because 
3941             <see cref="M:System.Linq.Enumerable.Count``1(System.Collections.Generic.IEnumerable{``0})"/> is treated as a query operator. The 
3942             <see cref="T:Remotion.Linq.QueryModel"/> in that <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/> has no <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> and a trivial <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>,
3943             so its <see cref="M:Remotion.Linq.QueryModel.IsIdentityQuery"/> method returns <see langword="true"/>. The outer <see cref="T:Remotion.Linq.QueryModel"/>, on the other hand, does not
3944             have a trivial <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>, so its <see cref="M:Remotion.Linq.QueryModel.IsIdentityQuery"/> method returns <see langword="false"/>.
3945             </example>
3946         </member>
3947         <member name="M:Remotion.Linq.QueryModel.ConvertToSubQuery(System.String)">
3948             <summary>
3949             Creates a new <see cref="T:Remotion.Linq.QueryModel"/> that has this <see cref="T:Remotion.Linq.QueryModel"/> as a sub-query in its <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>.
3950             </summary>
3951             <param name="itemName">The name of the new <see cref="T:Remotion.Linq.QueryModel"/>'s <see cref="P:Remotion.Linq.Clauses.FromClauseBase.ItemName"/>.</param>
3952             <returns>A new <see cref="T:Remotion.Linq.QueryModel"/> whose <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>'s <see cref="P:Remotion.Linq.Clauses.FromClauseBase.FromExpression"/> is a 
3953             <see cref="T:Remotion.Linq.Clauses.Expressions.SubQueryExpression"/> that holds this <see cref="T:Remotion.Linq.QueryModel"/> instance.</returns>
3954         </member>
3955         <member name="P:Remotion.Linq.QueryModel.MainFromClause">
3956             <summary>
3957             Gets or sets the query's <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>. This is the starting point of the query, generating items that are processed by 
3958             the <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> and projected or grouped by the <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>.
3959             </summary>
3960         </member>
3961         <member name="P:Remotion.Linq.QueryModel.SelectClause">
3962             <summary>
3963             Gets or sets the query's select clause. This is the end point of the query, it defines what is actually returned for each of the 
3964             items coming from the <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/> and passing the <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/>. After it, only the <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/>
3965             modify the result of the query.
3966             </summary>
3967         </member>
3968         <member name="P:Remotion.Linq.QueryModel.BodyClauses">
3969             <summary>
3970             Gets a collection representing the query's body clauses. Body clauses take the items generated by the <see cref="P:Remotion.Linq.QueryModel.MainFromClause"/>,
3971             filtering (<see cref="T:Remotion.Linq.Clauses.WhereClause"/>), ordering (<see cref="T:Remotion.Linq.Clauses.OrderByClause"/>), augmenting (<see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/>), or otherwise
3972             processing them before they are passed to the <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>.
3973             </summary>
3974         </member>
3975         <member name="P:Remotion.Linq.QueryModel.ResultOperators">
3976             <summary>
3977             Gets the result operators attached to this <see cref="P:Remotion.Linq.QueryModel.SelectClause"/>. Result operators modify the query's result set, aggregating,
3978             filtering, or otherwise processing the result before it is returned.
3979             </summary>
3980         </member>
3981         <member name="T:Remotion.Linq.QueryModelBuilder">
3982             <summary>
3983             Collects clauses and creates a <see cref="T:Remotion.Linq.QueryModel"/> from them. This provides a simple way to first add all the clauses and then
3984             create the <see cref="T:Remotion.Linq.QueryModel"/> rather than the two-step approach (first <see cref="P:Remotion.Linq.QueryModelBuilder.SelectClause"/> and <see cref="P:Remotion.Linq.QueryModelBuilder.MainFromClause"/>,
3985             then the <see cref="T:Remotion.Linq.Clauses.IBodyClause"/>s) required by <see cref="T:Remotion.Linq.QueryModel"/>'s constructor.
3986             </summary>
3987         </member>
3988         <member name="T:Remotion.Linq.QueryModelVisitorBase">
3989             <summary>
3990             Provides a default implementation of <see cref="T:Remotion.Linq.IQueryModelVisitor"/> which automatically visits child items. That is, the default 
3991             implementation of <see cref="M:Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(Remotion.Linq.QueryModel)"/> automatically calls <c>Accept</c> on all clauses in the <see cref="T:Remotion.Linq.QueryModel"/>
3992             and the default implementation of <see cref="M:Remotion.Linq.QueryModelVisitorBase.VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause,Remotion.Linq.QueryModel,System.Int32)"/> automatically calls <see cref="M:Remotion.Linq.Clauses.Ordering.Accept(Remotion.Linq.IQueryModelVisitor,Remotion.Linq.QueryModel,Remotion.Linq.Clauses.OrderByClause,System.Int32)"/> on the 
3993             <see cref="T:Remotion.Linq.Clauses.Ordering"/> instances in its <see cref="P:Remotion.Linq.Clauses.OrderByClause.Orderings"/> collection, and so on.
3994             </summary>
3995             <remarks>
3996             This visitor is hardened against modifications performed on the visited <see cref="T:Remotion.Linq.QueryModel"/> while the model is currently being visited.
3997             That is, if a the <see cref="P:Remotion.Linq.QueryModel.BodyClauses"/> collection changes while a body clause (or a child item of a body clause) is currently 
3998             being processed, the visitor will handle that gracefully. The same applies to <see cref="P:Remotion.Linq.QueryModel.ResultOperators"/> and
3999             <see cref="P:Remotion.Linq.Clauses.OrderByClause.Orderings"/>.
4000             </remarks>
4001         </member>
4002         <member name="T:Remotion.Linq.Transformations.SubQueryFromClauseFlattener">
4003             <summary>
4004             Takes a <see cref="T:Remotion.Linq.QueryModel"/> and transforms it by replacing its <see cref="T:Remotion.Linq.Clauses.FromClauseBase"/> instances (<see cref="T:Remotion.Linq.Clauses.MainFromClause"/> and
4005             <see cref="T:Remotion.Linq.Clauses.AdditionalFromClause"/>) that contain subqueries with equivalent flattened clauses. Subqueries that contain a 
4006             <see cref="T:Remotion.Linq.Clauses.ResultOperatorBase"/> (such as <see cref="T:Remotion.Linq.Clauses.ResultOperators.DistinctResultOperator"/> or <see cref="T:Remotion.Linq.Clauses.ResultOperators.TakeResultOperator"/>) cannot be
4007             flattened.
4008             </summary>
4009             <example>
4010             As an example, take the following query:
4011             <code>
4012             from c in Customers
4013             from o in (from oi in OrderInfos where oi.Customer == c orderby oi.OrderDate select oi.Order)
4014             orderby o.Product.Name
4015             select new { c, o }
4016             </code>
4017             This will be transformed into:
4018             <code>
4019             from c in Customers
4020             from oi in OrderInfos
4021             where oi.Customer == c
4022             orderby oi.OrderDate
4023             orderby oi.Order.Product.Name
4024             select new { c, oi.Order }
4025             </code>
4026             As another example, take the following query:
4027             <code>
4028             from c in (from o in Orders select o.Customer)
4029             where c.Name.StartsWith ("Miller")
4030             select c
4031             </code>
4032             (This query is never produced by the <see cref="T:Remotion.Linq.Parsing.Structure.QueryParser"/>, the only way to construct it is via manually building a 
4033             <see cref="T:Remotion.Linq.Clauses.MainFromClause"/>.)
4034             This will be transforemd into:
4035             <code>
4036             from o in Orders
4037             where o.Customer.Name.StartsWith ("Miller")
4038             select o
4039             </code>
4040             </example>
4041         </member>
4042         <member name="T:Remotion.Linq.UniqueIdentifierGenerator">
4043             <summary>
4044             Generates unique identifiers based on a set of known identifiers.
4045             An identifier is generated by appending a number to a given prefix. The identifier is considered unique when no known identifier
4046             exists which equals the prefix/number combination.
4047             </summary>
4048         </member>
4049         <member name="M:Remotion.Linq.UniqueIdentifierGenerator.AddKnownIdentifier(System.String)">
4050             <summary>
4051             Adds the given <paramref name="identifier"/> to the set of known identifiers.
4052             </summary>
4053             <param name="identifier">The identifier to add.</param>
4054         </member>
4055         <member name="M:Remotion.Linq.UniqueIdentifierGenerator.GetUniqueIdentifier(System.String)">
4056             <summary>
4057             Gets a unique identifier starting with the given <paramref name="prefix"/>. The identifier is generating by appending a number to the
4058             prefix so that the resulting string does not match a known identifier.
4059             </summary>
4060             <param name="prefix">The prefix to use for the identifier.</param>
4061             <returns>A unique identifier starting with <paramref name="prefix"/>.</returns>
4062         </member>
4063         <member name="T:Remotion.Linq.Utilities.ExpressionExtensions">
4064             <summary>
4065             Provides extensions for working with <see cref="T:System.Linq.Expressions.Expression"/> trees.
4066             </summary>
4067         </member>
4068         <member name="M:Remotion.Linq.Utilities.ExpressionExtensions.BuildString(System.Linq.Expressions.Expression)">
4069             <summary>
4070             Builds a string from the <paramref name="expression"/> tree, including .NET 3.5.
4071             </summary>
4072         </member>
4073         <member name="T:Remotion.Linq.Utilities.ItemTypeReflectionUtility">
4074             <summary>
4075             Provider a utility API for dealing with the item type of generic collections.
4076             </summary>
4077         </member>
4078         <member name="M:Remotion.Linq.Utilities.ItemTypeReflectionUtility.TryGetItemTypeOfClosedGenericIEnumerable(System.Type,System.Type@)">
4079             <summary>
4080             Tries to extract the item type from the input <see cref="T:System.Type"/>.
4081             </summary>
4082             <param name="possibleEnumerableType">
4083             The <see cref="T:System.Type"/> that might be an implementation of the <see cref="T:System.Collections.Generic.IEnumerable`1"/> interface. Must not be <see langword="null"/>.
4084             </param>
4085             <param name="itemType">An output parameter containing the extracted item <see cref="T:System.Type"/> or <see langword="null"/>.</param>
4086             <returns><see langword="true"/> if an <paramref name="itemType"/> could be extracted, otherwise <see langword="false"/>.</returns>
4087         </member>
4088     </members>
4089 </doc>