EntityFramework
    
    
        
            
            Serializes an  that conforms to the restrictions of a single
            CSDL schema file to an XML writer. The model to be serialized must contain a single
             .
            
        
        
            
            Serialize the  to the XmlWriter.
            
            
            The EdmModel to serialize.
            
             The XmlWriter to serialize to 
        
        
            
            Occurs when an error is encountered serializing the model.
            
        
        
            
            Information about an error that occurred processing an Entity Framework model.
            
        
        
            
            Gets an optional value indicating which property of the source item caused the event to be raised.
            
        
        
            
            Gets an optional descriptive message the describes the error that is being raised.
            
        
        
            
            Gets a value indicating the  that caused the event to be raised.
            
        
        
            
            Contains additional attributes and properties of the 
            
            
            Note that  objects are short lived and exist only to
            make  initialization easier. Instance of this type are not
            compared to each other and arrays returned by array properties are copied to internal
            collections in the  ctor. Therefore it is fine to suppress the
            Code Analysis messages.
            
        
        
            Gets or sets the function schema.
            The function schema.
        
        
            Gets or sets the store function name.
            The store function name.
        
        
            Gets or sets the command text associated with the function.
            The command text associated with the function.
        
        
            Gets or sets the entity sets for the function.
            The entity sets for the function.
        
        
            Gets a value that indicates whether this is an aggregate function.
            true if this is an aggregate function; otherwise, false.
        
        
            Gets or sets whether this function is a built-in function.
            true if this function is a built-in function; otherwise, false.
        
        
            Gets or sets whether the function contains no arguments.
            true if the function contains no arguments; otherwise, false.
        
        
            Gets or sets whether this function can be composed.
            true if this function can be composed; otherwise, false.
        
        
            Gets or sets whether this function is from a provider manifest.
            true if this function is from a provider manifest; otherwise, false.
        
        
            Gets or sets whether this function is a cached store function.
            true if this function is a cached store function; otherwise, false.
        
        
            Gets or sets whether this function is a function import.
            true if this function is a function import; otherwise, false.
        
        
            Gets or sets the return parameters.
            The return parameters.
        
        
            Gets or sets the parameter type semantics.
            The parameter type semantics.
        
        
            Gets or sets the function parameters.
            The function parameters.
        
        
            
            author/email
            
        
        
            
            author/name
            
        
        
            
            author/uri
            
        
        
            
            published
            
        
        
            
            rights
            
        
        
            
            summary
            
        
        
            
            title
            
        
        
            
            contributor/email
            
        
        
            
            contributor/name
            
        
        
            
            contributor/uri
            
        
        
            
            category/@label
            
        
        
            
            Plaintext
            
        
        
            
            HTML
            
        
        
            
            XHTML
            
        
        
            
            updated
            
        
        
            
            link/@href
            
        
        
            
            link/@rel
            
        
        
            
            link/@type
            
        
        
            
            link/@hreflang
            
        
        
            
            link/@title
            
        
        
            
            link/@length
            
        
        
            
            category/@term
            
        
        
            
            category/@scheme
            
        
        
            
            Serialize the  to the XmlWriter
            
             The DbModel to serialize 
             The XmlWriter to serialize to 
        
        
            
            Serializes the storage (database) section of an  to XML.
            
        
        
            
            Serialize the  to the 
            
             The EdmModel to serialize 
             Provider information on the Schema element 
             ProviderManifestToken information on the Schema element 
             The XmlWriter to serialize to 
             true if model can be serialized, otherwise false 
        
        
            
            Serialize the  to the 
            
             The EdmModel to serialize 
             Namespace name on the Schema element 
             Provider information on the Schema element 
             ProviderManifestToken information on the Schema element 
             The XmlWriter to serialize to 
             true if model can be serialized, otherwise false 
        
        
            
            Occurs when an error is encountered serializing the model.
            
        
        
            
            A class derived from this class can be placed in the same assembly as a class derived from
             to define Entity Framework configuration for an application.
            Configuration is set by calling protected methods and setting protected properties of this
            class in the constructor of your derived type.
            The type to use can also be registered in the config file of the application.
            See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
            
        
        
            
            Any class derived from  must have a public parameterless constructor
            and that constructor should call this constructor.
            
        
        
            
            The Singleton instance of  for this app domain. This can be
            set at application start before any Entity Framework features have been used and afterwards
            should be treated as read-only.
            
        
        
            
            Attempts to discover and load the  associated with the given
             type. This method is intended to be used by tooling to ensure that
            the correct configuration is loaded into the app domain. Tooling should use this method
            before accessing the  property.
            
            A  type to use for configuration discovery.
        
        
            
            Attempts to discover and load the  from the given assembly.
            This method is intended to be used by tooling to ensure that the correct configuration is loaded into
            the app domain. Tooling should use this method before accessing the 
            property. If the tooling knows the  type being used, then the
             method should be used since it gives a greater chance that
            the correct configuration will be found.
            
            An  to use for configuration discovery.
        
        
            
            Call this method from the constructor of a class derived from  to
            add a  instance to the Chain of Responsibility of resolvers that
            are used to resolve dependencies needed by the Entity Framework.
            
            
            Resolvers are asked to resolve dependencies in reverse order from which they are added. This means
            that a resolver can be added to override resolution of a dependency that would already have been
            resolved in a different way.
            The exceptions to this is that any dependency registered in the application's config file
            will always be used in preference to using a dependency resolver added here.
            
             The resolver to add. 
        
        
            
            Call this method from the constructor of a class derived from  to
            add a  instance to the Chain of Responsibility of resolvers that
            are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver
            method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only
            be used to resolve a dependency that could not be resolved by any of the other resolvers.
            
            
            A  implementation is automatically registered as a default resolver
            when it is added with a call to . This allows EF providers to act as
            resolvers for other services that may need to be overridden by the provider.
            
             The resolver to add. 
        
        
            
            Call this method from the constructor of a class derived from  to register
            an Entity Framework provider.
            
            
            Note that the provider is both registered as a service itself and also registered as a default resolver with
            a call to AddDefaultResolver.  This allows EF providers to act as resolvers for other services that
            may need to be overridden by the provider.
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
             and also using AddDefaultResolver to add the provider as a default
            resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a
            resolver backed by an Inversion-of-Control container.
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. 
             The provider instance. 
        
        
            
            Call this method from the constructor of a class derived from  to register
            an ADO.NET provider.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for
             and . This means that, if desired,
            the same functionality can be achieved using a custom resolver or a resolver backed by an
            Inversion-of-Control container.
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used. 
             The provider instance. 
        
        
            
            Call this method from the constructor of a class derived from  to register an
             for use with the provider represented by the given invariant name.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. 
             A function that returns a new instance of an execution strategy. 
        
        
            
            Call this method from the constructor of a class derived from  to register an
             for use with the provider represented by the given invariant name and for a given server name.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. 
             A function that returns a new instance of an execution strategy. 
             A string that will be matched against the server name in the connection string. 
        
        
            
            Sets the  that is used to create connections by convention if no other
            connection string or connection is given to or can be discovered by .
            Note that a default connection factory is set in the app.config or web.config file whenever the
            EntityFramework NuGet package is installed. As for all config file settings, the default connection factory
            set in the config file will take precedence over any setting made with this method. Therefore the setting
            must be removed from the config file before calling this method will have any effect.
            Call this method from the constructor of a class derived from  to change
            the default connection factory being used.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The connection factory. 
        
        
            
            Call this method from the constructor of a class derived from  to
            set the pluralization service.
            
             The pluralization service to use. 
        
        
            
            Call this method from the constructor of a class derived from  to
            set the database initializer to use for the given context type.  The database initializer is called when a
            the given  type is used to access a database for the first time.
            The default strategy for Code First contexts is an instance of .
            
            
            Calling this method is equivalent to calling .
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The type of the context. 
             The initializer to use, or null to disable initialization for the given context type. 
        
        
            
            Call this method from the constructor of a class derived from  to register a
             for use with the provider represented by the given invariant name.
            
            
            This method is typically used by providers to register an associated SQL generator for Code First Migrations.
            It is different from setting the generator in the  because it allows
            EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project
            and/or Migrations are not being explicitly used.
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The invariant name of the ADO.NET provider for which this generator should be used. 
             A delegate that returns a new instance of the SQL generator each time it is called. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            an implementation of  which allows provider manifest tokens to
            be obtained from connections without necessarily opening the connection.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The manifest token resolver. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            an implementation of  which allows a 
            to be obtained from a  in cases where the default implementation is not
            sufficient.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The provider factory service. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            a  as the model cache key factory which allows the key
            used to cache the model behind a  to be changed.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can
            be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The key factory. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            a  delegate which which be used for 
            creation of the default   for a any
            . This default factory will only be used if no factory is
            set explicitly in the  and if no factory has been registered
            for the provider in use using the
            
            method.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality
            can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             
            A factory for creating  instances for a given  and
             representing the default schema.
            
        
        
            
            Call this method from the constructor of a class derived from  to set
            a  delegate which allows for creation of a customized
             for the given provider for any  
            that does not have an explicit factory set.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality
            can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The invariant name of the ADO.NET provider for which this generator should be used. 
             
            A factory for creating  instances for a given  and
             representing the default schema.
            
        
        
            
            Call this method from the constructor of a class derived from  to set
            the global instance of  which will be used whenever a spatial provider is
            required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider
            is obtained from the a  implementation which is in turn returned by resolving
            a service for  passing the provider invariant name as a key. However, this
            cannot work for stand-alone instances of  and  since
            it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances
            of  and  the global spatial provider is always used.
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The spatial provider. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            an implementation of  to use for a specific provider and provider
            manifest token.
            
            
            Use 
            to register spatial services for use only when a specific manifest token is returned by the provider.
            Use  to register global
            spatial services to be used when provider information is not available or no provider-specific
            spatial services are found.
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
            
            The  indicating the type of ADO.NET connection for which this spatial provider will be used.
            
             The spatial provider. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            an implementation of  to use for a specific provider with any
            manifest token.
            
            
            Use  
            to register spatial services for use when any manifest token is returned by the provider.
            Use  to register global
            spatial services to be used when provider information is not available or no provider-specific
            spatial services are found.
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used. 
             The spatial provider. 
        
        
            
            Call this method from the constructor of a class derived from  to set
            a factory for the type of  to use with .
            
            
            Note that setting the type of formatter to use with this method does change the way command are
            logged when  is used. It is still necessary to set a 
            instance onto  before any commands will be logged.
            For more low-level control over logging/interception see  and
            .
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
            A delegate that will create formatter instances.
        
        
            
            Call this method from the constructor of a class derived from  to
            register an  at application startup. Note that interceptors can also
            be added and removed at any time using .
            
            
            This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
            Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
            . This means that, if desired, the same functionality can be achieved using
            a custom resolver or a resolver backed by an Inversion-of-Control container.
            
            The interceptor to register.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Creates a shallow copy of the current .
            
            A shallow copy of the current .
        
        
            
            Occurs during EF initialization after the DbConfiguration has been constructed but just before
            it is locked ready for use. Use this event to inspect and/or override services that have been
            registered before the configuration is locked. Note that this event should be used carefully
            since it may prevent tooling from discovering the same configuration that is used at runtime.
            
            
            Handlers can only be added before EF starts to use the configuration and so handlers should
            generally be added as part of application initialization. Do not access the DbConfiguration
            static methods inside the handler; instead use the the members of 
            to get current services and/or add overrides.
            
        
        
            
            Gets the  that is being used to resolve service
            dependencies in the Entity Framework.
            
        
        
            
            This attribute can be placed on a subclass of  to indicate that the subclass of
             representing the code-based configuration for the application is in a different
            assembly than the context type.
            
            
            Normally a subclass of  should be placed in the same assembly as
            the subclass of  used by the application. It will then be discovered automatically.
            However, if this is not possible or if the application contains multiple context types in different
            assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type.
            An alternative to using this attribute is to specify the DbConfiguration type to use in the application's
            config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information.
            
        
        
            
            Indicates that the given subclass of  should be used for code-based configuration
            for this application.
            
            
            The  type to use.
            
        
        
            
            Indicates that the subclass of  represented by the given assembly-qualified
            name should be used for code-based configuration for this application.
            
            
            The  type to use.
            
        
        
            
            Gets the subclass of  that should be used for code-based configuration
            for this application.
            
        
        
            Implements the basic functionality required by aggregates in a GroupBy clause. 
        
        
            
            Gets the result type of this .
            
            
            The result type of this .
            
        
        
            
            Gets the list of expressions that define the arguments to this
            
            .
            
            
            The list of expressions that define the arguments to this
            
            .
            
        
        
            Represents the logical AND of two Boolean arguments. This class cannot be inherited. 
        
        
            Implements the basic functionality required by expressions that accept two expression operands.
        
        
            Represents the base type for all expressions.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            The type of the result produced by .
            
            
            An instance of .
            
            The type of the result produced by visitor.
        
        
            
            Determines whether the specified  is equal to the current DbExpression instance.
            
            
            True if the specified  is equal to the current DbExpression instance; otherwise, false.
            
            
            The object to compare to the current .
            
        
        
            Serves as a hash function for the type.
            A hash code for the current expression.
        
        
            
            Creates a  that represents the specified binary value, which may be null
            
            
            A  that represents the specified binary value.
            
            The binary value on which the returned expression should be based.
        
        
            
            Enables implicit casting from a byte array.
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) Boolean value.
            
            
            A  that represents the specified Boolean value.
            
            The Boolean value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) byte value.
            
            
            A  that represents the specified byte value.
            
            The byte value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable)
            
            value.
            
            
            A  that represents the specified DateTime value.
            
            The DateTime value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The expression to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable)
            
            value.
            
            
            A  that represents the specified DateTimeOffset value.
            
            The DateTimeOffset value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) decimal value.
            
            
            A  that represents the specified decimal value.
            
            The decimal value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) double value.
            
            
            A  that represents the specified double value.
            
            The double value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified
            
            value, which may be null.
            
            
            A  that represents the specified DbGeography value.
            
            The DbGeography value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified
            
            value, which may be null.
            
            
            A  that represents the specified DbGeometry value.
            
            The DbGeometry value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable)
            
            value.
            
            
            A  that represents the specified Guid value.
            
            The Guid value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) Int16 value.
            
            
            A  that represents the specified Int16 value.
            
            The Int16 value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) Int32 value.
            
            
            A  that represents the specified Int32 value.
            
            The Int32 value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) Int64 value.
            
            
            A  that represents the specified Int64 value.
            
            The Int64 value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified (nullable) Single value.
            
            
            A  that represents the specified Single value.
            
            The Single value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            
            Creates a  that represents the specified string value.
            
            
            A  that represents the specified string value.
            
            The string value on which the returned expression should be based.
        
        
            
            Enables implicit casting from .
            
            The value to be converted.
            The converted value.
        
        
            Gets the type metadata for the result type of the expression.
            The type metadata for the result type of the expression.
        
        
            Gets the kind of the expression, which indicates the operation of this expression.
            The kind of the expression, which indicates the operation of this expression.
        
        
            
            Gets the  that defines the left argument.
            
            
            The  that defines the left argument.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            ,or its result type is not equal or promotable to the required type for the left argument.
            
        
        
            
            Gets the  that defines the right argument.
            
            
            The  that defines the right argument.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            ,or its result type is not equal or promotable to the required type for the right argument.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by the  visitor .
             visitor  is null.
        
        
            Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by the  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the function that is invoked for each element in the input set.
            
            
            The  that specifies the function that is invoked for each element in the input set.
            
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            
            Represents an arithmetic operation applied to numeric arguments.
            Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations.
            This class cannot be inherited.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the list of  elements that define the current arguments.
            
            
            A fixed-size list of  elements.
            
        
        
            
            Represents the When, Then, and Else clauses of the
            
            . This class cannot be inherited.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            
            Gets the When clauses of this .
            
            
            The When clauses of this .
            
        
        
            
            Gets the Then clauses of this .
            
            
            The Then clauses of this .
            
        
        
            
            Gets the Else clause of this .
            
            
            The Else clause of this .
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            ,or its result type is not equal or promotable to the result type of the
            
            .
            
        
        
            Represents the type conversion of a single argument to the specified type. This class cannot be inherited. 
        
        
            Implements the basic functionality required by expressions that accept a single expression argument. 
        
        
            
            Gets the  that defines the argument.
            
            
            The  that defines the argument.
            
            The expression is null.
            
            The expression is not associated with the command tree of a
            
            , or its result type is not equal or promotable to the required type for the argument.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            
            Describes the different "kinds" (classes) of command trees.
            
        
        
            
            A query to retrieve data
            
        
        
            
            Update existing data
            
        
        
            
            Insert new data
            
        
        
            
            Deleted existing data
            
        
        
            
            Call a function
            
        
        
            Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited.  
            
            DbComparisonExpression requires that its arguments have a common result type
            that is equality comparable (for .Equals and .NotEquals),
            order comparable (for .GreaterThan and .LessThan),
            or both (for .GreaterThanOrEquals and .LessThanOrEquals).
             
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            Represents different kinds of constants (literals). This class cannot be inherited.
        
        
            
            Provides direct access to the constant value, even for byte[] constants.
            
             The object value contained by this constant expression, not a copy. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            Gets the constant value.
            The constant value.
        
        
            Represents an unconditional join operation between the given collection arguments. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            
            Gets a  list that provides the input sets to the join.
            
            
            A  list that provides the input sets to the join.
            
        
        
            Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            Removes duplicate elements from the specified set argument. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            Represents the conversion of the specified set argument to a singleton. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            
            Is the result type of the element equal to the result type of the single property
            of the element of its operand?
            
        
        
            Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            Represents the set subtraction operation between the left and right operands. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor. 
             visitor  is null.
        
        
            
            Describes a binding for an expression. Conceptually similar to a foreach loop
            in C#. The DbExpression property defines the collection being iterated over,
            while the Var property provides a means to reference the current element
            of the collection during the iteration. DbExpressionBinding is used to describe the set arguments
            to relational expressions such as , 
            and .
            
            
            
        
        
            
            Gets the  that defines the input set.
            
            
            The  that defines the input set.
            
            The expression is null.
            The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property.
        
        
            Gets the name assigned to the element variable.
            The name assigned to the element variable.
        
        
            Gets the type metadata of the element variable.
            The type metadata of the element variable. 
        
        
            
            Gets the  that references the element variable.
            
            The variable reference.
        
        
            Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            
            Gets the  that specifies the predicate used to filter the input set.
            
            
            The  that specifies the predicate used to filter the input set.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not a Boolean type.
            
        
        
            Represents an invocation of a function. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the metadata for the function to invoke.
            The metadata for the function to invoke.
        
        
            
            Gets an  list that provides the arguments to the function.
            
            
            An  list that provides the arguments to the function.
            
        
        
            Represents a collection of elements that compose a group.  
        
        
            Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the input set and provides access to the set element and group element variables.
            
            
            The  that specifies the input set and provides access to the set element and group element variables.
            
        
        
            
            Gets a  list that provides grouping keys.
            
            
            A  list that provides grouping keys.
            
        
        
            
            Gets a  list that provides the aggregates to apply.
            
            
            A  list that provides the aggregates to apply.
            
        
        
            Represents the set intersection operation between the left and right operands. This class cannot be inherited. 
            
            DbIntersectExpression requires that its arguments have a common collection result type
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents an empty set determination applied to a single set argument. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents null determination applied to a single argument. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents the type comparison of a single argument against the specified type. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the type metadata that the type metadata of the argument should be compared to.
            The type metadata that the type metadata of the argument should be compared to.
        
        
            Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that provides the left input.
            
            
            The  that provides the left input.
            
        
        
            
            Gets the  that provides the right input.
            
            
            The  that provides the right input.
            
        
        
            Gets the join condition to apply.
            The join condition to apply.
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not a Boolean type.
            
        
        
            
            Allows the application of a lambda function to arguments represented by
            
            objects.
            
        
        
            The visitor pattern method for expression visitors that do not produce a result value.
            
            An instance of .
            
             visitor  is null
        
        
            The visitor pattern method for expression visitors that produce a result value of a specific type.
            The type of the result produced by the expression visitor.
            
            An instance of a typed  that produces a result value of type TResultType.
            
            The type of the result produced by  visitor 
             visitor  is null
        
        
            
            Gets the  representing the Lambda function applied by this expression.
            
            
            The  representing the Lambda function applied by this expression.
            
        
        
            
            Gets a  list that provides the arguments to which the Lambda function should be applied.
            
            
            The  list.
            
        
        
            Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets an expression that specifies the string to compare against the given pattern.
            An expression that specifies the string to compare against the given pattern.
            The expression is null.
            
            The expression is not associated with the command tree of
            
            , or its result type is not a string type.
            
        
        
            Gets an expression that specifies the pattern against which the given string should be compared.
            An expression that specifies the pattern against which the given string should be compared.
            The expression is null.
            
            The expression is not associated with the command tree of
            
            , or its result type is not a string type.
            
        
        
            Gets an expression that provides an optional escape string to use for the comparison.
            An expression that provides an optional escape string to use for the comparison.
            The expression is null.
            
            The expression is not associated with the command tree of
            
            , or its result type is not a string type.
            
        
        
            Represents the restriction of the number of elements in the argument collection to the specified limit value.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets an expression that specifies the input collection.
            An expression that specifies the input collection.
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not a collection type.
            
        
        
            Gets an expression that specifies the limit on the number of elements returned from the input collection.
            An expression that specifies the limit on the number of elements returned from the input collection.
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or is not one of
            
            or
            
            , or its result type is not equal or promotable to a 64-bit integer type.
            
        
        
            
            Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the
            
            value.
            
            true if the limit operation will include tied results; otherwise, false. The default is false.
        
        
            Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets an  list that provides the property/column values or set elements for the new instance.
            
            
            An  list that provides the property/column values or set elements for the new instance.
            
        
        
            
            Gets the related entity references (if any) for an entity constructor.
            May be null if no related entities were specified - use the  property to determine this.
            
        
        
            Represents the logical NOT of a single Boolean argument. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents a reference to a typed null literal. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the metadata of the type of elements that should be retrieved from the set argument.
            The metadata of the type of elements that should be retrieved from the set argument. 
        
        
            Represents the logical OR of two Boolean arguments. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the name of the referenced parameter.
            The name of the referenced parameter.
        
        
            Represents the projection of a given input set over the specified expression. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            
            Gets the  that defines the projection.
            
            
            The  that defines the projection.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not equal or promotable to the reference type of the current projection.
            
        
        
            Provides methods and properties for retrieving an instance property. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Creates a new key/value pair based on this property expression.
            
            A new key/value pair with the key and value derived from the
            
            .
            
        
        
            
            Enables implicit casting to .
            
            The expression to be converted.
            The converted value.
        
        
            Gets the property metadata for the property to retrieve.
            The property metadata for the property to retrieve.
        
        
            
            Gets a  that defines the instance from which the property should be retrieved.
            
            
            A  that defines the instance from which the property should be retrieved.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not equal or promotable to the type that defines the property.
            
        
        
            Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            Gets the Boolean predicate that should be evaluated for each element in the input set.
            The Boolean predicate that should be evaluated for each element in the input set.
            The expression is null.
            
            The expression is not associated with the command tree for the
            
            ,or its result type is not a Boolean type.
            
        
        
            Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the metadata for the entity set that contains the instance.
            The metadata for the entity set that contains the instance.
        
        
            
            Encapsulates the result (represented as a Ref to the resulting Entity) of navigating from
            the specified source end of a relationship to the specified target end. This class is intended
            for use only with , where an 'owning' instance of that class
            represents the source Entity involved in the relationship navigation.
            Instances of DbRelatedEntityRef may be specified when creating a  that
            constructs an Entity, allowing information about Entities that are related to the newly constructed Entity to be captured.
            
        
        
            
            Retrieves the 'source' end of the relationship navigation satisfied by this related entity Ref
            
        
        
            
            Retrieves the 'target' end of the relationship navigation satisfied by this related entity Ref
            
        
        
            
            Retrieves the entity Ref that is the result of navigating from the source to the target end of this related entity Ref
            
        
        
            Represents the navigation of a relationship. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value. 
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the metadata for the relationship over which navigation occurs.
            The metadata for the relationship over which navigation occurs.
        
        
            Gets the metadata for the relationship end to navigate from.
            The metadata for the relationship end to navigate from.
        
        
            Gets the metadata for the relationship end to navigate to.
            The metadata for the relationship end to navigate to.
        
        
            
            Gets an  that specifies the starting point of the navigation and must be a reference to an entity instance.
            
            
            An  that specifies the instance of the source relationship end from which navigation should occur.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not equal or promotable to the reference type of the
            
            property.
            
        
        
            
            Skips a specified number of elements in the input set.
            
            can only be used after the input collection has been sorted as specified by the sort keys.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            
            Gets a  list that defines the sort order.
            
            
            A  list that defines the sort order.
            
        
        
            Gets an expression that specifies the number of elements to skip from the input collection.
            An expression that specifies the number of elements to skip from the input collection.
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            ; the expression is not either a
            
            or a
            
            ; or the result type of the expression is not equal or promotable to a 64-bit integer type.
            
        
        
            
            Specifies a sort key that can be used as part of the sort order in a
            
            . This class cannot be inherited.
            
        
        
            Gets a Boolean value indicating whether or not this sort key uses an ascending sort order.
            true if this sort key uses an ascending sort order; otherwise, false.
        
        
            Gets a string value that specifies the collation for this sort key.
            A string value that specifies the collation for this sort key.
        
        
            
            Gets the  that provides the value for this sort key.
            
            
            The  that provides the value for this sort key.
            
        
        
            Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited.
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by 
            visitor
            
            
            visitor  
            is null.
        
        
            
            Gets the  that specifies the input set.
            
            
            The  that specifies the input set.
            
        
        
            
            Gets a  list that defines the sort order.
            
            
            A  list that defines the sort order.
            
        
        
            Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited.  
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited.
        
        
            Gets a value indicating whether this aggregate is a distinct aggregate.
            true if the aggregate is a distinct aggregate; otherwise, false. 
        
        
            Gets the method metadata that specifies the aggregate function to invoke.
            The method metadata that specifies the aggregate function to invoke.
        
        
            
            An abstract base type for types that implement the IExpressionVisitor interface to derive from.
            
        
        
            
            An abstract base type for types that implement the IExpressionVisitor interface to derive from.
            
        
        
            Defines the basic functionality that should be implemented by visitors that do not return a result value.
        
        
            When overridden in a derived class, handles any expression of an unrecognized type.
            The expression to be handled.
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            
            The  that is visited.
            
        
        
            
            Visitor pattern method for DbInExpression.
            
             The DbInExpression that is being visited. 
        
        
            
            Convenience method to visit the specified .
            
             The DbUnaryExpression to visit. 
            
            
            is null
            
        
        
            
            Convenience method to visit the specified .
            
             The DbBinaryExpression to visit. 
            
            
            is null
            
        
        
            
            Convenience method to visit the specified .
            
             The DbExpressionBinding to visit. 
            
            
            is null
            
        
        
            
            Convenience method for post-processing after a DbExpressionBinding has been visited.
            
             The previously visited DbExpressionBinding. 
        
        
            
            Convenience method to visit the specified .
            
             The DbGroupExpressionBinding to visit. 
            
            
            is null
            
        
        
            
            Convenience method indicating that the grouping keys of a  have been visited and the aggregates are now about to be visited.
            
             The DbGroupExpressionBinding of the DbGroupByExpression 
        
        
            
            Convenience method for post-processing after a DbGroupExpressionBinding has been visited.
            
             The previously visited DbGroupExpressionBinding. 
        
        
            
            Convenience method indicating that the body of a Lambda  is now about to be visited.
            
             The DbLambda that is about to be visited 
            
            
            is null
            
        
        
            
            Convenience method for post-processing after a DbLambda has been visited.
            
             The previously visited DbLambda. 
        
        
            
            Convenience method to visit the specified , if non-null.
            
             The expression to visit. 
            
            
            is null
            
        
        
            
            Convenience method to visit each  in the given list, if the list is non-null.
            
             The list of expressions to visit. 
            
            
            is null
            
        
        
            
            Convenience method to visit each  in the list, if the list is non-null.
            
             The list of aggregates to visit. 
            
            
            is null
            
        
        
            
            Convenience method to visit the specified .
            
             The aggregate to visit. 
            
            
            is null
            
        
        
            
            Called when an  of an otherwise unrecognized type is encountered.
            
             The expression 
            
            
            is null
            
            
            Always thrown if this method is called, since it indicates that
            
            is of an unsupported type
            
        
        
            
            Visitor pattern method for .
            
             The DbConstantExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbNullExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbVariableReferenceExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbParameterReferenceExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbFunctionExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbLambdaExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbPropertyExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbComparisonExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbLikeExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbLimitExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbIsNullExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbArithmeticExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbAndExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbOrExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbInExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbNotExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbDistinctExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbElementExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbIsEmptyExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbUnionAllExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbIntersectExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbExceptExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbOfTypeExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbTreatExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbCastExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbIsOfExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbCaseExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbNewInstanceExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbRefExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbRelationshipNavigationExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DeRefExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbRefKeyExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbEntityRefExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbScanExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbFilterExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbProjectExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbCrossJoinExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbJoinExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbApplyExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbSkipExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbSortExpression that is being visited. 
            
            
            is null
            
        
        
            
            Visitor pattern method for .
            
             The DbQuantifierExpression that is being visited. 
            
            
            is null
            
        
        
            Implements the visitor pattern for the set clause.
            The set clause.
        
        
            Implements the visitor pattern for the modification clause.
            The modification clause.
        
        
            Implements the visitor pattern for the collection of modification clauses.
            The modification clauses.
        
        
            Implements the visitor pattern for the command tree.
            The command tree.
        
        
            Implements the visitor pattern for the delete command tree.
            The delete command tree.
        
        
            Implements the visitor pattern for the function command tree.
            The function command tree.
        
        
            Implements the visitor pattern for the insert command tree.
            The insert command tree.
        
        
            Implements the visitor pattern for the query command tree.
            The query command tree.
        
        
            Implements the visitor pattern for the update command tree.
            The update command tree.
        
        
            An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types. 
        
        
            
            Initializes a new command tree with a given metadata workspace.
            
             The metadata workspace against which the command tree should operate. 
             The logical 'space' that metadata in the expressions used in this command tree must belong to. 
        
        
            
            Gets the name and type of each parameter declared on the command tree.
            
        
        
            
            Returns a  that represents this command.
            
            
            A  that represents this command.
            
        
        
            
            Gets the name and corresponding type of each parameter that can be referenced within this
            
            .
            
            
            The name and corresponding type of each parameter that can be referenced within this
            
            .
            
        
        
            
            Gets the kind of this command tree.
            
        
        
            
            Gets the metadata workspace used by this command tree.
            
        
        
            
            Gets the data space in which metadata used by this command tree must reside.
            
        
        
            Represents a single row delete operation expressed as a command tree. This class cannot be inherited.  
        
        
            Represents a data manipulation language (DML) operation expressed as a command tree.
        
        
            
            Gets the  that specifies the target table for the data manipulation language (DML) operation.
            
            
            The  that specifies the target table for the DML operation.
            
        
        
            
            Returns true if this modification command returns a reader (for instance, to return server generated values)
            
        
        
            
            Initializes a new instance of the  class.
            
            The model this command will operate on.
            The data space.
            The target table for the data manipulation language (DML) operation.
            A predicate used to determine which members of the target collection should be deleted.
        
        
            
            Gets an  that specifies the predicate used to determine which members of the target collection should be deleted.
            
            
            The predicate can include only the following elements:
            
                - Equality expression
- Constant expression
- IsNull expression
- Property expression
- Reference expression to the target
- And expression
- Or expression
- Not expression
An  that specifies the predicate used to determine which members of the target collection should be deleted.
            
        
        
            Gets the kind of this command tree.
            The kind of this command tree.
        
        
            
            Contains values that each expression class uses to denote the operation it represents. The
            
            property of an
            
            can be retrieved to determine which operation that expression represents.
            
        
        
            
            True for all.
            
        
        
            
            Logical And.
            
        
        
            
            True for any.
            
        
        
            
            Conditional case statement.
            
        
        
            
            Polymorphic type cast.
            
        
        
            
            A constant value.
            
        
        
            
            Cross apply
            
        
        
            
            Cross join
            
        
        
            
            Dereference.
            
        
        
            
            Duplicate removal.
            
        
        
            
            Division.
            
        
        
            
            Set to singleton conversion.
            
        
        
            
            Entity ref value retrieval.
            
        
        
            
            Equality
            
        
        
            
            Set subtraction
            
        
        
            
            Restriction.
            
        
        
            
            Full outer join
            
        
        
            
            Invocation of a stand-alone function
            
        
        
            
            Greater than.
            
        
        
            
            Greater than or equal.
            
        
        
            
            Grouping.
            
        
        
            
            Inner join
            
        
        
            
            Set intersection.
            
        
        
            
            Empty set determination.
            
        
        
            
            Null determination.
            
        
        
            
            Type comparison (specified Type or Subtype).
            
        
        
            
            Type comparison (specified Type only).
            
        
        
            
            Left outer join
            
        
        
            
            Less than.
            
        
        
            
            Less than or equal.
            
        
        
            
            String comparison.
            
        
        
            
            Result count restriction (TOP n).
            
        
        
            
            Subtraction.
            
        
        
            
            Modulo.
            
        
        
            
            Multiplication.
            
        
        
            
            Instance, row, and set construction.
            
        
        
            
            Logical Not.
            
        
        
            
            Inequality.
            
        
        
            
            Null.
            
        
        
            
            Set members by type (or subtype).
            
        
        
            
            Set members by (exact) type.
            
        
        
            
            Logical Or.
            
        
        
            
            Outer apply.
            
        
        
            
            A reference to a parameter.
            
        
        
            
            Addition.
            
        
        
            
            Projection.
            
        
        
            
            Retrieval of a static or instance property.
            
        
        
            
            Reference.
            
        
        
            
            Ref key value retrieval.
            
        
        
            
            Navigation of a (composition or association) relationship.
            
        
        
            
            Entity or relationship set scan.
            
        
        
            
            Skip elements of an ordered collection.
            
        
        
            
            Sorting.
            
        
        
            
            Type conversion.
            
        
        
            
            Negation.
            
        
        
            
            Set union (with duplicates).
            
        
        
            
            A reference to a variable.
            
        
        
            
            Application of a lambda function
            
        
        
            
            In.
            
        
        
            
            The last value in the DbExpressionKind enumeration.
            
        
        
            Defines the basic functionality that should be implemented by visitors that return a result value of a specific type. 
            The type of the result produced by the visitor.
        
        
            When overridden in a derived class, handles any expression of an unrecognized type.
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern method for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            When overridden in a derived class, implements the visitor pattern for
            
            .
            
            A result value of a specific type.
            
            The  that is being visited.
            
        
        
            
            Typed visitor pattern method for DbInExpression.
            
             The DbInExpression that is being visited. 
             An instance of TResultType. 
        
        
            Represents the invocation of a database function. 
        
        
            
            Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata
            
             The metadata workspace that the command tree should use. 
             The logical 'space' that metadata in the expressions used in this command tree must belong to. 
             
             
             
            
            ,  or  is null
            
            
             does not represent a valid data space or 
            is a composable function
            
        
        
            
            Gets the  that represents the function that is being invoked.
            
            
            The  that represents the function that is being invoked.
            
        
        
            Gets the expected result type for the function’s first result set.
            The expected result type for the function’s first result set.
        
        
            Gets or sets the command tree kind.
            The command tree kind.
        
        
            Represents a single row insert operation expressed as a command tree. This class cannot be inherited.
            
            Represents a single row insert operation expressed as a canonical command tree.
            When the  property is set, the command returns a reader; otherwise,
            it returns a scalar value indicating the number of rows affected.
            
        
        
            
            Initializes a new instance of the  class.
            
            The model this command will operate on.
            The data space.
            The target table for the data manipulation language (DML) operation.
            The list of insert set clauses that define the insert operation. .
            A  that specifies a projection of results to be returned, based on the modified rows.
        
        
            Gets the list of insert set clauses that define the insert operation. 
            The list of insert set clauses that define the insert operation. 
        
        
            
            Gets an  that specifies a projection of results to be returned based on the modified rows.
            
            
            An  that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command.
            
        
        
            Gets the command tree kind.
            The command tree kind.
        
        
            
            Represents a Lambda function that can be invoked to produce a
            
            .
            
        
        
            
            Creates a  with the specified inline Lambda function implementation and formal parameters.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters
            An expression that defines the logic of the Lambda function
            
            A  collection that represents the formal parameters to the Lambda function.    These variables are valid for use in the body expression.
            
            
            
            is null or contains null, or
            
            is null
            
            
            
            contains more than one element with the same variable name.
            
        
        
            
            Creates a  with the specified inline Lambda function implementation and formal parameters.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters
            An expression that defines the logic of the Lambda function
            
            A  collection that represents the formal parameters to the Lambda function.    These variables are valid for use in the body expression.
            
            
            
            is null or contains null, or
            
            is null.
            
            
            
            contains more than one element with the same variable name.
            
        
        
            
            Creates a new  with a single argument of the specified type, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter.
            
            A  that defines the EDM type of the argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A  that defines the EDM type of the twelfth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A  that defines the EDM type of the twelfth argument to the Lambda function
            
            
            A  that defines the EDM type of the thirteenth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
                    
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A  that defines the EDM type of the twelfth argument to the Lambda function
            
            
            A  that defines the EDM type of the thirteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the fourteenth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A  that defines the EDM type of the twelfth argument to the Lambda function
            
            
            A  that defines the EDM type of the thirteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the fourteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifteenth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            or
            
            is null or produces a result of null.
            
        
        
            
            Creates a new  with arguments of the specified types, as defined by the specified function.
            
            A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
            
            A  that defines the EDM type of the first argument to the Lambda function
            
            
            A  that defines the EDM type of the second argument to the Lambda function
            
            
            A  that defines the EDM type of the third argument to the Lambda function
            
            
            A  that defines the EDM type of the fourth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixth argument to the Lambda function
            
            
            A  that defines the EDM type of the seventh argument to the Lambda function
            
            
            A  that defines the EDM type of the eighth argument to the Lambda function
            
            
            A  that defines the EDM type of the ninth argument to the Lambda function
            
            
            A  that defines the EDM type of the tenth argument to the Lambda function
            
            
            A  that defines the EDM type of the eleventh argument to the Lambda function
            
            
            A  that defines the EDM type of the twelfth argument to the Lambda function
            
            
            A  that defines the EDM type of the thirteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the fourteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the fifteenth argument to the Lambda function
            
            
            A  that defines the EDM type of the sixteenth argument to the Lambda function
            
            
            A function that defines the logic of the Lambda function as a
            
            
            
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null,
            
            is null, or
            
            is null or produces a result of null.
            
        
        
            Gets the body of the lambda expression.
            
            A  that represents the body of the lambda function.
            
        
        
            Gets the parameters of the lambda expression.
            The list of lambda function parameters represented as DbVariableReferenceExpression objects.
        
        
            
            Specifies a single clause in an insert or update modification operation, see
             and 
            
            
            An abstract base class allows the possibility of patterns other than
            Property = Value in future versions, e.g.,update Foo
                set ComplexTypeColumn.Bar()
                where Id = 2
            
        
        
            Represents a query operation expressed as a command tree. This class cannot be inherited.  
        
        
            
            Constructs a new DbQueryCommandTree that uses the specified metadata workspace.
            
             The metadata workspace that the command tree should use. 
             The logical 'space' that metadata in the expressions used in this command tree must belong to. 
            
            A  that defines the logic of the query.
            
             When set to false the validation of the tree is turned off. 
            
            
            or
            
            is null
            
            
            
            does not represent a valid data space
            
        
        
            
            Constructs a new DbQueryCommandTree that uses the specified metadata workspace.
            
             The metadata workspace that the command tree should use. 
             The logical 'space' that metadata in the expressions used in this command tree must belong to. 
            
            A  that defines the logic of the query.
            
            
            
            or
            
            is null
            
            
            
            does not represent a valid data space
            
        
        
            
            Gets an  that defines the logic of the query operation.
            
            
            An  that defines the logic of the query operation.
            
            The expression is null.
            The expression is associated with a different command tree.
        
        
            Gets the kind of this command tree.
            The kind of this command tree.
        
        
            Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited. 
        
        
            
            Gets an  that specifies the property that should be updated.
            
            
            An  that specifies the property that should be updated.
            
        
        
            
            Gets an  that specifies the new value with which to update the property.
            
            
            An  that specifies the new value with which to update the property.
            
        
        
            Represents a single-row update operation expressed as a command tree. This class cannot be inherited.  
            
            Represents a single-row update operation expressed as a canonical command tree.
            When the  property is set, the command returns a reader; otherwise,
            it returns a scalar indicating the number of rows affected.
            
        
        
            
            Initializes a new instance of the  class.
            
            The model this command will operate on.
            The data space.
            The target table for the data manipulation language (DML) operation.
            A predicate used to determine which members of the target collection should be updated.
            The list of update set clauses that define the update operation.
            A  that specifies a projection of results to be returned, based on the modified rows.
        
        
            Gets the list of update set clauses that define the update operation.
            The list of update set clauses that define the update operation.
        
        
            
            Gets an  that specifies a projection of results to be returned, based on the modified rows.
            
            
            An  that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command.
            
        
        
            
            Gets an  that specifies the predicate used to determine which members of the target collection should be updated.
            
            
            An  that specifies the predicate used to determine which members of the target collection should be updated.
            
        
        
            Gets the kind of this command tree.
            The kind of this command tree.
        
        
            Represents a reference to a variable that is currently in scope. This class cannot be inherited. 
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the name of the referenced variable.
            The name of the referenced variable.
        
        
             Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned. 
        
        
            
            Initializes a new instance of the
            
            class.
            
        
        
            Replaces an old expression with a new one for the expression visitor.
            The old expression.
            The new expression.
        
        
            Represents an event when the variable is rebound for the expression visitor.
            The location of the variable.
            The reference of the variable where it is rebounded.
        
        
            Represents an event when entering the scope for the expression visitor with specified scope variables.
            The collection of scope variables.
        
        
            Exits the scope for the expression visitor.
        
        
            Implements the visitor pattern for the expression.
            The implemented visitor pattern.
            The expression.
        
        
            Implements the visitor pattern for the expression list.
            The implemented visitor pattern.
            The expression list.
        
        
            Implements the visitor pattern for expression binding.
            The implemented visitor pattern.
            The expression binding.
        
        
            Implements the visitor pattern for the expression binding list.
            The implemented visitor pattern.
            The expression binding list.
        
        
            Implements the visitor pattern for the group expression binding.
            The implemented visitor pattern.
            The binding.
        
        
            Implements the visitor pattern for the sort clause.
            The implemented visitor pattern.
            The sort clause.
        
        
            Implements the visitor pattern for the sort order.
            The implemented visitor pattern.
            The sort order.
        
        
            Implements the visitor pattern for the aggregate.
            The implemented visitor pattern.
            The aggregate.
        
        
            Implements the visitor pattern for the function aggregate.
            The implemented visitor pattern.
            The aggregate.
        
        
            Implements the visitor pattern for the group aggregate.
            The implemented visitor pattern.
            The aggregate.
        
        
            Implements the visitor pattern for the Lambda function.
            The implemented visitor pattern.
            The lambda function.
        
        
            Implements the visitor pattern for the type.
            The implemented visitor pattern.
            The type.
        
        
            Implements the visitor pattern for the type usage.
            The implemented visitor pattern.
            The type.
        
        
            Implements the visitor pattern for the entity set.
            The implemented visitor pattern.
            The entity set.
        
        
            Implements the visitor pattern for the function.
            The implemented visitor pattern.
            The function metadata.
        
        
            Implements the visitor pattern for the basic functionality required by expression types.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the different kinds of constants.
            The implemented visitor.
            The constant expression.
        
        
            Implements the visitor pattern for a reference to a typed null literal.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a reference to a variable that is currently in scope.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for an invocation of a function.
            The implemented visitor.
            The function expression.
        
        
            Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for retrieving an instance property.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the comparison operation applied to two arguments.
            The implemented visitor.
            The cast expression.
        
        
            Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the null determination applied to a single argument.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the arithmetic operation applied to numeric arguments.
            The implemented visitor.
            The arithmetic expression.
        
        
            Implements the visitor pattern for the logical AND expression.
            The implemented visitor.
            The logical AND expression.
        
        
            Implements the visitor pattern for the logical OR of two Boolean arguments.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the DbInExpression.
            The implemented visitor.
            The DbInExpression that is being visited.
        
        
            Implements the visitor pattern for the logical NOT of a single Boolean argument.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the removed duplicate elements from the specified set argument.
            The implemented visitor.
            The distinct expression.
        
        
            Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton.
            The implemented visitor.
            The element expression.
        
        
            Implements the visitor pattern for an empty set determination applied to a single set argument.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the set union operation between the left and right operands.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the set intersection operation between the left and right operands.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the set subtraction operation between the left and right operands.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a type conversion operation applied to a polymorphic argument.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the type comparison of a single argument against the specified type.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the type conversion of a single argument to the specified type.
            The implemented visitor.
            The cast expression.
        
        
            Implements the visitor pattern for the When, Then, and Else clauses.
            The implemented visitor.
            The case expression.
        
        
            Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the construction of a new instance of a given type, including set and record types.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the navigation of a relationship.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the expression that retrieves an entity based on the specified reference.
            The implemented visitor.
            The DEREF expression.
        
        
            Implements the visitor pattern for the retrieval of the key value from the underlying reference value.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance.
            The implemented visitor.
            The entity reference expression.
        
        
            Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a predicate applied to filter an input set.
            The implemented visitor.
            The filter expression.
        
        
            Implements the visitor pattern for the projection of a given input set over the specified expression.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the unconditional join operation between the given collection arguments.
            The implemented visitor.
            The join expression.
        
        
            Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the invocation of the specified function for each element in the specified input set.
            The implemented visitor.
            The APPLY expression.
        
        
            Implements the visitor pattern for a group by operation.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for the skip expression.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a sort key that can be used as part of the sort order.
            The implemented visitor.
            The expression.
        
        
            Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set.
            The implemented visitor.
            The expression.
        
        
            
            Defines the binding for the input set to a .
            In addition to the properties of , DbGroupExpressionBinding
            also provides access to the group element via the  variable reference
            and to the group aggregate via the  property.
            
        
        
            
            Gets the  that defines the input set.
            
            
            The  that defines the input set.
            
            The expression is null.
            
            The expression is not associated with the command tree of the
            
            , or its result type is not equal or promotable to the result type of the current value of the property.
            
        
        
            Gets the name assigned to the element variable.
            The name assigned to the element variable.
        
        
            Gets the type metadata of the element variable.
            The type metadata of the element variable.
        
        
            
            Gets the  that references the element variable.
            
            A reference to the element variable.
        
        
            Gets the name assigned to the group element variable.
            The name assigned to the group element variable.
        
        
            Gets the type metadata of the group element variable.
            The type metadata of the group element variable.
        
        
            
            Gets the  that references the group element variable.
            
            A reference to the group element variable.
        
        
            
            Gets the  that represents the collection of elements in the group.
            
            The elements in the group.
        
        
            
            Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself.
            
        
        
            Returns the specified arguments as a key/value pair object.
            A key/value pair object.
            The value in the key/value pair.
            The key in the key/value pair.
        
        
            Returns the specified arguments as a key/value pair object.
            A key/value pair object.
            The value in the key/value pair.
            The key in the key/value pair.
        
        
            
            Creates a new  that uses a generated variable name to bind the given expression.
            
            A new expression binding with the specified expression and a generated variable name.
            The expression to bind.
            input is null.
            input does not have a collection result.
        
        
            
            Creates a new  that uses the specified variable name to bind the given expression
            
            A new expression binding with the specified expression and variable name.
            The expression to bind.
            The variable name that should be used for the binding.
            input or varName is null.
            input does not have a collection result.
        
        
            Creates a new group expression binding that uses generated variable and group variable names to bind the given expression.
            A new group expression binding with the specified expression and a generated variable name and group variable name.
            The expression to bind.
            input is null.
            input does not have a collection result type.
        
        
            
            Creates a new  that uses the specified variable name and group variable names to bind the given expression.
            
            A new group expression binding with the specified expression, variable name and group variable name.
            The expression to bind.
            The variable name that should be used for the binding.
            The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression.
            input, varName or groupVarName is null.
            input does not have a collection result type.
        
        
            
            Creates a new .
            
            A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false.
            The function that defines the aggregate operation.
            The argument over which the aggregate function should be calculated.
            function or argument null.
            function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function.
        
        
            
            Creates a new  that is applied in a distinct fashion.
            
            A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true.
            The function that defines the aggregate operation.
            The argument over which the aggregate function should be calculated.
            function or argument is null.
            function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function.
        
        
            
            Creates a new  over the specified argument
            
             The argument over which to perform the nest operation 
             A new group aggregate representing the elements of the group referenced by the given argument. 
            
            
            is null
            
        
        
            
            Creates a  with the specified inline Lambda function implementation and formal parameters.
            
            A new expression that describes an inline Lambda function with the specified body and formal parameters.
            An expression that defines the logic of the Lambda function.
            
            A  collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
            
            variables is null or contains null, or body is null.
            variables contains more than one element with the same variable name.
        
        
            
            Creates a  with the specified inline Lambda function implementation and formal parameters.
            
            A new expression that describes an inline Lambda function with the specified body and formal parameters.
            An expression that defines the logic of the Lambda function.
            
            A  collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
            
            variables is null or contains null, or body is null.
            variables contains more than one element with the same variable name.
        
        
            
            Creates a new  with an ascending sort order and default collation.
            
            A new sort clause with the given sort key and ascending sort order.
            The expression that defines the sort key.
            key is null.
            key does not have an order-comparable result type.
        
        
            
            Creates a new  with a descending sort order and default collation.
            
            A new sort clause with the given sort key and descending sort order.
            The expression that defines the sort key.
            key is null.
            key does not have an order-comparable result type.
        
        
            
            Creates a new  with an ascending sort order and the specified collation.
            
            A new sort clause with the given sort key and collation, and ascending sort order.
            The expression that defines the sort key.
            The collation to sort under.
            key is null.
            collation is empty or contains only space characters.
            key does not have an order-comparable result type.
        
        
            
            Creates a new  with a descending sort order and the specified collation.
            
            A new sort clause with the given sort key and collation, and descending sort order.
            The expression that defines the sort key.
            The collation to sort under.
            key is null.
            collation is empty or contains only space characters.
            key does not have an order-comparable result type.
        
        
            
            Creates a new  that determines whether the given predicate holds for all elements of the input set.
            
            A new DbQuantifierExpression that represents the All operation.
            An expression binding that specifies the input set.
            An expression representing a predicate to evaluate for each member of the input set.
            input or predicate is null.
            predicate  does not have a Boolean result type.
        
        
            
            Creates a new  that determines whether the given predicate holds for any element of the input set.
            
            A new DbQuantifierExpression that represents the Any operation.
            An expression binding that specifies the input set.
            An expression representing a predicate to evaluate for each member of the input set.
            input or predicate is null.
            The expression produced by predicate does not have a Boolean result type.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included.
            
            
            An new DbApplyExpression with the specified input and apply bindings and an
            
            of CrossApply.
            
            
            An  that specifies the input set.
            
            
            An  that specifies logic to evaluate once for each member of the input set.
            
            input or apply is null.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null.
            
            
            An new DbApplyExpression with the specified input and apply bindings and an
            
            of OuterApply.
            
            
            An  that specifies the input set.
            
            
            An  that specifies logic to evaluate once for each member of the input set.
            
            input or apply is null.
        
        
            
            Creates a new  that unconditionally joins the sets specified by the list of input expression bindings.
            
            
            A new DbCrossJoinExpression, with an  of CrossJoin, that represents the unconditional join of the input sets.
            
            A list of expression bindings that specifies the input sets.
            inputs is null or contains null element.
            inputs contains fewer than 2 expression bindings.
        
        
            
            Creates a new  that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of InnerJoin, that represents the inner join operation applied to the left and right     input sets under the given join condition.
            
            
            An  that specifies the left set argument.
            
            
            An  that specifies the right set argument.
            
            An expression that specifies the condition on which to join.
            left, right or joinCondition is null.
            joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of LeftOuterJoin, that represents the left outer join operation applied to the left and right     input sets under the given join condition.
            
            
            An  that specifies the left set argument.
            
            
            An  that specifies the right set argument.
            
            An expression that specifies the condition on which to join.
            left, right or joinCondition is null.
            joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of FullOuterJoin, that represents the full outer join operation applied to the left and right     input sets under the given join condition.
            
            
            An  that specifies the left set argument.
            
            
            An  that specifies the right set argument.
            
            An expression that specifies the condition on which to join.
            left, right or joinCondition is null.
            The expression produced by joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that filters the elements in the given input set using the specified predicate.
            
            A new DbFilterExpression that produces the filtered set.
            An expression binding that specifies the input set.
            An expression representing a predicate to evaluate for each member of the input set.
            input or predicate is null.
            predicate does not have a Boolean result type.
        
        
            
            Creates a new  that groups the elements of the input set according to the specified group keys and applies the given aggregates.
            
            A new DbGroupByExpression with the specified input set, grouping keys and aggregates.
            
            A  that specifies the input set.
            
            A list of string-expression pairs that define the grouping columns.
            A list of expressions that specify aggregates to apply.
            input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate.
            Both keys and aggregates are empty, or an invalid or duplicate column name was specified.
        
        
            
            Creates a new  that projects the specified expression over the given input set.
            
            A new DbProjectExpression that represents the projection operation.
            An expression binding that specifies the input set.
            An expression to project over the set.
            input or projection is null.
        
        
            
            Creates a new  that sorts the given input set by the given sort specifications before skipping the specified number of elements.
            
            A new DbSkipExpression that represents the skip operation.
            An expression binding that specifies the input set.
            A list of sort specifications that determine how the elements of the input set should be sorted.
            An expression the specifies how many elements of the ordered set to skip.
            input, sortOrder or count is null, or sortOrder contains null.
            
            sortOrder is empty, or count is not  or
            
            or has a result type that is not equal or promotable to a 64-bit integer type.
            
        
        
            
            Creates a new  that sorts the given input set by the specified sort specifications.
            
            A new DbSortExpression that represents the sort operation.
            An expression binding that specifies the input set.
            A list of sort specifications that determine how the elements of the input set should be sorted.
            input or sortOrder is null, or sortOrder contains null.
            sortOrder is empty.
        
        
            
            Creates a new , which represents a typed null value.
            
            An instance of DbNullExpression.
            The type of the null value.
            nullType is null.
        
        
            
            Creates a new  with the given constant value.
            
            A new DbConstantExpression with the given value.
            The constant value to represent.
            value is null.
            value is not an instance of a valid constant type.
        
        
            
            Creates a new  of the specified primitive type with the given constant value.
            
            A new DbConstantExpression with the given value and a result type of constantType.
            The type of the constant value.
            The constant value to represent.
            value or constantType is null.
            value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType.
        
        
            
            Creates a new  that references a parameter with the specified name and type.
            
            A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type.
            The type of the referenced parameter.
            The name of the referenced parameter.
        
        
            
            Creates a new  that references a variable with the specified name and type.
            
            A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type. 
            The type of the referenced variable.
            The name of the referenced variable.
        
        
            
            Creates a new  that references the specified entity or relationship set.
            
            A new DbScanExpression based on the specified entity or relationship set.
            Metadata for the entity or relationship set to reference.
            targetSet is null.
        
        
            
            Creates an  that performs the logical And of the left and right arguments.
            
            A new DbAndExpression with the specified arguments.
            A Boolean expression that specifies the left argument.
            A Boolean expression that specifies the right argument.
            left or right is null.
            left and right  does not have a Boolean result type.
        
        
            
            Creates an  that performs the logical Or of the left and right arguments.
            
            A new DbOrExpression with the specified arguments.
            A Boolean expression that specifies the left argument.
            A Boolean expression that specifies the right argument.
            left or right is null.
            left or right does not have a Boolean result type.
        
        
            
            Creates a  that matches the result of the specified
            expression with the results of the constant expressions in the specified list.
            
             A DbExpression to be matched. 
             A list of DbConstantExpression to test for a match. 
            
            A new DbInExpression with the specified arguments.
            
            
            
            or
            
            is null.
            
            
            The result type of
            
            is different than the result type of an expression from
            .
            
        
        
            
            Creates a  that performs the logical negation of the given argument.
            
            A new DbNotExpression with the specified argument.
            A Boolean expression that specifies the argument.
            argument is null.
            argument does not have a Boolean result type.
        
        
            
            Creates a new  that divides the left argument by the right argument.
            
            A new DbArithmeticExpression representing the division operation.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common numeric result type exists between left or right.
        
        
            
            Creates a new  that subtracts the right argument from the left argument.
            
            A new DbArithmeticExpression representing the subtraction operation.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common numeric result type exists between left and right.
        
        
            
            Creates a new  that computes the remainder of the left argument divided by the right argument.
            
            A new DbArithmeticExpression representing the modulo operation.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common numeric result type exists between left and right.
        
        
            
            Creates a new  that multiplies the left argument by the right argument.
            
            A new DbArithmeticExpression representing the multiplication operation.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common numeric result type exists between left and right.
        
        
            
            Creates a new  that adds the left argument to the right argument.
            
            A new DbArithmeticExpression representing the addition operation.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common numeric result type exists between left and right.
        
        
            
            Creates a new  that negates the value of the argument.
            
            A new DbArithmeticExpression representing the negation operation.
            An expression that specifies the argument.
            argument is null.
            No numeric result type exists for argument.
        
        
            
            Creates a new  that negates the value of the argument.
            
            A new DbArithmeticExpression representing the negation operation.
            An expression that specifies the argument.
            argument is null.
            No numeric result type exists for argument.
        
        
            
            Creates a new  that compares the left and right arguments for equality.
            
            A new DbComparisonExpression representing the equality comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common equality-comparable result type exists between left and right.
        
        
            
            Creates a new  that compares the left and right arguments for inequality.
            
            A new DbComparisonExpression representing the inequality comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common equality-comparable result type exists between left and right.
        
        
            
            Creates a new  that determines whether the left argument is greater than the right argument.
            
            A new DbComparisonExpression representing the greater-than comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common order-comparable result type exists between left and right.
        
        
            
            Creates a new  that determines whether the left argument is less than the right argument.
            
            A new DbComparisonExpression representing the less-than comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common order-comparable result type exists between left and right.
        
        
            
            Creates a new  that determines whether the left argument is greater than or equal to the right argument.
            
            A new DbComparisonExpression representing the greater-than-or-equal-to comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common order-comparable result type exists between left and right.
        
        
            
            Creates a new  that determines whether the left argument is less than or equal to the right argument.
            
            A new DbComparisonExpression representing the less-than-or-equal-to comparison.
            An expression that specifies the left argument.
            An expression that specifies the right argument.
            left or right is null.
            No common result type that is both equality- and order-comparable exists between left and right.
        
        
            
            Creates a new  that determines whether the specified argument is null.
            
            A new DbIsNullExpression with the specified argument.
            An expression that specifies the argument.
            argument is null.
            argument has a collection result type.
        
        
            
            Creates a new  that compares the specified input string to the given pattern.
            
            A new DbLikeExpression with the specified input, pattern and a null escape.
            An expression that specifies the input string.
            An expression that specifies the pattern string.
            Argument or pattern is null.
            Argument or pattern does not have a string result type.
        
        
            
            Creates a new  that compares the specified input string to the given pattern using the optional escape.
            
            A new DbLikeExpression with the specified input, pattern and escape.
            An expression that specifies the input string.
            An expression that specifies the pattern string.
            An optional expression that specifies the escape string.
            argument,  pattern or escape is null.
            argument,  pattern or escape does not have a string result type.
        
        
            
            Creates a new  that applies a cast operation to a polymorphic argument.
            
            A new DbCastExpression with the specified argument and target type.
            The argument to which the cast should be applied.
            Type metadata that specifies the type to cast to.
            Argument or toType is null.
            The specified cast is not valid.
        
        
            
            Creates a new .
            
            A new DbTreatExpression with the specified argument and type.
            An expression that specifies the instance.
            Type metadata for the treat-as type.
            argument or treatType is null.
            treatType is not in the same type hierarchy as the result type of argument.
        
        
            
            Creates a new  that produces a set consisting of the elements of the given input set that are of the specified type.
            
            
            A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of
            
            .
            
            
            A  that specifies the input set.
            
            Type metadata for the type that elements of the input set must have to be included in the resulting set.
            argument or type is null.
            argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument.
        
        
            
            Creates a new  that produces a set consisting of the elements of the given input set that are of exactly the specified type.
            
            
            A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of
            
            .
            
            
            An  that specifies the input set.
            
            Type metadata for the type that elements of the input set must match exactly to be included in the resulting set.
            argument or type is null.
            argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument.
        
        
            
            Creates a new  that determines whether the given argument is of the specified type or a subtype.
            
            A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf.
            An expression that specifies the instance.
            Type metadata that specifies the type that the instance's result type should be compared to.
            argument or type is null.
            type is not in the same type hierarchy as the result type of argument.
        
        
            
            Creates a new  expression that determines whether the given argument is of the specified type, and only that type (not a subtype).
            
            A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly.
            An expression that specifies the instance.
            Type metadata that specifies the type that the instance's result type should be compared to.
            argument or type is null.
            type is not in the same type hierarchy as the result type of argument.
        
        
            
            Creates a new  that retrieves a specific Entity given a reference expression.
            
            A new DbDerefExpression that retrieves the specified Entity.
            
            An  that provides the reference. This expression must have a reference Type.
            
            argument is null.
            argument does not have a reference result type.
        
        
            
            Creates a new  that retrieves the ref of the specifed entity in structural form.
            
            A new DbEntityRefExpression that retrieves a reference to the specified entity.
            The expression that provides the entity. This expression must have an entity result type.
            argument is null.
            argument does not have an entity result type.
        
        
            
            Creates a new  that encodes a reference to a specific entity based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given entity set.
            The entity set in which the referenced element resides.
            
            A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
            
            entitySet is null, or keyValues is null or contains null.
            The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
        
        
            
            Creates a new  that encodes a reference to a specific entity based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given entity set.
            The entity set in which the referenced element resides.
            
            A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
            
            entitySet is null, or keyValues is null or contains null.
            The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
        
        
            
            Creates a new  that encodes a reference to a specific entity of a given type based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given entity set.
            The entity set in which the referenced element resides.
            The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type.
            
            A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
            
            entitySet or entityType is null, or keyValues is null or contains null.
            entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type.
            The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
        
        
            
            Creates a new  that encodes a reference to a specific entity of a given type based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given entity set.
            The entity set in which the referenced element resides.
            The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type.
            
            A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
            
            entitySet or entityType is null, or keyValues is null or contains null.
            entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type.
            The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
        
        
            
            Creates a new  that encodes a reference to a specific Entity based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given Entity set.
            The Entity set in which the referenced element resides.
            
            A  that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type.
            
            entitySet or keyRow is null.
            keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type.
        
        
            
            Creates a new  that encodes a reference to a specific Entity based on key values.
            
            A new DbRefExpression that references the element with the specified key values in the given Entity set.
            The Entity set in which the referenced element resides.
            
            A  that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type.
            
            The type of the Entity that the reference should refer to.
            entitySet, keyRow or entityType is null.
            entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type.
        
        
            
            Creates a new  that retrieves the key values of the specifed reference in structural form.
            
            A new DbRefKeyExpression that retrieves the key values of the specified reference.
            The expression that provides the reference. This expression must have a reference Type with an Entity element type.
            argument is null.
            argument does not have a reference result type.
        
        
            
            Creates a new  representing the navigation of a composition or association relationship.
            
            A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance.
            An expression that specifies the instance from which navigation should occur.
            Metadata for the property that represents the end of the relationship from which navigation should occur.
            Metadata for the property that represents the end of the relationship to which navigation should occur.
            fromEnd, toEnd or navigateFrom is null.
            fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd.
        
        
            
            Creates a new  representing the navigation of a composition or association relationship.
            
            A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance.
            Metadata for the relation type that represents the relationship.
            The name of the property of the relation type that represents the end of the relationship from which navigation should occur.
            The name of the property of the relation type that represents the end of the relationship to which navigation should occur.
            An expression the specifies the instance from which naviagtion should occur.
            type, fromEndName, toEndName or navigateFrom is null.
            type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName.
        
        
            
            Creates a new  that removes duplicates from the given set argument.
            
            A new DbDistinctExpression that represents the distinct operation applied to the specified set argument.
            An expression that defines the set over which to perfom the distinct operation.
            argument is null.
            argument does not have a collection result type.
        
        
            
            Creates a new  that converts a set into a singleton.
            
            A DbElementExpression that represents the conversion of the set argument to a singleton.
            An expression that specifies the input set.
            argument is null.
            argument does not have a collection result type.
        
        
            
            Creates a new  that determines whether the specified set argument is an empty set.
            
            A new DbIsEmptyExpression with the specified argument.
            An expression that specifies the input set.
            argument is null.
            argument does not have a collection result type.
        
        
            
            Creates a new  that computes the subtraction of the right set argument from the left set argument.
            
            A new DbExceptExpression that represents the difference of the left argument from the right argument.
            An expression that defines the left set argument.
            An expression that defines the right set argument.
            left or right is null.
            No common collection result type exists between left and right.
        
        
            
            Creates a new  that computes the intersection of the left and right set arguments.
            
            A new DbIntersectExpression that represents the intersection of the left and right arguments.
            An expression that defines the left set argument.
            An expression that defines the right set argument.
            left or right is null.
            No common collection result type exists between left or right.
        
        
            
            Creates a new  that computes the union of the left and right set arguments and does not remove duplicates.
            
            A new DbUnionAllExpression that union, including duplicates, of the the left and right arguments.
            An expression that defines the left set argument.
            An expression that defines the right set argument.
            left or right is null.
            No common collection result type with an equality-comparable element type exists between left and right.
        
        
            
            Creates a new  that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output.
            
            A new DbLimitExpression with the specified argument and count limit values that does not include tied results.
            An expression that specifies the input collection.
            An expression that specifies the limit value.
            argument or count is null.
            argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type.
        
        
            
            Creates a new .
            
            A new DbCaseExpression with the specified cases and default result.
            A list of expressions that provide the conditional for of each case.
            A list of expressions that provide the result of each case.
            An expression that defines the result when no case is matched.
            whenExpressions or thenExpressions is null or contains null, or elseExpression is null.
            whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression.
        
        
            
            Creates a new  representing the invocation of the specified function with the given arguments.
            
            A new DbFunctionExpression representing the function invocation.
            Metadata for the function to invoke.
            A list of expressions that provide the arguments to the function.
            function is null, or arguments is null or contains null.
            The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type.
        
        
            
            Creates a new  representing the invocation of the specified function with the given arguments.
            
            A new DbFunctionExpression representing the function invocation.
            Metadata for the function to invoke.
            Expressions that provide the arguments to the function.
            function is null, or arguments is null or contains null.
            The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type.
        
        
            
            Creates a new  representing the application of the specified Lambda function to the given arguments.
            
            A new Expression representing the Lambda function application.
            
            A  instance representing the Lambda function to apply.
            
            A list of expressions that provide the arguments.
            lambda or arguments is null.
            The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type.
        
        
            
            Creates a new  representing the application of the specified Lambda function to the given arguments.
            
            A new expression representing the Lambda function application.
            
            A  instance representing the Lambda function to apply.
            
            Expressions that provide the arguments.
            lambda or arguments is null.
            The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type.
        
        
            
            Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance.
            
            A new DbNewInstanceExpression with the specified type and arguments.
            The type of the new instance.
            Expressions that specify values of the new instances, interpreted according to the instance's type.
            instanceType or arguments is null, or arguments contains null.
            arguments is empty or the result types of the contained expressions do not match the requirements of instanceType  (as explained in the remarks section).
        
        
            
            Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance.
            
            A new DbNewInstanceExpression with the specified type and arguments.
            The type of the new instance.
            Expressions that specify values of the new instances, interpreted according to the instance's type.
            instanceType or arguments is null, or arguments contains null.
            arguments is empty or the result types of the contained expressions do not match the requirements of instanceType  (as explained in the remarks section).
        
        
            
            Creates a new  that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown.
            
            A new DbNewInstanceExpression with the specified collection type and arguments.
            A list of expressions that provide the elements of the collection.
            elements is null, or contains null.
            elements is empty or contains expressions for which no common result type exists.
        
        
            
            Creates a new  that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown.
            
            A new DbNewInstanceExpression with the specified collection type and arguments.
            A list of expressions that provide the elements of the collection.
            elements is null, or contains null..
            elements is empty or contains expressions for which no common result type exists.
        
        
            
            Creates a new  that constructs an empty collection of the specified collection type.
            
            A new DbNewInstanceExpression with the specified collection type and an empty Arguments list.
            The type metadata for the collection to create
            collectionType is null.
            collectionType is not a collection type.
        
        
            
            Creates a new  that produces a row with the specified named columns and the given values, specified as expressions.
            
            A new DbNewInstanceExpression that represents the construction of the row.
            A list of string-DbExpression key-value pairs that defines the structure and values of the row.
            columnValues is null or contains an element with a null column name or expression.
            columnValues is empty, or contains a duplicate or invalid column name.
        
        
            
            Creates a new  representing the retrieval of the specified property.
            
            A new DbPropertyExpression representing the property retrieval.
            The instance from which to retrieve the property. May be null if the property is static.
            Metadata for the property to retrieve.
            propertyMetadata is null or instance is null and the property is not static.
        
        
            
            Creates a new  representing the retrieval of the specified navigation property.
            
            A new DbPropertyExpression representing the navigation property retrieval.
            The instance from which to retrieve the navigation property.
            Metadata for the navigation property to retrieve.
            navigationProperty or instance is null.
        
        
            
            Creates a new  representing the retrieval of the specified relationship end member.
            
            A new DbPropertyExpression representing the relationship end member retrieval.
            The instance from which to retrieve the relationship end member.
            Metadata for the relationship end member to retrieve.
            relationshipEnd is null or instance is null and the property is not static.
        
        
            
            Creates a new  representing the retrieval of the instance property with the specified name from the given instance.
            
            A new DbPropertyExpression that represents the property retrieval.
            The instance from which to retrieve the property.
            The name of the property to retrieve.
            propertyName is null or instance is null and the property is not static.
            No property with the specified name is declared by the type of instance.
        
        
            
            Creates a new  that determines whether the given predicate holds for all elements of the input set.
            
            A new DbQuantifierExpression that represents the All operation.
            An expression that specifies the input set.
            A method representing a predicate to evaluate for each member of the input set.    This method must produce an expression with a Boolean result type that provides the predicate logic.
            source or predicate is null.
            The expression produced by predicate is null.
            source  does not have a collection result type.
            The expression produced by Predicate  does not have a Boolean result type.
        
        
            
            Creates a new  that determines whether the specified set argument is non-empty.
            
            
            A new  applied to a new
            
            with the specified argument.
            
            An expression that specifies the input set.
            source is null.
            source does not have a collection result type.
        
        
            
            Creates a new  that determines whether the specified set argument is non-empty.
            
            
            A new  applied to a new
            
            with the specified argument.
            
            An expression that specifies the input set.
            argument is null.
            argument does not have a collection result type.
        
        
            
            Creates a new  that determines whether the given predicate holds for any element of the input set.
            
            A new DbQuantifierExpression that represents the Any operation.
            An expression that specifies the input set.
            A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic.
            source or predicate is null.
            The expression produced by predicate is null.
            source does not have a collection result type.
            The expression produced by predicate does not have a Boolean result type.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included.
            
            
            An new DbApplyExpression with the specified input and apply bindings and an
            
            of CrossApply.
            
            
            A  that specifies the input set.
            
            A method that specifies the logic to evaluate once for each member of the input set. 
            source or apply is null.
            source does not have a collection result type.
            The result of apply contains a name or expression that is null.
            The result of apply contains a name or expression that is not valid in an expression binding.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null.
            
            
            An new DbApplyExpression with the specified input and apply bindings and an
            
            of OuterApply.
            
            
            A  that specifies the input set.
            
            A method that specifies the logic to evaluate once for each member of the input set.
            source or apply is null.
            Source does not have a collection result type.
            The result of apply contains a name or expression that is null.
            The result of apply contains a name or expression that is not valid in an expression binding.
        
        
            
            Creates a new  that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition.
            
            
            A  that specifies the left set argument.
            
            
            A  that specifies the right set argument.
            
             A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
            left, right or joinCondition is null.
            left or right does not have a collection result type.
            The expression produced by joinCondition is null.
            The expression produced by joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition.
            
            
            A  that specifies the left set argument.
            
            
            A  that specifies the right set argument.
            
            A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
            left, right or joinCondition is null.
            left or right does not have a collection result type.
            The expression produced by joinCondition is null.
            The expression produced by joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition.
            
            
            A  that specifies the left set argument.
            
            
            A  that specifies the right set argument.
            
            A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
            left, right or joinCondition is null.
            left or right does not have a collection result type.
            The expression produced by joinCondition is null.
            The expression produced by joinCondition does not have a Boolean result type.
        
        
            
            Creates a new  that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the
            
            .
            
            
            A new DbJoinExpression, with an  of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality.
            
            
            A  that specifies the outer set argument.
            
            
            A  that specifies the inner set argument.
            
            A method that specifies how the outer key value should be derived from an element of the outer set.
            A method that specifies how the inner key value should be derived from an element of the inner set.
            outer, inner, outerKey or innerKey is null.
            outer or inner does not have a collection result type.
            The expression produced by outerKey or innerKey is null.
            The expressions produced by outerKey and innerKey are not comparable for equality.
        
        
            
            Creates a new  that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the
            
            .
            
            
            A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an
            
            of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality.
            
            
            A  that specifies the outer set argument.
            
            
            A  that specifies the inner set argument.
            
            A method that specifies how the outer key value should be derived from an element of the outer set.
            A method that specifies how the inner key value should be derived from an element of the inner set.
            
            A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a
            
            . Compatibility requirements for  TSelector  are described in remarks.
            
            The type of the  selector .
            outer, inner, outerKey, innerKey or selector is null.
            outer or inner does not have a collection result type.
            The expression produced by outerKey or innerKey is null.
            The result of selector is null after conversion to DbExpression.
            The expressions produced by outerKey and innerKey is not comparable for equality.
            The result of Selector is not compatible with SelectMany.
        
        
            
            Creates a new  that sorts the given input set by the specified sort key, with ascending sort order and default collation.
            
            A new DbSortExpression that represents the order-by operation.
            An expression that specifies the input set.
            A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. 
            source or sortKey is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable result type.
        
        
            
            Creates a new  that sorts the given input set by the specified sort key, with ascending sort order and the specified collation.
            
            A new DbSortExpression that represents the order-by operation.
            An expression that specifies the input set.
            A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. 
            The collation to sort under.
            source, sortKey or collation is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey  does not have an order-comparable string result type.
            collation is empty or contains only space characters.
        
        
            
            Creates a new  that sorts the given input set by the specified sort key, with descending sort order and default collation.
            
            A new DbSortExpression that represents the order-by operation.
            An expression that specifies the input set.
            A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. 
            source or sortKey is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable result type.
        
        
            
            Creates a new  that sorts the given input set by the specified sort key, with descending sort order and the specified collation.
            
            A new DbSortExpression that represents the order-by operation.
            An expression that specifies the input set.
            A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. 
            The collation to sort under.
            source, sortKey or collation is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable string result type.
            collation is empty or contains only space characters.
        
        
            
            Creates a new  that selects the specified expression over the given input set.
            
            A new DbProjectExpression that represents the select operation.
            An expression that specifies the input set.
            
            A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a
            
            . Compatibility requirements for  TProjection  are described in remarks.
            
            The method result type of projection.
            source or projection is null.
            The result of projection is null.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A
            
            is then created that selects the apply column from each row, producing the overall collection of apply results.
            
            
            An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an
            
            of CrossApply.
            
            
            A  that specifies the input set.
            
            A method that represents the logic to evaluate once for each member of the input set.
            source or apply is null.
            The expression produced by apply is null.
            source  does not have a collection result type.
            The expression produced by apply does not have a collection type.
        
        
            
            Creates a new  that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A
            
            is then created that selects the specified selector over each row, producing the overall collection of results.
            
            
            An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an
            
            of CrossApply.
            
            
            A  that specifies the input set.
            
            A method that represents the logic to evaluate once for each member of the input set. 
            
            A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a
            
            . Compatibility requirements for  TSelector  are described in remarks.
            
            The method result type of selector.
            source, apply or selector is null.
            The expression produced by apply is null.
            The result of selector is null on conversion to DbExpression.
            source does not have a collection result type.
            The expression produced by apply does not have a collection type. does not have a collection type. 
        
        
            
            Creates a new  that skips the specified number of elements from the given sorted input set.
            
            A new DbSkipExpression that represents the skip operation.
            
            A  that specifies the sorted input set.
            
            An expression the specifies how many elements of the ordered set to skip.
            argument or count is null.
            
            count is not  or
            
            or has a result type that is not equal or promotable to a 64-bit integer type.
            
        
        
            
            Creates a new  that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output.
            
            A new DbLimitExpression with the specified argument and count limit values that does not include tied results.
            An expression that specifies the input collection.
            An expression that specifies the limit value.
            argument or count is null.
            argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type.
        
        
            
            Creates a new  that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and  with default collation.
            
            A new DbSortExpression that represents the new overall order-by operation.
            A DbSortExpression that specifies the ordered input set.
            A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
            source or sortKey is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            sortKey does not have an order-comparable result type.
        
        
            
            Creates a new  that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and  with the specified collation.
            
            A new DbSortExpression that represents the new overall order-by operation.
            A DbSortExpression that specifies the ordered input set.
            A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition. 
            The collation to sort under.
            source, sortKey or collation is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable string result type.
            collation is empty or contains only space characters.
        
        
            
            Creates a new  that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and  with default collation.
            
            A new DbSortExpression that represents the new overall order-by operation.
            A DbSortExpression that specifies the ordered input set.
            A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
            source or sortKey is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable result type.
        
        
            
            Creates a new  that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and  with the specified collation.
            
            A new DbSortExpression that represents the new overall order-by operation.
            A DbSortExpression that specifies the ordered input set.
            A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
            The collation to sort under.
            source, sortKey or collation is null.
            The expression produced by sortKey is null.
            source does not have a collection result type.
            The expression produced by sortKey does not have an order-comparable string result type.
            collation is empty or contains only space characters.
        
        
            
            Creates a new  that filters the elements in the given input set using the specified predicate.
            
            A new DbQuantifierExpression that represents the Any operation.
            An expression that specifies the input set.
            A method representing the predicate to evaluate for each member of the input set.    This method must produce an expression with a Boolean result type that provides the predicate logic.
            source or predicate is null.
            The expression produced by predicate is null.
            The expression produced by predicate does not have a Boolean result type.
        
        
            
            Creates a new  that computes the union of the left and right set arguments with duplicates removed.
            
            A new DbExpression that computes the union, without duplicates, of the the left and right arguments.
            An expression that defines the left set argument.
            An expression that defines the right set argument.
            left or right is null.
            No common collection result type with an equality-comparable element type exists between left and right.
        
        
            
            Used only by span rewriter, when a row could be specified as an argument
            
        
        
            
            Creates a new  that converts a single-member set with a single property
            into a singleton.  The result type of the created  equals the result type
            of the single property of the element of the argument.
            This method should only be used when the argument is of a collection type with
            element of structured type with only one property.
            
             An expression that specifies the input set. 
             A DbElementExpression that represents the conversion of the single-member set argument to a singleton. 
            
            
            is null
            
            
            
            is associated with a different command tree,
            or does not have a collection result type, or its element type is not a structured type
            with only one property
            
        
        
            
            Creates a new  that describes how to satisfy the relationship
            navigation operation from  to , which
            must be declared by the same relationship type.
            DbRelatedEntityRefs are used in conjuction with 
            to construct Entity instances that are capable of resolving relationship navigation operations based on
            the provided DbRelatedEntityRefs without the need for additional navigation operations.
            Note also that this factory method is not intended to be part of the public Command Tree API
            since its intent is to support Entity constructors in view definitions that express information about
            related Entities using the 'WITH RELATIONSHIP' clause in eSQL.
            
             The relationship end from which navigation takes place 
             The relationship end to which navigation may be satisifed using the target entity ref 
             An expression that produces a reference to the target entity (and must therefore have a Ref result type) 
        
        
            
            Creates a new  that constructs an instance of an Entity type
            together with the specified information about Entities related to the newly constructed Entity by
            relationship navigations where the target end has multiplicity of at most one.
            Note that this factory method is not intended to be part of the public Command Tree API since its
            intent is to support Entity constructors in view definitions that express information about
            related Entities using the 'WITH RELATIONSHIP' clause in eSQL.
            
             The type of the Entity instance that is being constructed 
             Values for each (non-relationship) property of the Entity 
            
            A (possibly empty) list of  s that describe Entities that are related to the constructed Entity by various relationship types.
            
            
            A new DbNewInstanceExpression that represents the construction of the Entity, and includes the specified related Entity information in the see
            
            collection.
            
        
        
            
            Same as  only allows the property type of
            
            to be any type in the same type hierarchy as the result type of .
            Only used by relationship span.
            
        
        
            
            Requires: non-null expression
            Determines whether the expression is a constant negative integer value. Always returns
            false for non-constant, non-integer expression instances.
            
        
        
            
            Gets a  with the Boolean value true.
            
            
            A  with the Boolean value true.
            
        
        
            
            Gets a  with the Boolean value false.
            
            
            A  with the Boolean value false.
            
        
        
            
            Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself.
            
        
        
            
            Creates a  that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection.
            
            A new DbFunctionExpression that produces the average value.
            An expression that specifies the collection from which the average value should be computed.
        
        
            
            Creates a  that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that produces the count value.
            An expression that specifies the collection over which the count value should be computed.
        
        
            
            Creates a  that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64.
            
            A new DbFunctionExpression that produces the count value.
            An expression that specifies the collection over which the count value should be computed.
        
        
            
            Creates a  that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection.
            
            A new DbFunctionExpression that produces the maximum value.
            An expression that specifies the collection from which the maximum value should be retrieved
        
        
            
            Creates a  that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection.
            
            A new DbFunctionExpression that produces the minimum value.
            An expression that specifies the collection from which the minimum value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection.
            
            A new DbFunctionExpression that produces the sum.
            An expression that specifies the collection from which the sum should be computed.
        
        
            
            Creates a  that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection.
            An expression that specifies the collection for which the standard deviation should be computed.
        
        
            
            Creates a  that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that produces the standard deviation value.
            An expression that specifies the collection for which the standard deviation should be computed.
        
        
            
            Creates a  that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection.
            An expression that specifies the collection for which the statistical variance should be computed.
        
        
            
            Creates a  that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double.
            
            A new DbFunctionExpression that produces the statistical variance value.
            An expression that specifies the collection for which the statistical variance should be computed.
        
        
            
            Creates a  that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string.
            
            A new DbFunctionExpression that produces the concatenated string.
            An expression that specifies the string that should appear first in the concatenated result string.
            An expression that specifies the string that should appear second in the concatenated result string.
        
        
            
            Creates a  that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString.
            An expression that specifies the string to search for any occurence of searchedForString.
            An expression that specifies the string to search for in searchedString.
        
        
            
            Creates a  that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix.
            An expression that specifies the string that is searched at the end for string suffix.
            An expression that specifies the target string that is searched for at the end of stringArgument.
        
        
            
            Creates a  that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the first index of stringToFind in searchString.
            An expression that specifies the string to search for stringToFind.
            An expression that specifies the string to locate within searchString should be checked.
        
        
            
            Creates a  that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string.
            
            A new DbFunctionExpression that returns the the leftmost substring of length length from stringArgument.
            An expression that specifies the string from which to extract the leftmost substring.
            An expression that specifies the length of the leftmost substring to extract from stringArgument.
        
        
            
            Creates a  that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the length of stringArgument.
            An expression that specifies the string for which the length should be computed.
        
        
            
            Creates a  that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression than returns a new string based on stringArgument where every occurence of toReplace is replaced by replacement.
            An expression that specifies the string in which to perform the replacement operation.
            An expression that specifies the string that is replaced.
            An expression that specifies the replacement string.
        
        
            
            Creates a  that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that produces the reversed value of stringArgument.
            An expression that specifies the string to reverse.
        
        
            
            Creates a  that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string.
            
            A new DbFunctionExpression that returns the the rightmost substring of length length from stringArgument.
            An expression that specifies the string from which to extract the rightmost substring.
            An expression that specifies the length of the rightmost substring to extract from stringArgument.
        
        
            
            Creates a  that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix.
            An expression that specifies the string that is searched at the start for string prefix.
            An expression that specifies the target string that is searched for at the start of stringArgument.
        
        
            
            Creates a  that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string.
            
            A new DbFunctionExpression that returns the substring of length length from stringArgument starting at start.
            An expression that specifies the string from which to extract the substring.
            An expression that specifies the starting index from which the substring should be taken.
            An expression that specifies the length of the substring.
        
        
            
            Creates a  that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that returns value of stringArgument converted to lower case.
            An expression that specifies the string that should be converted to lower case.
        
        
            
            Creates a  that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that returns value of stringArgument converted to upper case.
            An expression that specifies the string that should be converted to upper case.
        
        
            
            Creates a  that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed.
            An expression that specifies the string from which leading and trailing space should be removed.
        
        
            
            Creates a  that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that returns value of stringArgument with trailing space removed.
            An expression that specifies the string from which trailing space should be removed.
        
        
            
            Creates a  that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
            
            A new DbFunctionExpression that returns value of stringArgument with leading space removed.
            An expression that specifies the string from which leading space should be removed.
        
        
            
            Creates a  that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer year value from dateValue.
            An expression that specifies the value from which the year should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer month value from dateValue.
            An expression that specifies the value from which the month should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer day value from dateValue.
            An expression that specifies the value from which the day should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer day of year value from dateValue.
            An expression that specifies the value from which the day within the year should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer hour value from timeValue.
            An expression that specifies the value from which the hour should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer minute value from timeValue.
            An expression that specifies the value from which the minute should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer second value from timeValue.
            An expression that specifies the value from which the second should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer millisecond value from timeValue.
            An expression that specifies the value from which the millisecond should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT.
            An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'CurrentDateTime' function.
            
            A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance.
        
        
            
            Creates a  that invokes the canonical 'CurrentDateTimeOffset' function.
            
            A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance.
        
        
            
            Creates a  that invokes the canonical 'CurrentUtcDateTime' function.
            
            A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance.
        
        
            
            Creates a  that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue.
            
            A new DbFunctionExpression that returns the value of dateValue with time set to zero.
            An expression that specifies the value for which the time portion should be truncated.
        
        
            
            Creates a  that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime.
            
            A new DbFunctionExpression that returns a new DateTime based on the specified values.
            An expression that provides the year value for the new DateTime instance.
            An expression that provides the month value for the new DateTime instance.
            An expression that provides the day value for the new DateTime instance.
            An expression that provides the hour value for the new DateTime instance.
            An expression that provides the minute value for the new DateTime instance.
            An expression that provides the second value for the new DateTime instance.
        
        
            
            Creates a  that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset.
            
            A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values.
            An expression that provides the year value for the new DateTimeOffset instance.
            An expression that provides the month value for the new DateTimeOffset instance.
            An expression that provides the day value for the new DateTimeOffset instance.
            An expression that provides the hour value for the new DateTimeOffset instance.
            An expression that provides the minute value for the new DateTimeOffset instance.
            An expression that provides the second value for the new DateTimeOffset instance.
            An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance.
        
        
            
            Creates a  that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time.
            
            A new DbFunctionExpression that returns a new Time based on the specified values.
            An expression that provides the hour value for the new DateTime instance.
            An expression that provides the minute value for the new DateTime instance.
            An expression that provides the second value for the new DateTime instance.
        
        
            
            Creates a  that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
            
            A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of years to add to dateValue.
        
        
            
            Creates a  that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
            
            A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of months to add to dateValue.
        
        
            
            Creates a  that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
            
            A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of days to add to dateValue.
        
        
            
            Creates a  that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of hours to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of minutes to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of seconds to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of milliseconds to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of microseconds to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
            
            A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue.
            An expression that specifies the value to which addValueshould be added.
            An expression that specifies the number of nanoseconds to add to timeValue.
        
        
            
            Creates a  that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2.
            An expression that specifies the first date value argument.
            An expression that specifies the second date value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2.
            An expression that specifies the first date value argument.
            An expression that specifies the second date value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2.
            An expression that specifies the first date value argument.
            An expression that specifies the second date value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2.
            An expression that specifies the first time value argument.
            An expression that specifies the second time value argument.
        
        
            
            Creates a  that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that rounds the specified argument to the nearest integer value.
            An expression that specifies the numeric value to round.
        
        
            
            Creates a  that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits.
            An expression that specifies the numeric value to round.
            An expression that specifies the number of digits of precision to use when rounding.
        
        
            
            Creates a  that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that returns the largest integer value not greater than value.
            An expression that specifies the numeric value.
        
        
            
            Creates a  that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that returns the smallest integer value not less than than value.
            An expression that specifies the numeric value.
        
        
            
            Creates a  that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that returns the absolute value of value.
            An expression that specifies the numeric value.
        
        
            
            Creates a  that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value.
            
            A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits.
            An expression that specifies the numeric value to truncate.
            An expression that specifies the number of digits of precision to use when truncating.
        
        
            
            Creates a  that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument.
            
            A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent.
            An expression that specifies the numeric value to raise to the given power.
            An expression that specifies the power to which baseArgument should be raised.
        
        
            
            Creates a  that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
            
            A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2.
            An expression that specifies the first operand.
            An expression that specifies the second operand.
        
        
            
            Creates a  that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
            
            A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2.
            An expression that specifies the first operand.
            An expression that specifies the second operand.
        
        
            
            Creates a  that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments.
            
            A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value.
            An expression that specifies the first operand.
        
        
            
            Creates a  that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
            
            A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2.
            An expression that specifies the first operand.
            An expression that specifies the second operand.
        
        
            
            Creates a  that invokes the canonical 'NewGuid' function.
            
            A new DbFunctionExpression that returns a new GUID value.
        
        
            
            Validates the input and sort key arguments to both DbSkipExpression and DbSortExpression.
            
             A list of SortClauses that specifies the sort order to apply to the input collection 
        
        
            
            Ensures that the  specified type is non-null, associated with the correct metadata workspace/dataspace, and is not NullType.
            
             The type usage instance to verify. 
            If the specified type metadata is null
            If the specified type metadata belongs to a metadata workspace other than the workspace of the command tree
            If the specified type metadata belongs to a dataspace other than the dataspace of the command tree
        
        
            
            Verifies that the specified member is valid - non-null, from the same metadata workspace and data space as the command tree, etc
            
             The member to verify 
             The name of the variable to which this member instance is being assigned 
        
        
            
            Verifies that the specified function metadata is valid - non-null and either created by this command tree (if a LambdaFunction) or from the same metadata collection and data space as the command tree (for ordinary function metadata)
            
             The function metadata to verify 
        
        
            
            Verifies that the specified EntitySet is valid with respect to the command tree
            
             The EntitySet to verify 
             The variable name to use if an exception should be thrown 
        
        
            
            Checks whether the clr enum type matched the edm enum type.
            
             Edm enum type. 
             Clr enum type. 
            
            true if types match otherwise false .
            
            
            The clr enum type matches the edm enum type if:
            - type names are the same
            - both types have the same underlying type (note that this prevents from over- and underflows)
            - the edm enum type does not have more members than the clr enum type
            - members have the same names
            - members have the same values
            
        
        
            
            Validates an input enumerable argument with a specific element type,
            converting each input element into an instance of a specific output element type,
            then producing a final result of another specific type.
            
             The element type of the input enumerable 
             The element type that input elements are converted to 
             The type of the final result 
        
        
            
            Validates the input enumerable, converting each input element and producing the final instance of
            
            as a result.
            
            
            The instance of  produced by calling the  function on the list of elements produced by calling the
            
            function on each element of the input enumerable.
            
            If the input enumerable itself is null
            
            If
            
            is a nullable type and any element of the input enumerable is null.
            
            
            If
            
            is set and the actual number of input elements is not equal to this value.
            
            
            If
            
            is -1,
            
            is set to
            false
            and the input enumerable is empty.
            
            
            If
            
            is set and a duplicate name is derived for more than one input element.
            
            
            Other exceptions may be thrown by the  and  functions, and by the
            
            function, if specified.
            
        
        
            
            Gets or sets a value that determines whether an exception is thrown if the enumerable argument is empty.
            
            
            AllowEmpty is ignored if  is set.
            If ExpectedElementCount is set to zero, an empty collection will not cause an exception to be thrown,
            even if AllowEmpty is set to false.
            
        
        
            
            Gets or set a value that determines the number of elements expected in the enumerable argument.
            A value of -1 indicates that any number of elements is permitted, including zero.
            Use  to disallow an empty list when ExpectedElementCount is set to -1.
            
        
        
            
            Gets or sets the function used to convert an element from the enumerable argument into an instance of
            the desired output element type. The position of the input element is also specified as an argument to this function.
            
        
        
            
            Gets or sets the function used to create the output collection from a list of converted enumerable elements.
            
        
        
            
            Gets or sets an optional function that can retrieve the name of an element from the enumerable argument.
            If this function is set, duplicate input element names will result in an exception. Null or empty names will
            not result in an exception. If specified, this function will be called after .
            
        
        
            
            Provides a constructor-like means of calling
            
            .
            
        
        
            
            Initializes a new instance of the  class with the specified first column value and optional successive column values.
            
            A key-value pair that provides the first column in the new row instance. (required)
            A key-value pairs that provide any subsequent columns in the new row instance. (optional)
        
        
            
            Creates a new  that constructs a new row based on the columns contained in this Row instance.
            
            A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance.
        
        
            
            Converts the given Row instance into an instance of 
            
             A DbExpression based on the Row instance 
            
            
            is null.
            
            
        
        
            
            Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself.
            
        
        
            
            Creates a  that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified value.
            An expression that provides the well known text representation of the geometry value.
        
        
            
            Creates a  that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified values.
            An expression that provides the well known text representation of the geometry value.
            An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry point value based on the specified values.
            An expression that provides the well known text representation of the geometry point value.
            An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry line value based on the specified values.
            An expression that provides the well known text representation of the geometry line value.
            An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry polygon value based on the specified values.
            An expression that provides the well known text representation of the geometry polygon value.
            An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values.
            An expression that provides the well known text representation of the geometry multi-point value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values.
            An expression that provides the well known text representation of the geometry multi-line value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values.
            An expression that provides the well known text representation of the geometry multi-polygon value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry collection value based on the specified values.
            An expression that provides the well known text representation of the geometry collection value.
            An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified binary value.
            An expression that provides the well known binary representation of the geometry value.
        
        
            
            Creates a  that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified values.
            An expression that provides the well known binary representation of the geometry value.
            An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry point value based on the specified values.
            An expression that provides the well known binary representation of the geometry point value.
            An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry line value based on the specified values.
            An expression that provides the well known binary representation of the geometry line value.
            An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry polygon value based on the specified values.
            An expression that provides the well known binary representation of the geometry polygon value.
            An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values.
            An expression that provides the well known binary representation of the geometry multi-point value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values.
            An expression that provides the well known binary representation of the geometry multi-line value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values.
            An expression that provides the well known binary representation of the geometry multi-polygon value.
            An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry collection value based on the specified values.
            An expression that provides the well known binary representation of the geometry collection value.
            An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider.
            An expression that provides the Geography Markup Language (GML) representation of the geometry value.
        
        
            
            Creates a  that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a new geometry value based on the specified values.
            An expression that provides the Geography Markup Language (GML) representation of the geometry value.
            An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider.
            
            A new DbFunctionExpression that returns a new geography value based on the specified value.
            An expression that provides the well known text representation of the geography value.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography value based on the specified values.
            An expression that provides the well known text representation of the geography value.
            An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyPointFromText' function with the specified arguments.
            
            The canonical 'GeographyPointFromText' function.
            An expression that provides the well-known text representation of the geography point value.
            An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue.
        
        
            
            Creates a  that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography line value based on the specified values.
            An expression that provides the well known text representation of the geography line value.
            An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography polygon value based on the specified values.
            An expression that provides the well known text representation of the geography polygon value.
            An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-point value based on the specified values.
            An expression that provides the well known text representation of the geography multi-point value.
            An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-line value based on the specified values.
            An expression that provides the well known text representation of the geography multi-line value.
            An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values.
            An expression that provides the well known text representation of the geography multi-polygon value.
            An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography collection value based on the specified values.
            An expression that provides the well known text representation of the geography collection value.
            An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography value based on the specified binary value.
            An expression that provides the well known binary representation of the geography value.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography value based on the specified values.
            An expression that provides the well known binary representation of the geography value.
            An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography point value based on the specified values.
            An expression that provides the well known binary representation of the geography point value.
            An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue.
        
        
            
            Creates a  that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography line value based on the specified values.
            An expression that provides the well known binary representation of the geography line value.
            An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography polygon value based on the specified values.
            An expression that provides the well known binary representation of the geography polygon value.
            An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-point value based on the specified values.
            An expression that provides the well known binary representation of the geography multi-point value.
            An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-line value based on the specified values.
            An expression that provides the well known binary representation of the geography multi-line value.
            An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values.
            An expression that provides the well known binary representation of the geography multi-polygon value.
            An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography collection value based on the specified values.
            An expression that provides the well known binary representation of the geography collection value.
            An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider.
            An expression that provides the Geography Markup Language (GML) representation of the geography value.
        
        
            
            Creates a  that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
            
            A new DbFunctionExpression that returns a new geography value based on the specified values.
            An expression that provides the Geography Markup Language (GML) representation of the geography value.
            An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
        
        
            
            Creates a  that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the integer SRID value from spatialValue.
            An expression that specifies the value from which the coordinate system id (SRID) should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
            
            A new DbFunctionExpression that returns the string Geometry Type name from spatialValue.
            An expression that specifies the value from which the Geometry Type name should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns the Dimension value from spatialValue.
            An expression that specifies the value from which the Dimension value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns the the minimum bounding box for geometryValue.
            An expression that specifies the value from which the Envelope value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary.
            
            A new DbFunctionExpression that returns the well known binary representation of spatialValue.
            An expression that specifies the spatial value from which the well known binary representation should be produced.
        
        
            
            Creates a  that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
            
            A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue.
            An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced.
        
        
            
            Creates a  that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
            
            A new DbFunctionExpression that returns the well known text representation of spatialValue.
            An expression that specifies the spatial value from which the well known text representation should be produced.
        
        
            
            Creates a  that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty.
            An expression that specifies the spatial value from which the IsEmptySptiaal value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry.
            The geometry value.
        
        
            
            Creates a  that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns the the boundary for geometryValue.
            An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid.
            An expression that specifies the geometry value which should be tested for spatial validity.
        
        
            
            Creates a  that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value that should be compared with spatialValue1 for equality.
        
        
            
            Creates a  that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness.
        
        
            
            Creates a  that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value that should be compared with spatialValue1 for intersection.
        
        
            
            Creates a  that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
        
        
            
            Creates a  that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
        
        
            
            Creates a  that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
        
        
            
            Creates a  that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
        
        
            
            Creates a  that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
        
        
            
            Creates a  that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean.
            
            A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix.
            An expression that specifies the first geometry value.
            An expression that specifies the geometry value that should be compared with geometryValue1.
            An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2.
        
        
            
            Creates a  that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue.
            An expression that specifies the spatial value.
            An expression that specifies the buffer distance.
        
        
            
            Creates a  that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type.  The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value from which the distance from spatialValue1 should be measured.
        
        
            
            Creates a  that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns the the convex hull for geometryValue.
            An expression that specifies the geometry value from which the convex hull value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
            
            A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed.
        
        
            
            Creates a  that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
            
            A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value for which the union with spatialValue1 should be computed.
        
        
            
            Creates a  that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
            
            A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value for which the difference with spatialValue1 should be computed.
        
        
            
            Creates a  that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
            
            A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1.
            An expression that specifies the first spatial value.
            An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed.
        
        
            
            Creates a  that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection.
            An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue.
            
            A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection.
            An expression that specifies the geography or geometry collection value.
            An expression that specifies the position of the element to be retrieved from within the geometry or geography collection.
        
        
            
            Creates a  that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point.
            An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point.
            An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point.
            An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point.
            An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point.
            An expression that specifies the geography point value from which the Latitude value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point.
            An expression that specifies the geography point value from which the Longitude value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve.
            An expression that specifies the spatial curve value from which the length should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue.
            
            A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve.
            An expression that specifies the spatial curve value from which the start point should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue.
            
            A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve.
            An expression that specifies the spatial curve value from which the end point should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean.
            
            A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve.
            An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean.
            
            A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve.
            An expression that specifies the geometry curve value from which the IsRing value should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string.
            An expression that specifies the spatial line string value from which the number of points should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue.
            
            A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string.
            An expression that specifies the spatial line string value.
            An expression that specifies the position of the point to be retrieved from within the line string.
        
        
            
            Creates a  that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
            
            A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface.
            An expression that specifies the spatial surface value for which the area should be calculated.
        
        
            
            Creates a  that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface.
            An expression that specifies the geometry surface value from which the centroid should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface.
            An expression that specifies the geometry surface value from which the point should be retrieved.
        
        
            
            Creates a  that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon.
            The geometry value.
        
        
            
            Creates a  that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32.
            
            A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon.
            The geometry value.
        
        
            
            Creates a  that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry.
            
            A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon.
            The geometry value.
            An expression that specifies the position of the interior ring to be retrieved from within the polygon.
        
        
            
            Ensures that all metadata in a given expression tree is from the specified metadata workspace,
            potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary.
            
        
        
            Initializes a new instance of the  class.
            The target workspace.
        
        
            Implements the visitor pattern for the entity set.
            The implemented visitor pattern.
            The entity set.
        
        
            Implements the visitor pattern for the function.
            The implemented visitor pattern.
            The function metadata.
        
        
            Implements the visitor pattern for the type.
            The implemented visitor pattern.
            The type.
        
        
            Implements the visitor pattern for the type usage.
            The implemented visitor pattern.
            The type.
        
        
            Implements the visitor pattern for retrieving an instance property.
            The implemented visitor.
            The expression.
        
        
            
            Enacapsulates the logic that defines an expression 'rule' which is capable of transforming a candidate
            
            into a result DbExpression, and indicating what action should be taken on that result expression by the rule application logic.
            
        
        
            
            Indicates whether  should be called on the specified argument expression.
            
            
            The  that the rule should inspect and determine if processing is possible
            
            
            true if the rule can attempt processing of the expression via the  method; otherwise false
            
        
        
            
            Attempts to process the input  to produce a 
            
            .
            
             The input expression that the rule should process 
             The result expression produced by the rule if processing was successful 
            
            true if the rule was able to successfully process the input expression and produce a result expression; otherwise false
            
        
        
            
            Indicates what action - as a  value - the rule processor should take if
            
            returns true.
            
        
        
            
            Indicates what action the rule processor should take if the rule successfully processes an expression.
            
        
        
            
            Continue to apply rules, from the rule immediately following this rule, to the result expression
            
        
        
            
            Going back to the first rule, apply all rules to the result expression
            
        
        
            
            Stop all rule processing and return the result expression as the final result expression
            
        
        
            
            Abstract base class for a DbExpression visitor that can apply a collection of s during the visitor pass, returning the final result expression.
            This class encapsulates the rule application logic that applies regardless of how the ruleset - modelled as the abstract
            
            method - is provided.
            
        
        
            
            Represents a boolean expression that tests whether a specified item matches any element in a list.
            
        
        
            
            The visitor pattern method for expression visitors that do not produce a result value.
            
             An instance of DbExpressionVisitor. 
            
            
            is null
            
        
        
            
            The visitor pattern method for expression visitors that produce a result value of a specific type.
            
             An instance of a typed DbExpressionVisitor that produces a result value of type TResultType. 
            
            The type of the result produced by 
            
            
            
            is null
            
            
            An instance of  .
            
        
        
            
            Gets a DbExpression that specifies the item to be matched.
            
        
        
            
            Gets the list of DbExpression to test for a match.
            
        
        
            
            Writes a description of a given expression, in a format determined by the specific implementation of a derived type
            
        
        
            
            Begins a new Dump block with the specified name
            
             The name of the block 
        
        
            
            Begins a new Dump block with the specified name and specified attributes
            
             The name of the block 
             The named attributes of the block. May be null 
        
        
            
            Ends the Dump block with the specified name.
            The caller should not assumer that this name will be verified
            against the last name used in a Begin call.
            
             The name of the block 
        
        
            
            Dumps a DbExpression by visiting it.
            
             The DbExpression to dump 
        
        
            
            Dumps a DbExpression with the specified block name preceeding and succeeding (decorating) it.
            
             The DbExpression to dump 
             The decorating block name 
        
        
            
            Dumps a DbExpressionBinding with the specified decoration
            
             The DbExpressionBinding to dump 
             The decorating block name 
        
        
            
            Dumps a DbExpressionBinding including its VariableName and DbExpression
            
             The DbExpressionBinding to dump 
        
        
            
            Dumps a DbGroupExpressionBinding with the specified decoration
            
             The DbGroupExpressionBinding to dump 
             The decorating block name 
        
        
            
            Dumps a DbGroupExpressionBinding including its VariableName, GroupVariableName and DbExpression
            
             The DbGroupExpressionBinding to dump 
        
        
            
            Dumps each DbExpression in the specified enumerable. The entire output is decorated with the 'pluralName'
            block name while each element DbExpression is decorated with the 'singularName' block name.
            If the list is empty only the pluralName decoration start/end will appear.
            
             The enumerable list of Expressions to dump 
             The overall list decoration block name 
             The decoration block name that will be applied to each element DbExpression 
        
        
            
            Dumps each Parameter metadata in the specified enumerable. The entire output is decorated with the "Parameters"
            block name while each metadata element is decorated with the "Parameter" block name.
            If the list is empty only the "Parameters" decoration start/end will appear.
            
             The enumerable list of Parameter metadata to dump 
        
        
            
            Dumps the specified Type metadata instance with the specified decoration
            
             The Type metadata to dump 
             The decorating block name 
        
        
            
            Dumps the specified Type metadata instance
            
             The Type metadata to dump 
        
        
            
            Dumps the specified EDM type metadata instance with the specified decoration
            
             The type metadata to dump 
             The decorating block name 
        
        
            
            Dumps the specified type metadata instance
            
             The type metadata to dump 
        
        
            
            Dumps the specified Relation metadata instance with the specified decoration
            
             The Relation metadata to dump 
             The decorating block name 
        
        
            
            Dumps the specified Relation metadata instance
            
             The Relation metadata to dump 
        
        
            
            Dumps the specified EdmFunction metadata instance
            
             The EdmFunction metadata to dump. 
        
        
            
            Dumps the specified EdmProperty metadata instance
            
             The EdmProperty metadata to dump 
        
        
            
            Dumps the specified Relation End EdmMember metadata instance with the specified decoration
            
             The Relation End metadata to dump 
             The decorating block name 
        
        
            
            Dumps the specified Navigation Property EdmMember metadata instance with the specified decoration
            
             The Navigation Property metadata to dump 
             The decorating block name 
        
        
            
            Dumps the specified DbLambda instance
            
             The DbLambda to dump. 
        
        
            
            Generates a key for a command tree.
            
        
        
            
            Prints a command tree
            
        
        
            
            Generates a formatted string from a hierarchy of tree nodes. Derived types may override
            the PreProcess, Before/AfterAppend, Print, PrintNode and PrintChildren methods to add
            specific functionality at particular points in process of building the string.
            
        
        
            
            Entry point method for the TreePrinter
            
             The TreeNode instance that is the root of the tree to be printed 
             A string representation of the specified tree 
        
        
            
            Called once on the root of the tree before printing begins
            
             The TreeNode that is the root of the tree 
        
        
            
            Called once for every node after indentation, connecting lines and the node's text value
            have been added to the output but before the line suffix (if any) has been added.
            
             The current node 
             The StringBuilder into which the tree is being printed 
        
        
            
            Called once for every node immediately after the line prefix (if any) and appropriate
            indentation and connecting lines have been added to the output but before the node's
            text value has been added.
            
             The current node 
             The StringBuilder into which the tree is being printed 
        
        
            
            The recursive step of the printing process, called once for each TreeNode in the tree
            
             The StringBuilder into which the tree is being printed 
             The current node that should be printed to the StringBuilder 
        
        
            
            Called to recursively visit the child nodes of the current TreeNode.
            
             The StringBuilder into which the tree is being printed 
             The current node 
        
        
            
            PatternMatchRule is a specialization of  that uses a Func<DbExpression, bool> 'pattern'
            to implement  and a Func<DbExpression, DbExpression> 'processor' to implement
            . The 'processor' should return null to indicate that the expression was not
            successfully processed, otherwise it should return the new result expression.
            
        
        
            
            Constructs a new PatternMatch rule with the specified pattern, processor and default
            
            of 
            
        
        
            
            Constructs a new PatternMatchRule with the specified pattern, processor and
            
            
        
        
            
            PatternMatchRuleProcessor is a specialization of  that uses a collection of
            
            s
            as its ruleset. The static Create methods can be used to construct a new PatternMatchRuleProcessor that applies the specified PatternMatchRules, which is
            returned as a Func<DbExpression, DbExpression> that can be invoked directly on an expression to apply the ruleset to it.
            
        
        
            
            Provides a means of constructing Func<DbExpression, bool> 'patterns' for use with
            
            s.
            
        
        
            
            Constructs a new pattern that is matched iff both  and  are matched. Does NOT return a pattern that matches
            
            . Use  with an argument of  to match an AND expression
            
        
        
            
            Constructs a new pattern that is matched iff all of ,  and
            
            are matched. Does NOT return a pattern that matches . Use
            
            with an argument of  to match an AND expression
            
        
        
            
            Constructs a new pattern that is matched if either  or  are matched. Does NOT return a pattern that matches
            
            . Use  with an argument of  to match an OR expression
            
        
        
            
            Constructs a new pattern that is matched if either ,  or
            
            are matched. Does NOT return a pattern that matches . Use
            
            with an argument of  to match an OR expression
            
        
        
            
            Constructs a new pattern that will match an expression with the specified .
            
        
        
            
            Constructs a new pattern that will match iff the specified pattern argument is matched for all expressions in the collection argument.
            
        
        
            
            Returns a pattern that is matched if the argument expression is a 
            
        
        
            
            Constructs a new pattern that is matched iff the argument expression is a  with input and predicate subexpressions that match the corresponding
            
            and  patterns
            
        
        
            
            Constructs a new pattern that is matched iff the argument expression is a  with input and projection subexpressions that match the corresponding
            
            and  patterns
            
        
        
            
            Constructs a new pattern that is matched iff the argument expression is a  with 'when' and 'then' subexpression lists that match the specified
            
            and  collection patterns and an 'else' subexpression that matches the specified
            
            expression pattern
            
        
        
            
            Gets a pattern that is matched if the argument expression is a . This property can be used instead of repeated calls to
            
            with an argument of 
            
        
        
            
            Constructs a new pattern that is matched iff the argument expression is a  with arguments that match the specified collection pattern
            
        
        
            
            Returns a pattern that will match any expression, returning true for any argument, including null.
            
        
        
            
            Returns a pattern that will match any collection of expressions, returning true for any argument, including a null or empty enumerable.
            
        
        
            
            Returns a pattern that is matched if the argument has a complex result type
            
        
        
            
            Returns a pattern that is matched if the argument has an entity result type
            
        
        
            
            Returns a pattern that is matched if the argument has a row result type
            
        
        
            
            Utility class that walks a mapping view and returns a simplified expression with projection
            nodes collapsed. Specifically recognizes the following common pattern in mapping views:
            outerProject(outerBinding(innerProject(innerBinding, innerNew)), outerProjection)
            Recognizes simple disciminator patterns of the form:
            select
            case when Disc = value1 then value Type1(...)
            case when Disc = value2 then value Type2(...)
            ...
            Recognizes redundant case statement of the form:
            select
            case when (case when Predicate1 then true else false) ...
            
        
        
            
            Matches the nested TPH discriminator pattern produced by view generation
            
        
        
            
            Converts the DbExpression equivalent of:
            SELECT CASE
            WHEN a._from0 THEN SUBTYPE1()
            ...
            WHEN a._from[n-2] THEN SUBTYPE_n-1()
            ELSE SUBTYPE_n
            FROM
            SELECT
            b.C1..., b.Cn
            CASE WHEN b.Discriminator = SUBTYPE1_Value THEN true ELSE false AS _from0
            ...
            CASE WHEN b.Discriminator = SUBTYPE_n_Value THEN true ELSE false AS _from[n-1]
            FROM TSet AS b
            WHERE b.Discriminator = SUBTYPE1_Value... OR x.Discriminator = SUBTYPE_n_Value
            AS a
            WHERE a._from0... OR a._from[n-1]
            into the DbExpression equivalent of the following, which is matched as a TPH discriminator
            by the  class and so allows a
            
            to be produced for the view, which would not otherwise be possible. Note that C1 through Cn
            are only allowed to be scalars or complex type constructors based on direct property references
            to the store entity set's scalar properties.
            SELECT CASE
            WHEN y.Discriminator = SUBTTYPE1_Value THEN SUBTYPE1()
            ...
            WHEN y.Discriminator = SUBTYPE_n-1_Value THEN SUBTYPE_n-1()
            ELSE SUBTYPE_n()
            FROM
            SELECT x.C1..., x.Cn, Discriminator FROM TSet AS x
            WHERE x.Discriminator = SUBTYPE1_Value... OR x.Discriminator = SUBTYPE_n_Value
            AS y
            
        
        
            
            Matches any Case expression
            
        
        
            
            Determines if an expression is of the form outerProject(outerProjection(innerProject(innerNew)))
            
        
        
            
            Collapses outerProject(outerProjection(innerProject(innerNew)))
            
        
        
            
            This expression visitor supports collapsing a nested projection matching the pattern described above.
            For instance:
            select T.a as x, T.b as y, true as z from (select E.a as x, E.b as y from Extent E)
            resolves to:
            select E.a, E.b, true as z from Extent E
            In general,
            outerProject(
            outerBinding(
            innerProject(innerBinding, innerNew)
            ),
            outerNew)
            resolves to:
            replacementOuterProject(
            innerBinding,
            replacementOuterNew)
            The outer projection is bound to the inner input source (outerBinding -> innerBinding) and
            the outer new instance expression has its properties remapped to the inner new instance
            expression member expressions.
            This replacer is used to simplify argument value in a new instance expression OuterNew
            from an expression of the form:
            outerProject(outerBinding(innerProject(innerBinding, innerNew)), outerProjection)
            The replacer collapses the outer project terms to point at the innerNew expression.
            Where possible, VarRef_outer.Property_outer is collapsed to VarRef_inner.Property.
            
        
        
            
            Heuristic check to make sure the var ref is the one we're supposed to be replacing.
            
        
        
            
            Returns a value indicating that the transformation has failed.
            
        
        
            
            An implementation of ExpressionDumper that produces an XML string.
            
        
        
            
            Represents the retrieval of the key value of the specified Reference as a row.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Represents the set union (without duplicate removal) operation between the left and right operands.
            
            
            DbUnionAllExpression requires that its arguments have a common collection result type
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            
            Represents a 'scan' of all elements of a given entity set.
            
        
        
            Implements the visitor pattern for expressions that do not produce a result value.
            
            An instance of .
            
             visitor  is null.
        
        
            Implements the visitor pattern for expressions that produce a result value of a specific type.
            
            A result value of a specific type produced by
            
            .
            
            
            An instance of a typed  that produces a result value of a specific type.
            
            The type of the result produced by  visitor .
             visitor  is null.
        
        
            Gets the metadata for the referenced entity or relationship set.
            The metadata for the referenced entity or relationship set.
        
        
            
            Extension methods for .
            
        
        
            
            Gets the conceptual model from the specified DbModel.
            
            An instance of a class that implements IEdmModelAdapter (ex. DbModel).
            An instance of EdmModel that represents the conceptual model.
        
        
            
            Gets the store model from the specified DbModel.
            
            An instance of a class that implements IEdmModelAdapter (ex. DbModel).
            An instance of EdmModel that represents the store model.
        
        
            
            An interface to get the underlying store and conceptual model for a .
            
        
        
            
            Gets the conceptual model.
            
        
        
            
            Gets the store model.
            
        
        
            
            Gets a  from a string
            
             string containing multiplicity definition 
             multiplicity value (-1 if there were errors) 
             true if the string was parsable, false otherwise 
        
        
            
            Thrown when an error occurs commiting a transaction.
            
        
        
            
            Initializes a new instance of 
            
        
        
            
            Initializes a new instance of 
            
             The exception message. 
        
        
            
            Initializes a new instance of 
            
             The exception message. 
             The inner exception. 
        
        
            
            Initializes a new instance of the  class.
            
            The data necessary to serialize or deserialize an object.
            Description of the source and destination of the specified serialized stream.
        
        
            
            Resolves dependencies from a config file.
            
        
        
            
            This interface is implemented by any object that can resolve a dependency, either directly
            or through use of an external container.
            
            
            The public services currently resolved using IDbDependencyResolver are documented here:
            http://msdn.microsoft.com/en-us/data/jj680697
            
        
        
            
            Attempts to resolve a dependency for a given contract type and optionally a given key.
            If the resolver cannot resolve the dependency then it must return null and not throw. This
            allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers
            can be asked to resolve a dependency until one finally does.
            
             The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type. 
             Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. 
             The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved. 
        
        
            
            Attempts to resolve a dependencies for a given contract type and optionally a given key.
            If the resolver cannot resolve the dependency then it must return an empty enumeration and
            not throw. This method differs from  in that it returns all registered
            services for the given type and key combination.
            
             The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type. 
             Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. 
             All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved. 
        
        
            
            For testing.
            
        
        
            
            This class wraps another  such that the resolutions
            made by that resolver are cached in a thread-safe manner.
            
        
        
            
            Implements a Composite pattern for  such that if the first
            resolver can't resolve the dependency then the second resolver will be used.
            
        
        
            
            Event arguments passed to  event handlers.
            
        
        
            
            Call this method to add a  instance to the Chain of
            Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework.
            
            
            Resolvers are asked to resolve dependencies in reverse order from which they are added. This means
            that a resolver can be added to override resolution of a dependency that would already have been
            resolved in a different way.
            The only exception to this is that any dependency registered in the application's config file
            will always be used in preference to using a dependency resolver added here, unless the
            overrideConfigFile is set to true in which case the resolver added here will also override config
            file settings.
            
             The resolver to add. 
            If true, then the resolver added will take precedence over settings in the config file.
        
        
            
            Call this method to add a  instance to the Chain of Responsibility
            of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver
            method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only
            be used to resolve a dependency that could not be resolved by any of the other resolvers.
            
             The resolver to add. 
        
        
            
            Adds a wrapping resolver to the configuration that is about to be locked. A wrapping
            resolver is a resolver that incepts a service would have been returned by the resolver
            chain and wraps or replaces it with another service of the same type.
            
            The type of service to wrap or replace.
            A delegate that takes the unwrapped service and key and returns the wrapped or replaced service.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Returns a snapshot of the  that is about to be locked.
            Use the GetService methods on this object to get services that have been registered.
            
        
        
            
            Searches types (usually obtained from an assembly) for different kinds of .
            
        
        
            
            This class is responsible for managing the app-domain instance of the  class.
            This includes loading from config, discovery from the context assembly and pushing/popping configurations
            used by .
            
        
        
            
            An  implementation used for resolving 
            factories.
            
            
            This class can be used by  to aid in the resolving
            of  factories as a default service for the provider.
            
            The type of execution strategy that is resolved.
        
        
            
            Initializes a new instance of 
            
             The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used. 
            
            A string that will be matched against the server name in the connection string. null will match anything.
            
            A function that returns a new instance of an execution strategy.
        
        
            
            If the given type is , then this resolver will attempt
            to return the service to use, otherwise it will return null. When the given type is
            Func{IExecutionStrategy}, then the key is expected to be an .
            
            The service type to resolve.
            A key used to make a determination of the service to return.
            
            An , or null.
            
        
        
            
            If the given type is , then this resolver will attempt
            to return the service to use, otherwise it will return an empty enumeration. When the given type is
            Func{IExecutionStrategy}, then the key is expected to be an .
            
            The service type to resolve.
            A key used to make a determination of the service to return.
            
            An , or an empty enumeration.
            
        
        
            
            Extension methods to call the  method using
            a generic type parameter and/or no name.
            
        
        
            
            Calls  passing the generic type of the method and the given
            name as arguments.
            
             The contract type to resolve. 
             The resolver to use. 
             The key of the dependency to resolve. 
             The resolved dependency, or null if the resolver could not resolve it. 
        
        
            
            Calls  passing the generic type of the method as
            the type argument and null for the name argument.
            
             The contract type to resolve. 
             The resolver to use. 
             The resolved dependency, or null if the resolver could not resolve it. 
        
        
            
            Calls  passing the given type argument and using
            null for the name argument.
            
             The resolver to use. 
             The contract type to resolve. 
             The resolved dependency, or null if the resolver could not resolve it. 
        
        
            
            Calls  passing the generic type of the method and the given
            name as arguments.
            
             The contract type to resolve. 
             The resolver to use. 
             The key of the dependency to resolve. 
             All resolved dependencies, or an  if no services are resolved.
        
        
            
            Calls  passing the generic type of the method as
            the type argument and null for the name argument.
            
             The contract type to resolve. 
             The resolver to use. 
             All resolved dependencies, or an  if no services are resolved.
        
        
            
            Calls  passing the given type argument and using
            null for the name argument.
            
             The resolver to use. 
             The contract type to resolve. 
             All resolved dependencies, or an  if no services are resolved.
        
        
            
            This is a helper method that can be used in an  implementation 
            such that an empty list is returned if the  returns null
            and a list of one element is returned if GetService returns one element.
            
            The resolver.
             The contract type to resolve. 
             The key of the dependency to resolve. 
            A list of either zero or one elements.
        
        
            
            Internal implementation for the DbConfiguration class that uses instance methods to facilitate testing
            while allowing use static methods on the public API which require less dotting through.
            
        
        
            
            This method is not thread-safe and should only be used to switch in a different root resolver
            before the configuration is locked and set. It is used for pushing a new configuration by
            DbContextInfo while maintaining legacy settings (such as database initializers) that are
            set on the root resolver.
            
        
        
            
            The Singleton instance of  for this app domain. This can be
            set at application start before any Entity Framework features have been used and afterwards
            should be treated as read-only.
            
        
        
            
            Used for testing.
            
        
        
            
            Because Equals is overridden; not currently used.
            
        
        
            
            Responsible for obtaining  Singleton instances.
            
        
        
            
            Chain-of-Responsibility implementation for  instances.
            
            
            When GetService is called each resolver added to the chain is called in turn until one
            returns a non-null value. If all resolvers in the chain return null, then GetService
            returns null. Resolvers are called in the reverse order to which they are added so that
            the most recently added resolvers get a chance to resolve first.
            This class is thread-safe.
            
        
        
            
            Adds a new resolver to the top of the chain.
            
            The resolver to add.
        
        
            
            Calls GetService on each resolver in the chain in turn and returns the first non-null value
            or returns null if all GetService calls return null. Resolvers are called in the reverse order
            to which they are added so that the most recently added resolvers get a chance to resolve first.
            
            The type of service to resolve.
            
            An optional key value which may be used to determine the service instance to create.
            
            The resolved service, or null if no resolver in the chain could resolve the service.
        
        
            
            Calls GetServices with the given type and key on each resolver in the chain and concatenates all
            the results into a single enumeration.
            
            The type of service to resolve.
            
            An optional key value which may be used to determine the service instance to create.
            
            All the resolved services, or an empty enumeration if no resolver in the chain could resolve the service.
        
        
            
            Gets the resolvers in the chain in the order that they will be called to
            resolve a dependency.
            
        
        
            
            This resolver is always the last resolver in the internal resolver chain and is
            responsible for providing the default service for each dependency or throwing an
            exception if there is no reasonable default service.
            
        
        
            
        
        
            
            Implements  to resolve a dependency such that it always returns
            the same instance.
            
             The type that defines the contract for the dependency that will be resolved. 
            
            This class is immutable such that instances can be accessed by multiple threads at the same time.
            
        
        
            
            Constructs a new resolver that will return the given instance for the contract type
            regardless of the key passed to the Get method.
            
             The instance to return. 
        
        
            
            Constructs a new resolver that will return the given instance for the contract type
            if the given key matches exactly the key passed to the Get method.
            
             The instance to return. 
             Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key. 
        
        
            
            Constructs a new resolver that will return the given instance for the contract type
            if the given key matches the key passed to the Get method based on the given predicate.
            
             The instance to return. 
             A predicate that takes the key object and returns true if and only if it matches. 
        
        
            
        
        
            
        
        
            
            Used for dispatching operations to a  such that any 
            interceptors that are registered on  will be notified before and after the
            operation executes.
            Instances of this class are obtained through the the  fluent API.
            
            
            This class is used internally by Entity Framework when executing commands. It is provided publicly so that
            code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is
            typically done by EF providers that are executing commands on behalf of EF.
            
        
        
            
            Sends  and
             to any  
            interceptors that are registered on  before/after making a
            call to .
            
            
            Note that the result of executing the command is returned by this method. The result is not available
            in the interception context passed into this method since the interception context is cloned before
            being passed to interceptors.
            
            The command on which the operation will be executed.
            Optional information about the context of the call being made.
            The result of the operation, which may have been modified by interceptors.
        
        
            
            Sends  and
             to any  
            interceptors that are registered on  before/after making a
            call to .
            
            
            Note that the result of executing the command is returned by this method. The result is not available
            in the interception context passed into this method since the interception context is cloned before
            being passed to interceptors.
            
            The command on which the operation will be executed.
            Optional information about the context of the call being made.
            The result of the operation, which may have been modified by interceptors.
        
        
            
            Sends  and
             to any  
            interceptors that are registered on  before/after making a
            call to .
            
            
            Note that the result of executing the command is returned by this method. The result is not available
            in the interception context passed into this method since the interception context is cloned before
            being passed to interceptors.
            
            The command on which the operation will be executed.
            Optional information about the context of the call being made.
            The result of the operation, which may have been modified by interceptors.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Represents contextual information associated with calls into 
            implementations.
            
            
            An instance of this class is passed to the dispatch methods of 
            and does not contain mutable information such as the result of the operation. This mutable information
            is obtained from the  that is passed to the interceptors.
            Instances of this class are publicly immutable. To add contextual information use one of the
            With... or As... methods to create a new interception context containing the new information.
            
        
        
            
            Represents contextual information associated with calls into 
            implementations.
            
            
            Note that specific types/operations that can be intercepted may use a more specific
            interception context derived from this class. For example, if SQL is being executed by
            a , then the DbContext will be contained in the
             instance that is passed to the methods
            of .
            Instances of this class are publicly immutable for contextual information. To add
            contextual information use one of the With... or As... methods to create a new
            interception context containing the new information.
            
        
        
            
            Constructs a new  with no state.
            
        
        
            
            Creates a new  by copying state from the given
            interception context. See 
            
            The context from which to copy state.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context the  flag set to true.
            
            A new interception context associated with the async flag set.
        
        
            
            Call this method when creating a copy of an interception context in order to add new state
            to it. Using this method instead of calling the constructor directly ensures virtual dispatch
            so that the new type will have the same type (and any specialized state) as the context that
            is being cloned.
            
            A new context with all state copied.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets all the  instances associated with this interception context.
            
            
            This list usually contains zero or one items. However, it can contain more than one item if
            a single  has been used to construct multiple 
            instances.
            
        
        
            
            Gets all the  instances associated with this interception context.
            
            
            This list usually contains zero or one items. However, it can contain more than one item when
            EF has created a new  for use in database creation and initialization, or
            if a single  is used with multiple .
            
        
        
            
            True if the operation is being executed asynchronously, otherwise false.
            
        
        
            
            Constructs a new  with no state.
            
        
        
            
            Creates a new  by copying state from the given
            interception context. Also see 
            
            The context from which to copy state.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context together with the given .
            
            The command behavior to associate.
            A new interception context associated with the given command behavior.
        
        
            
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context the  flag set to true.
            
            A new interception context associated with the async flag set.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            The  that will be used or has been used to execute the command with a
            . This property is only used for 
            and its async counterparts.
            
        
        
            
            Represents contextual information associated with calls into 
            implementations including the result of the operation.
            
            
            Instances of this class are publicly immutable for contextual information. To add
            contextual information use one of the With... or As... methods to create a new
            interception context containing the new information.
            
        
        
            
            Constructs a new  with no state.
            
        
        
            
            Creates a new  by copying state from the given
            interception context. Also see 
            
            The context from which to copy state.
        
        
            
            Prevents the operation from being executed if called before the operation has executed.
            
            
            Thrown if this method is called after the
            operation has already executed.
            
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context together with the  flag set to true.
            
            A new interception context associated with the async flag set.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context together with the given .
            
            The command behavior to associate.
            A new interception context associated with the given command behavior.
        
        
            
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            If execution of the operation completes without throwing, then this property will contain
            the result of the operation. If the operation was suppressed or did not fail, then this property
            will always contain the default value for the generic type.
            
            
            When an operation operation completes without throwing both this property and the 
            property are set. However, the  property can be set or changed by interceptors,
            while this property will always represent the actual result returned by the operation, if any.
            
        
        
            
            If this property is set before the operation has executed, then execution of the operation will
            be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then
            this property will be set to the returned result. In either case, interceptors that run
            after the operation can change this property to change the result that will be returned.
            
            
            When an operation operation completes without throwing both this property and the 
            property are set. However, this property can be set or changed by interceptors, while the
             property will always represent the actual result returned by the
            operation, if any.
            
        
        
            
            When true, this flag indicates that that execution of the operation has been suppressed by
            one of the interceptors. This can be done before the operation has executed by calling
            , by setting an  to be thrown, or
            by setting the operation result using .
            
        
        
            
            If execution of the operation fails, then this property will contain the exception that was
            thrown. If the operation was suppressed or did not fail, then this property will always be
            null.
            
            
            When an operation fails both this property and the  property are set
            to the exception that was thrown. However, the  property can be set or
            changed by interceptors, while this property will always represent the original exception
            thrown.
            
        
        
            
            If this property is set before the operation has executed, then execution of the operation will
            be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then
            this property will be set to the exception that was thrown. In either case, interceptors that run
            after the operation can change this property to change the exception that will be thrown, or set this
            property to null to cause no exception to be thrown at all.
            
            
            When an operation fails both this property and the  property are set
            to the exception that was thrown. However, the this property can be set or changed by
            interceptors, while the  property will always represent
            the original exception thrown.
            
        
        
            
            Set to the status of the  after an async operation has finished. Not used for
            synchronous operations.
            
        
        
            
            Base class that implements . This class is a convenience for
            use when only one or two methods of the interface actually need to have any implementation.
            
        
        
            
            An object that implements this interface can be registered with  to
            receive notifications when Entity Framework executes commands.
            
        
        
            
            This is the base interface for all interfaces that provide interception points for various
            different types and operations. For example, see .
            Interceptors are registered on the  class.
            
        
        
            
            This method is called before a call to  or
            one of its async counterparts is made.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to   or
            one of its async counterparts is made. This method should return the given result.
            However, the result used by Entity Framework can be changed by returning a different value.
            
            
            For async operations this method is not called until after the async task has completed
            or failed.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called before a call to   or
            one of its async counterparts is made.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to   or
            one of its async counterparts is made. This method should return the given result. However, the
            result used by Entity Framework can be changed by returning a different value.
            
            
            For async operations this method is not called until after the async task has completed
            or failed.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called before a call to   or
            one of its async counterparts is made.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to   or
            one of its async counterparts is made. This method should return the given result.
            However, the result used by Entity Framework can be changed by returning a different value.
            
            
            For async operations this method is not called until after the async task has completed
            or failed.
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            This is the default log formatter used when some  is set onto the 
            property. A different formatter can be used by creating a class that inherits from this class and overrides
            some or all methods to change behavior.
            
            
            To set the new formatter create a code-based configuration for EF using  and then
            set the formatter class to use with .
            Note that setting the type of formatter to use with this method does change the way command are
            logged when  is used. It is still necessary to set a 
            onto  before any commands will be logged.
            For more low-level control over logging/interception see  and
            .
            
        
        
            
            Creates a formatter that will not filter by any  and will instead log every command
            from any context and also commands that do not originate from a context.
            
            
            This constructor is not used when a delegate is set on . Instead it can be
            used by setting the formatter directly using .
            
            The delegate to which output will be sent.
        
        
            
            Creates a formatter that will only log commands the come from the given  instance.
            
            
            This constructor must be called by a class that inherits from this class to override the behavior
            of .
            
            The context for which commands should be logged.
            The delegate to which output will be sent.
        
        
            
            Writes the given string to the underlying write delegate.
            
            The string to write.
        
        
            
            This method is called before a call to  or
            one of its async counterparts is made.
            The default implementation calls  and starts .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to  or
            one of its async counterparts is made.
            The default implementation stops  and calls .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called before a call to  or
            one of its async counterparts is made.
            The default implementation calls  and starts .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to  or
            one of its async counterparts is made.
            The default implementation stops  and calls .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called before a call to   or
            one of its async counterparts is made.
            The default implementation calls  and starts .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            This method is called after a call to   or
            one of its async counterparts is made.
            The default implementation stops  and calls .
            
            The command being executed.
            Contextual information associated with the call.
        
        
            
            Called whenever a command is about to be executed. The default implementation of this method
            filters by  set into , if any, and then calls
            . This method would typically only be overridden to change the
            context filtering behavior.
            
            The command that will be executed.
            Contextual information associated with the command.
        
        
            
            Called whenever a command has completed executing. The default implementation of this method
            filters by  set into , if any, and then calls
            . This method would typically only be overridden to change the context
            filtering behavior.
            
            The command that was executed.
            Contextual information associated with the command.
        
        
            
            Called to log a command that is about to be executed. Override this method to change how the
            command is logged to .
            
            The command to be logged.
            Contextual information associated with the command.
        
        
            
            Called by  to log each parameter. This method can be called from an overridden
            implementation of  to log parameters, and/or can be overridden to
            change the way that parameters are logged to .
            
            The command being logged.
            Contextual information associated with the command.
            The parameter to log.
        
        
            
            Called to log the result of executing a command. Override this method to change how results are
            logged to .
            
            The command being logged.
            Contextual information associated with the command.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            The context for which commands are being logged, or null if commands from all contexts are
            being logged.
            
        
        
            
            The stop watch used to time executions. This stop watch is started at the end of
            , , and 
            methods and is stopped at the beginning of the , ,
            and  methods. If these methods are overridden and the stop watch is being used
            then the overrides should either call the base method or start/stop the watch themselves.
            
        
        
            
            Represents contextual information associated with calls into 
            implementations.
            
            
            Instances of this class are publicly immutable for contextual information. To add
            contextual information use one of the With... or As... methods to create a new
            interception context containing the new information.
            
        
        
            
            Constructs a new  with no state.
            
        
        
            
            Creates a new  by copying state from the given
            interception context. Also see 
            
            The context from which to copy state.
        
        
            
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context with the addition of the given .
            
            The context to associate.
            A new interception context associated with the given context.
        
        
            
            Creates a new  that contains all the contextual information in this
            interception context the  flag set to true.
            
            A new interception context associated with the async flag set.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            The original tree created by Entity Framework. Interceptors can change the
             property to changes the tree that will be used, but the
             will always be the tree created by Entity Framework.
            
        
        
            
            The command tree that will be used by Entity Framework. This starts as tree contained in the 
            the  property but can be changed by interceptors to change
            the tree that will be used by Entity Framework.
            
        
        
            
            This is the registration point for  interceptors. Interceptors
            receive notifications when EF performs certain operations such as executing commands against
            the database. For example, see .
            
        
        
            
            Registers a new  to receive notifications. Note that the interceptor
            must implement some interface that extends from  to be useful.
            
            The interceptor to add.
        
        
            
            Removes a registered  so that it will no longer receive notifications.
            If the given interceptor is not registered, then this is a no-op.
            
            The interceptor to remove.
        
        
            
            This is the entry point for dispatching to interceptors. This is usually only used internally by
            Entity Framework but it is provided publicly so that other code can make sure that registered
            interceptors are called when operations are performed on behalf of EF. For example, EF providers
            a may make use of this when executing commands.
            
        
        
            
            Provides access to all dispatchers through the the  fluent API.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Provides methods for dispatching to  interceptors for
            interception of methods on .
            
        
        
            
            An object that implements this interface can be registered with  to
            receive notifications when Entity Framework creates  command trees.
            
        
        
            
            This method is called after a new  has been created.
            The tree that is used after interception can be changed by setting
             while intercepting.
            
            
            Command trees are created for both queries and insert/update/delete commands. However, query
            command trees are cached by model which means that command tree creation only happens the
            first time a query is executed and this notification will only happen at that time
            
            Contextual information associated with the call.
        
        
            
            Used for design-time scenarios where the user's code needs to be executed inside
            of an isolated, runtime-like .
            
            Instances of this class should be created inside of the guest domain.
            Handlers should be created inside of the host domain. To invoke operations,
            create instances of the nested classes inside 
            
        
        
            
            Initializes a new instance of the  class. Do this inside of the guest
            domain.
            
            The path for the assembly containing the user's code.
            The parameter is not used.
        
        
            
            Used to get the assembly-qualified name of the DbProviderServices type for the
            specified provider invariant name.
            
        
        
            
            Initializes a new instance of the  class. Do this inside of
            the guest domain.
            
            The executor used to execute this operation.
            An object to handle callbacks during the operation.
            The provider's invariant name.
            The parameter is not used.
            
        
        
            
            This is a small piece of Remoting magic. It enables us to invoke methods on a
            remote object without knowing its actual type. The only restriction is that the
            names and shapes of the types and their members must be the same on each side of
            the boundary.
            
        
        
            
            Intercepts method invocations on the object represented by the current instance
            and forwards them to the target to finish processing.
            
        
        
            
            Base handler type. Handlers aren't required to use this exact type. Only the
            namespace, name, and member signatures need to be the same. This also applies to
            handler contracts types
            
        
        
            
            Indicates whether the specified contract is implemented by this handler.
            
            The full name of the contract interface.
            True if the contract is implemented, otherwise false.
        
        
            
            A contract handlers can use to accept a single result.
            
            
        
        
            
            Sets the result.
            
            The result.
        
        
            
            Wraps a handler. If the handler does not implement a contract, calling its
            operations will result in a no-op.
            
        
        
            
            Represents a mapping view.
            
        
        
            
            Creates a  instance having the specified entity SQL.
            
            A string that specifies the entity SQL.
        
        
            
            Gets the entity SQL.
            
        
        
            
            Base abstract class for mapping view cache implementations.
            Derived classes must have a parameterless constructor if used with .
            
        
        
            
            Gets a view corresponding to the specified extent.
            
            An  that specifies the extent.
            A  that specifies the mapping view, 
            or null if the extent is not associated with a mapping view.
        
        
            
            Gets a hash value computed over the mapping closure.
            
        
        
            
            Specifies the means to create concrete  instances.
            
        
        
            
            Creates a generated view cache instance for the container mapping specified by
            the names of the mapped containers.
            
            The name of a container in the conceptual model.
            The name of a container in the store model.
            
            A  that specifies the generated view cache.
            
        
        
            
            Creates a concrete  corresponding to the specified container mapping.
            
            
            A mapping between a container in the conceptual model and a container in
            the store model.
            
            
            A concrete , or null if a creator was not found.
            
        
        
            
            Defines a custom attribute that specifies the mapping view cache type (subclass of )
            associated with a context type (subclass of  or ).
            The cache type is instantiated at runtime and used to retrieve pre-generated views in the
            corresponding context.
            
        
        
            
            Creates a   instance that associates a context type
            with a mapping view cache type.
            
            
            A subclass of  or .
            
            
            A subclass of .
            
        
        
            
            Creates a  instance that associates a context type
            with a mapping view cache type.
            
            
            A subclass of  or .
            
            The assembly qualified full name of the cache type.
        
        
            
            Gets the context type that is associated with the mapping view cache type.
            
        
        
            
            Gets the type that implements the mapping view cache.
            
        
        
            
            Provides a default DbMappingViewCacheFactory implementation that uses the cache type
            specified by a DbMappingViewCacheTypeAttribute to create a concrete DbMappingViewCache.
            The implementation assumes that the model has a single container mapping.
            
        
        
            
            Creates a new DefaultDbMappingViewCacheFactory instance.
            
            
            A DbMappingViewCacheTypeAttribute
            that specifies the cache type.
            
        
        
            
            Creates a generated view cache instance for the single container mapping in the model
            by instantiating the type specified by the associated DbMappingViewCacheTypeAttribute.
            
            The name of a container in the conceptual model.
            The name of a container in the store model.
            A DbMappingViewCache that specifies the generated view cache.
        
        
            
            Specifies a hash function for the current type. Two different instances associated
            with the same DbMappingViewCacheTypeAttribute have the same hash code.
            
            A hash code for the current object.
        
        
            
            Determines whether the specified object is equal to the current object.
            
            An object to compare with the current object.
            
            true if the specified object is an instance of DefaultDbMappingViewCacheFactory
            and the associated DbMappingViewCacheTypeAttribute is the same, false otherwise.
            
        
        
             
             Helper class that is used to configure a parameter.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Creates a new parameter definition to pass Binary data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The maximum allowable length of the array data. 
              Value indicating whether or not all data should be padded to the maximum length. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Boolean data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Byte data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass DateTime data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The precision of the parameter. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Decimal data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The numeric precision of the parameter. 
              The numeric scale of the parameter. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Double data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass GUID data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Single data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Short data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Integer data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Long data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass String data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The maximum allowable length of the string data. 
              Value indicating whether or not all data should be padded to the maximum length. 
              Value indicating whether or not the parameter supports Unicode content. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass Time data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The precision of the parameter. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass DateTimeOffset data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The precision of the parameter. 
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass geography data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
             
             Creates a new parameter definition to pass geometry data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Constant value to use as the default value for this parameter. 
              SQL expression used as the default value for this parameter. 
              The name of the parameter. 
              Provider specific data type to use for this parameter. 
              The newly constructed parameter definition. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Creates a shallow copy of the current .
            
            A shallow copy of the current .
        
        
             
             Represents altering an existing stored procedure.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             A migration operation that affects stored procedures.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Represents an operation to modify a database schema.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the MigrationOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue"
             }'.
             
        
        
            
            Gets additional arguments that may be processed by providers.
            
            Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
            (such as the end user of an application). If input is accepted from such sources it should be validated 
            before being passed to these APIs to protect against SQL injection attacks etc.
            
        
        
            
            Gets an operation that will revert this operation.
            
        
        
            
            Gets a value indicating if this operation may result in data loss.
            
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure.
             The body of the stored procedure expressed in SQL.
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the stored procedure.
            
            
            The name of the stored procedure.
            
        
        
            
            Gets the body of the stored procedure expressed in SQL.
            
            
            The body of the stored procedure expressed in SQL.
            
        
        
            
            Gets the parameters of the stored procedure.
            
            
            The parameters of the stored procedure.
            
        
        
            
            Gets a value indicating if this operation may result in data loss. Always returns false.
            
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure.
             The body of the stored procedure expressed in SQL.
             Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
        
        
            
            Gets an operation that will revert this operation. 
            Always returns a .
            
        
        
             
             Used when scripting an update database operation to store the operations that would have been performed against the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The queries used to determine if this migration needs to be applied to the database. 
             This is used to generate an idempotent SQL script that can be run against a database at any version.
             
        
        
             
             Adds a migration to this update database operation.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The id of the migration.
             The individual operations applied by the migration.
        
        
            
            The queries used to determine if this migration needs to be applied to the database. 
            This is used to generate an idempotent SQL script that can be run against a database at any version.
            
        
        
            
            Gets the migrations applied during the update database operation.
            
            
            The migrations applied during the update database operation.
            
        
        
            
            Gets a value indicating if any of the operations may result in data loss.
            
        
        
            
            Represents a migration to be applied to the database.
            
        
        
            
            Gets the id of the migration.
            
            
            The id of the migration.
            
        
        
            
            Gets the individual operations applied by this migration.
            
            
            The individual operations applied by this migration.
            
        
        
             
             Represents moving a stored procedure to a new schema in the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure to move.
             The new schema for the stored procedure.
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the stored procedure to move.
            
            
            The name of the stored procedure to move.
            
        
        
            
            Gets the new schema for the stored procedure.
            
            
            The new schema for the stored procedure.
            
        
        
            
            Gets an operation that will revert this operation.
            
        
        
            
            Gets a value indicating if this operation may result in data loss. Always returns false.
            
        
        
             
             Represents renaming a stored procedure in the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure to rename.
             The new name for the stored procedure.
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the stored procedure to rename.
            
            
            The name of the stored procedure to rename.
            
        
        
            
            Gets the new name for the stored procedure.
            
            
            The new name for the stored procedure.
            
        
        
            
            Gets an operation that will revert this operation.
            
        
        
            
            Gets a value indicating if this operation may result in data loss. Always returns false.
            
        
        
            
            Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider.
            
        
        
            
            Gets a value indicating if this operation may result in data loss. Always returns false.
            
        
        
             
             Represents information about a parameter.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Represents information about a property of an entity.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the PropertyModel class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The data type for this property model. 
              Additional details about the data type. This includes details such as maximum length, nullability etc. 
        
        
            
            Gets the data type for this property model.
            
        
        
            
            Gets additional details about the data type of this property model.
            This includes details such as maximum length, nullability etc.
            
        
        
             
             Gets or sets the name of the property model.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Gets or sets a provider specific data type to use for this property model.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets or sets the maximum length for this property model.
            Only valid for array data types.
            
        
        
            
            Gets or sets the precision for this property model.
            Only valid for decimal data types.
            
        
        
            
            Gets or sets the scale for this property model.
            Only valid for decimal data types.
            
        
        
             
             Gets or sets a constant value to use as the default value for this property model.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Gets or sets a SQL expression used as the default value for this property model.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets or sets a value indicating if this property model is fixed length.
            Only valid for array data types.
            
        
        
            
            Gets or sets a value indicating if this property model supports Unicode characters.
            Only valid for textual data types.
            
        
        
             
             Initializes a new instance of the ParameterModel class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The data type for this parameter. 
        
        
             
             Initializes a new instance of the ParameterModel class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The data type for this parameter. 
              Additional details about the data type. This includes details such as maximum length, nullability etc. 
        
        
            
            Gets or sets a value indicating whether this instance is out parameter.
            
            
            true if this instance is out parameter; otherwise, false.
            
        
        
             
             Drops a stored procedure from the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure to drop.
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the stored procedure to drop.
            
            
            The name of the stored procedure to drop.
            
        
        
            
            Gets an operation that will revert this operation. 
            Always returns a .
            
        
        
            
            Gets a value indicating if this operation may result in data loss. Always returns false.
            
        
        
            
            Used to create a convention that configures navigation properties.
            
        
        
            
            Configures the constraint associated with the navigation property.
            
            
            The type of constraint configuration.
             for
            foreign key constraints and 
            for independent constraints.
            
        
        
            
            Configures the constraint associated with the navigation property.
            
             Constraint configuration to be applied. 
            
            The type of constraint configuration.
             for
            foreign key constraints and 
            for independent constraints.
            
        
        
            
            Sets the inverse navigation property.
            
        
        
            
            Sets the inverse end multiplicity.
            
        
        
            
            True if the navigation property's declaring type is the principal end, false if it is not
            
        
        
            
            Sets the action to take when a delete operation is attempted.
            
        
        
            
            Sets the multiplicity of this end of the navigation property.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the  for this property.
            
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the entity types in a model.
            
        
        
            
            Filters the entity types that this convention applies to based on a
            predicate.
            
             A function to test each entity type for a condition. 
            
            An  instance so that multiple calls can be chained.
            
        
        
            
            Filters the entity types that this convention applies to based on a predicate
            while capturing a value to use later during configuration.
            
             Type of the captured value. 
            
            A function to capture a value for each entity type. If the value is null, the
            entity type will be filtered out.
            
            
            An  instance so that multiple calls can be chained.
            
        
        
            
            Allows configuration of the entity types that this convention applies to.
            
            
            An action that performs configuration against a
            
            .
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the entity types in a model that inherit from a common, specified type.
            
             The common type of the entity types that this convention applies to. 
        
        
            
            Filters the entity types that this convention applies to based on a
            predicate.
            
             A function to test each entity type for a condition. 
            
            An  instance so that multiple calls can be chained.
            
        
        
            
            Filters the entity types that this convention applies to based on a predicate
            while capturing a value to use later during configuration.
            
             Type of the captured value. 
            
            A function to capture a value for each entity type. If the value is null, the
            entity type will be filtered out.
            
            
            An  instance so that multiple calls can be chained.
            
        
        
            
            Allows configuration of the entity types that this convention applies to.
            
            
            An action that performs configuration against a
            
            .
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the entity types in a model that inherit from a common, specified type and a
            captured value.
            
             The common type of the entity types that this convention applies to. 
             Type of the captured value. 
        
        
            
            Allows configuration of the entity types that this convention applies to.
            
            
            An action that performs configuration against a 
            using a captured value.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the entity types in a model and a captured value.
            
             Type of the captured value. 
        
        
            
            Allows configuration of the entity types that this convention applies to.
            
            
            An action that performs configuration against a 
            using a captured value.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for an entity type in a model.
            This configuration functionality is available via lightweight conventions.
            
        
        
            
            Configures the entity set name to be used for this entity type.
            The entity set name can only be configured for the base type in each set.
            
             The name of the entity set. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Excludes this entity type from the model so that it will not be mapped to the database.
            
        
        
            
            Changes this entity type to a complex type.
            
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The name of the property to be configured. 
            
            Calling this will have no effect if the property does not exist.
            
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The property to be configured. 
            
            Calling this will have no effect if the property does not exist.
            
        
        
            
            Configures a property that is defined on this type.
            
             The name of the property being configured. 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a property that is defined on this type.
            
             The property being configured. 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a property that is defined on this type as a navigation property.
            
             The name of the property being configured. 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a property that is defined on this type as a navigation property.
            
             The property being configured. 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures the primary key property for this entity type.
            
             The name of the property to be used as the primary key. 
            
            The same  instance so that multiple calls can be chained.
            
        
        
            
            Configures the primary key property for this entity type.
            
             The property to be used as the primary key. 
            
            The same  instance so that multiple calls can be chained.
            
        
        
            
            Configures the primary key property(s) for this entity type.
            
             The names of the properties to be used as the primary key. 
            
            The same  instance so that multiple calls can be chained.
            
        
        
            
            Configures the primary key property(s) for this entity type.
            
             The properties to be used as the primary key. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured or if any
            property does not exist.
            
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
             The database schema of the table. 
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            The default conventions for procedure and parameter names will be used.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            
            
            Configuration to override the default conventions for procedure and parameter names.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the  of this entity type.
            
        
        
            
            Allows configuration to be performed for an entity type in a model.
            This configuration functionality is available via lightweight conventions.
            
             A type inherited by the entity type. 
        
        
            
            Configures the entity set name to be used for this entity type.
            The entity set name can only be configured for the base type in each set.
            
             The name of the entity set. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Excludes this entity type from the model so that it will not be mapped to the database.
            
        
        
            
            Changes this entity type to a complex type.
            
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The type of the property to be ignored. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
        
        
            
            Configures a property that is defined on this type.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a property that is defined on this type as a navigation property.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures the primary key property(s) for this entity type.
            
             The type of the key. 
             A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
             The database schema of the table. 
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            The default conventions for procedure and parameter names will be used.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            
            
            Configuration to override the default conventions for procedure and parameter names.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the  of this entity type.
            
        
        
            
            Identifies conventions that can be added to or removed from a  instance.
            
            
            Note that implementations of this interface must be immutable.
            
        
        
            
            Base class for conventions that process CLR attributes found on primitive properties in the model.
            
             The type of the attribute to look for. 
        
        
            
            A convention that doesn't override configuration.
            
        
        
            
            The derived class can use the default constructor to apply a set rule of that change the model configuration.
            
        
        
            
            For testing
            
        
        
            
            Begins configuration of a lightweight convention that applies to all mapped types in
            the model.
            
             A configuration object for the convention. 
        
        
            
            Begins configuration of a lightweight convention that applies to all mapped types in
            the model that derive from or implement the specified type.
            
             The type of the entities that this convention will apply to. 
             A configuration object for the convention. 
             This method does not add new types to the model.
        
        
            
            Begins configuration of a lightweight convention that applies to all properties
            in the model.
            
             A configuration object for the convention. 
        
        
            
            Begins configuration of a lightweight convention that applies to all primitive
            properties of the specified type in the model.
            
             The type of the properties that the convention will apply to. 
             A configuration object for the convention. 
            
            The convention will apply to both nullable and non-nullable properties of the
            specified type.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Applies this convention to a property that has an attribute of type TAttribute applied.
            
            The configuration for the property that has the attribute.
            The attribute.
        
        
            
            Base class for conventions that process CLR attributes found on properties of types in the model.
            
            
            Note that the derived convention will be applied for any non-static property on the mapped type that has
            the specified attribute, even if it wasn't included in the model.
            
             The type of the attribute to look for. 
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Applies this convention to a property that has an attribute of type TAttribute applied.
            
            The member info for the property that has the attribute.
            The configuration for the class that contains the property.
            The attribute.
        
        
            
            Base class for conventions that process CLR attributes found in the model.
            
             The type of the attribute to look for. 
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Applies this convention to a class that has an attribute of type TAttribute applied.
            
            The configuration for the class that contains the property.
            The attribute.
        
        
            
            Used to configure a property in a mapping fragment.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the name of the database column used to store the property, in a mapping fragment.
            
             The name of the column. 
             The same PropertyMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            A convention that operates on the conceptual section of the model after the model is created.
            
            The type of metadata item that this convention operates on.
        
        
            
            Applies this convention to an item in the model.
            
            The item to apply the convention to.
            The model.
        
        
            
            A convention that operates on the database section of the model after the model is created.
            
            The type of metadata item that this convention operates on.
        
        
            
            Applies this convention to an item in the model.
            
            The item to apply the convention to.
            The model.
        
        
            
            Extension methods for .
            
        
        
            
            Gets the CLR attributes defined on a set of properties.
            
            The properties to get attributes from.
            The attributes.
        
        
            
            Sets the CLR attributes on a set of properties.
            
            The properties to set attributes on.
            The attributes to be set.
        
        
            
            Gets the CLR property info for a set of properties.
            
            The properties to get CLR property info for.
            The CLR property info
        
        
            
            Sets the CLR property info for a set of properties.
            
            The properties to set CLR property info for.
            The property info.
        
        
            
            Gets the CLR type for a set of properties.
            
            The properties to get the CLR type for.
            The CLR type.
        
        
            
            Sets the CLR type for a set of properties.
            
            The properties to set the CLR type for.
            The CLR type.
        
        
            
            Gets the configuration for a set of properties.
            
            The properties to get the configuration for.
            The configuration.
        
        
            
            Sets the configuration for a set of properties.
            
            The properties to set the configuration for.
            The configuration.
        
        
            
            Gets the annotation from a set of properties. 
            
            The properties.
            The name of the annotation.
            The annotation.
        
        
            
            Sets an annotation on a set of properties.
            
            The properties.
            The name of the annotation.
            The value of the annotation.
        
        
            
            Removes an annotation from a set of properties.
            
            The properties.
            The name of the annotation.
        
        
            
            Copies annotations from one set of properties to another.
            
            The source properties.
            The target properties.
        
        
            
            Useful extension methods for use with Entity Framework LINQ queries.
            
        
        
            
            Specifies the related objects to include in the query results.
            
            
            This extension method calls the Include(String) method of the source  object,
            if such a method exists. If the source  does not have a matching method,
            then this method does nothing. The , ,
             and  types all have an appropriate Include method to call.
            Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
            OrderLines be included, but also Orders.  When you call the Include method, the query path is only valid on
            the returned instance of the . Other instances of 
            and the object context itself are not affected. Because the Include method returns the query object,
            you can call this method multiple times on an  to specify multiple paths for the query.
            
             The type of entity being queried. 
            
            The source  on which to call Include.
            
             The dot-separated list of related objects to return in the query results. 
            
            A new  with the defined query path.
            
        
        
            
            Specifies the related objects to include in the query results.
            
            
            This extension method calls the Include(String) method of the source  object,
            if such a method exists. If the source  does not have a matching method,
            then this method does nothing. The , ,
             and  types all have an appropriate Include method to call.
            Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
            OrderLines be included, but also Orders.  When you call the Include method, the query path is only valid on
            the returned instance of the . Other instances of 
            and the object context itself are not affected. Because the Include method returns the query object,
            you can call this method multiple times on an  to specify multiple paths for the query.
            
            
            The source  on which to call Include.
            
             The dot-separated list of related objects to return in the query results. 
            
            A new  with the defined query path.
            
        
        
            
            Common code for generic and non-generic string Include.
            
        
        
            
            Specifies the related objects to include in the query results.
            
            
            The path expression must be composed of simple property access expressions together with calls to Select for
            composing additional includes after including a collection proprty.  Examples of possible include paths are:
            To include a single reference: query.Include(e => e.Level1Reference)
            To include a single collection: query.Include(e => e.Level1Collection)
            To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference)
            To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection)
            To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))
            To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
            To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))
            To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
            To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference))
            To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference)))
            This extension method calls the Include(String) method of the source IQueryable object, if such a method exists.
            If the source IQueryable does not have a matching method, then this method does nothing.
            The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call.
            When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other
            instances of IQueryable<T> and the object context itself are not affected.  Because the Include method returns the
            query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query.
            
             The type of entity being queried. 
             The type of navigation property being included. 
             The source IQueryable on which to call Include. 
             A lambda expression representing the path to include. 
            
            A new IQueryable<T> with the defined query path.
            
        
        
            
            Returns a new query where the entities returned will not be cached in the 
            or .  This method works by calling the AsNoTracking method of the
            underlying query object.  If the underlying query object does not have an AsNoTracking method,
            then calling this method will have no affect.
            
             The element type. 
             The source query. 
             A new query with NoTracking applied, or the source query if NoTracking is not supported. 
        
        
            
            Returns a new query where the entities returned will not be cached in the 
            or .  This method works by calling the AsNoTracking method of the
            underlying query object.  If the underlying query object does not have an AsNoTracking method,
            then calling this method will have no affect.
            
             The source query. 
             A new query with NoTracking applied, or the source query if NoTracking is not supported. 
        
        
            
            Common code for generic and non-generic AsNoTracking.
            
        
        
            
            Returns a new query that will stream the results instead of buffering. This method works by calling
            the AsStreaming method of the underlying query object. If the underlying query object does not have
            an AsStreaming method, then calling this method will have no affect.
            
            
            The type of the elements of .
            
            
            An  to apply AsStreaming to.
            
             A new query with AsStreaming applied, or the source query if AsStreaming is not supported. 
        
        
            
            Returns a new query that will stream the results instead of buffering. This method works by calling
            the AsStreaming method of the underlying query object. If the underlying query object does not have
            an AsStreaming method, then calling this method will have no affect.
            
            
            An  to apply AsStreaming to.
            
             A new query with AsStreaming applied, or the source query if AsStreaming is not supported. 
        
        
            
            Enumerates the query such that for server queries such as those of ,
            
            ,
            , and others the results of the query will be loaded into the associated
            
            ,
             or other cache on the client.
            This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list.
            
             The source query. 
        
        
            
            Bypasses a specified number of elements in a sequence and then returns the remaining elements.
            
            The type of the elements of source.
            A sequence to return elements from.
            An expression that evaluates to the number of elements to skip.
            A sequence that contains elements that occur after the specified index in the 
            input sequence.
        
        
            
            Returns a specified number of contiguous elements from the start of a sequence.
            
            The type of the elements of source.
            The sequence to return elements from.
            An expression that evaluates to the number of elements 
            to return.
            A sequence that contains the specified number of elements from the 
            start of the input sequence.
        
        
            
            Controls the transaction creation behavior while executing a database command or query.
            
        
        
            
            If no transaction is present then a new transaction will be used for the operation.
            
        
        
            
            If an existing transaction is present then use it, otherwise execute the command or query without a transaction.
            
        
        
            
            Helper method used in expressions generated by Emit_Equal to perform a
            byte-by-byte comparison of two byte arrays.  There really ought to be
            a way to do this in the framework but I'm unaware of it.
            
        
        
            
            Compiles a delegate taking a Shaper instance and returning values. Used to compile
            Expressions produced by the emitter.
            
        
        
            
            Non-generic version of Compile (where the result type is passed in as an argument rather
            than a type parameter)
            
        
        
            
            Create expression to AndAlso the expressions and return the result.
            
        
        
            
            Create expression to bitwise-or the expressions and return the result.
            
        
        
            
            Creates an expression with null value. If the given type cannot be assigned
            a null value, we create a value that throws when materializing. We don't throw statically
            because we consistently defer type checks until materialization.
            See SQL BU 588980.
            
             Type of null expression. 
             Null expression. 
        
        
            
            Emits an expression that represnts a NullEntityWrapper instance.
            
             An expression represnting a wrapped null 
        
        
            
            Create expression that guarantees the input expression is of the specified
            type; no Convert is added if the expression is already of the same type.
            Internal because it is called from the TranslatorResult.
            
        
        
            
            Uses Emit_EnsureType and then wraps the result in an IEntityWrapper instance.
            
             The expression that creates the entity to be wrapped 
             Expression to read the entity key 
             Expression to read the entity set 
             The type that was actuall requested by the client--may be object 
             The type of the identity type of the entity being materialized--never a proxy type 
             The actual type being materialized--may be a proxy type 
             Either NoTracking or AppendOnly depending on whether the entity is to be tracked 
             If true, then a proxy is being created 
             An expression representing the IEntityWrapper for the new entity 
        
        
            
            Returns an expression that creates an IEntityWrapper appropriate for the type of entity being materialized.
            
        
        
            
            Takes an expression that represents an IEntityWrapper instance and creates a new
            expression that extracts the raw entity from this.
            
        
        
            
            Method that the generated expression calls when the types are not
            assignable
            
        
        
            
            Create expression to compare the results of two expressions and return
            whether they are equal.  Note we have special case logic for byte arrays.
            
        
        
            
            Create expression that verifies that the entityKey has a value.  Note we just
            presume that if the first key is non-null, all the keys will be valid.
            
        
        
            
            Create expression to call the GetValue method of the shaper's source data reader
            
        
        
            
            Create expression to call the IsDBNull method of the shaper's source data reader
            
        
        
            
            Create expression to call the IsDBNull method of the shaper's source data reader
            for the scalar column represented by the column map.
            
        
        
            
            Create expression to read a property value with error handling
            
        
        
            
            Create expression to read a column value with error handling
            
        
        
            
            Create expression to read a column value of type System.Data.Entity.Spatial.DbGeography by delegating to the DbSpatialServices implementation of the underlying provider
            
        
        
            
            Create expression to read a column value of type System.Data.Entity.Spatial.DbGeometry by delegating to the DbSpatialServices implementation of the underlying provider
            
        
        
            
            Create expression to read an item from the shaper's state array
            
        
        
            
            Create expression to set an item in the shaper's state array
            
        
        
            
            Create expression to set an item in the shaper's state array
            
        
        
            
            Typed 
            
        
        
            
            An immutable class used to generate new coordinators. These coordinators are used
            at runtime to materialize results.
            
        
        
            
            Function of shaper that returns true; one default case when there is no explicit predicate.
            
        
        
            
            Function of shaper that returns false; one default case used when there is no explicit predicate.
            
        
        
            
            Gets depth of the reader (0 is top-level -- which incidentally doesn't
            require a coordinator...
            
        
        
            
            Indicates which state slot in the Shaper.State is expected to hold the
            value for this nested reader result.
            
        
        
            
            A function determining whether the current row has data for this nested result.
            
        
        
            
            A function setting key values. (the return value is irrelevant)
            
        
        
            
            A function returning true if key values match the previously set values.
            
        
        
            
            Nested results below this (at depth + 1)
            
        
        
            
            Indicates whether this is a leaf reader.
            
        
        
            
            Indicates whether this coordinator can be managed by a simple enumerator. A simple enumerator
            returns a single element per row, so the following conditions disqualify the enumerator:
            nested collections, data discriminators (not all rows have data), keys (not all rows have new data).
            
        
        
            
            For value-layer queries, the factories for all the records that we can potentially process
            at this level in the query result.
            
        
        
            
            Creates a buffer handling state needed by this coordinator.
            
        
        
            
            Reads a single element of the result from the given reader state object, returning the
            result as a wrapped entity.  May be null if the element is not available as a wrapped entity.
            
        
        
            
            Reads a single element of the result from the given reader state object.
            May be null if the element is available as a wrapped entity instead.
            
        
        
            
            Same as Element but uses slower patterns to provide better exception messages (e.g.
            using reader.GetValue + type check rather than reader.GetInt32)
            
        
        
            
            Initializes the collection storing results from this coordinator.
            
        
        
            
            Description of this CoordinatorFactory, used for debugging only; while this is not
            needed in retail code, it is pretty important because it's the only description we'll
            have once we compile the Expressions; debugging a problem with retail bits would be
            pretty hard without this.
            
        
        
            
            Used for testing.
            
             
             
             Can be null. 
             Can be null. 
             Can be null. 
             
            
            Supply null if  isn't null.
            
            
            Supply null if  isn't null.
            
             Should return the unwrapped entity. 
             Can be null. 
             
        
        
            
            Return the compiled expression for the predicate
            
        
        
            
            Returns a string representation of the expression
            
        
        
            
            Create a coordinator used for materialization of collections. Unlike the CoordinatorFactory,
            the Coordinator contains mutable state.
            
        
        
            
            Returns the "default" record state (that is, the one we use for PreRead/PastEnd reader states
            
        
        
            
            Typed 
            
        
        
            
            A coordinator is responsible for tracking state and processing result in a root or nested query
            result collection. The coordinator exists within a graph, and knows its Parent, (First)Child,
            and Next sibling. This allows the Shaper to use the coordinator as a simple state machine when
            consuming store reader results.
            
        
        
            
            The factory used to generate this coordinator instance. Contains delegates used
            by the Shaper during result enumeration.
            
        
        
            
            Parent coordinator (the coordinator producing rows containing this collection).
            If this is the root, null.
            
        
        
            
            Next coordinator at this depth. Once we're done consuming results for this reader,
            we move on to this.Next.
            
        
        
            
            Registers this hierarchy of coordinators in the given shaper.
            
        
        
            
            Determines the maximum depth of this subtree.
            
        
        
            
            This method is called when the current collection is finished and it's time to move to the next collection.
            Recursively initializes children and siblings as well.
            
        
        
            
            Precondition: the current row has data for the coordinator.
            Side-effects: updates keys currently stored in state and updates IsEntered if a new value is encountered.
            Determines whether the row contains the next element in this collection.
            
        
        
            
            Precondition: the current row has data and contains a new element for the coordinator.
            Reads the next element in this collection.
            
        
        
            
            First coordinator for nested results below this collection. When reading a new row
            for this coordinator, we walk down to the Child.
            NOTE:: this cannot be readonly because we can't know both the parent and the child
            at initialization time; we set the Child in the parent's constructor.
            
        
        
            
            Indicates whether data has been read for the collection being aggregated or yielded
            by this coordinator.
            
        
        
            
            Indicates whether this is the top level coordinator for a query.
            
        
        
            
            For ObjectResult, aggregates all elements for in the nested collection handled by this coordinator.
            
        
        
            
            For ObjectResult, aggregates all elements as wrapped entities for in the nested collection handled by this coordinator.
            
        
        
            
            Delegate called when the current nested collection has been consumed. This is necessary in Span
            scenarios where an EntityCollection RelatedEnd is populated only when all related entities have
            been materialized.  This version of the close handler works with wrapped entities.
            
        
        
            
            For nested, object-layer coordinators we want to collect all the elements we find and handle them
            when the root coordinator advances.  Otherwise we just want to return them as we find them.
            
        
        
            
            Sets the delegate called when this collection is closed.  This close handler works on
            a collection of wrapped entities, rather than on the raw entity objects.
            
        
        
            
            Called when we're disposing the enumerator;
            
        
        
            
            Returns a handle to the element aggregator for this nested collection.
            
        
        
            
            Exposes the Current element that has been materialized (and is being populated) by this coordinator.
            
        
        
            
            Satisfiability test optimization.
            This class extends FragmentQueryKB by adding the so-called chase functionality:
            given an expression, the chase incorporates in this expression all the consequences derivable
            from the knowledge base. The knowledge base is not needed for the satisfiability test after such a procedure.
            This leads to better performance in many cases.
            
        
        
            
            Data structure supporting storage of facts and proof (resolution) of queries given
            those facts.
            For instance, we may know the following facts:
            A --> B
            A
            Given these facts, the knowledge base can prove the query:
            B
            through resolution.
            
             Type of leaf term identifiers in fact expressions. 
        
        
            
            Initialize a new knowledge base.
            
        
        
            
            Adds all facts from another knowledge base
            
             The other knowledge base 
        
        
            
            Adds the given fact to this KB.
            
             Simple fact. 
        
        
            
            Adds the given implication to this KB, where implication is of the form:
            condition --> implies
            
             Condition 
             Entailed expression 
        
        
            
            Adds an equivalence to this KB, of the form:
            left iff. right
            
             Left operand 
             Right operand 
        
        
            
            A tree expression that evaluates to true iff. any of its children
            evaluates to true.
            
            
            An Or expression with no children is equivalent to False (this is an
            operational convenience because we assume an implicit False is along
            for the ride in every Or expression)
            A + False iff. A
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Abstract base class for tree expressions (unary as in Not, n-ary
            as in And or Or). Duplicate elements are trimmed at construction
            time (algorithms applied to these trees rely on the assumption
            of uniform children).
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Base type for Boolean expressions. Boolean expressions are immutable,
            and value-comparable using Equals. Services include local simplification
            and normalization to Conjunctive and Disjunctive Normal Forms.
            
            
            Comments use the following notation convention:
            "A . B" means "A and B"
            "A + B" means "A or B"
            "!A" means "not A"
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Standard accept method invoking the appropriate method overload
            in the given visitor.
            
             T_Return is the return type for the visitor. 
             Visitor implementation. 
             Value computed for this node. 
        
        
            
            Invokes the Simplifier visitor on this expression tree.
            Simplifications are purely local (see Simplifier class
            for details).
            
        
        
            
            Expensive simplification that considers various permutations of the
            expression (including Decision Diagram, DNF, and CNF translations)
            
        
        
            
            Returns all term expressions below this node.
            
        
        
            
            Counts terms in this expression.
            
        
        
            
            Implicit cast from a value of type T to a TermExpr where
            TermExpr.Value is set to the given value.
            
             Value to wrap in term expression 
             Term expression 
        
        
            
            Creates the negation of the current element.
            
        
        
            
            Gets an enumeration value indicating the type of the expression node.
            
        
        
            
            Initialize a new tree expression with the given children.
            
             Child expressions 
        
        
            
            Gets the children of this expression node.
            
        
        
            
            Initialize a new Or expression with the given children.
            
             Child expressions 
        
        
            
            Initialize a new Or expression with the given children.
            
             Child expressions 
        
        
            
            A tree expression that evaluates to true iff. none of its children
            evaluate to false.
            
            
            An And expression with no children is equivalent to True (this is an
            operational convenience because we assume an implicit True is along
            for the ride in every And expression)
            A . True iff. A
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Initialize a new And expression with the given children.
            
             Child expressions 
        
        
            
            Initialize a new And expression with the given children.
            
             Child expressions 
        
        
            
            Retrieves all implications directly derivable from the atomic expression.
            
            
            Atomic expression to be extended with facts derivable from the knowledge base.
            
        
        
            
            Checks if the given expression is satisfiable in conjunction with this knowledge base.
            
            Expression to be tested for satisfiability.
        
        
            
            Retrieves all implications directly derivable from the expression.
            
            
            Expression to be extended with facts derivable from the knowledge base.
            
        
        
            
            Maintains a list of all implications derivable from the condition.
            Implications are stored in the _implications dictionary
            
             Condition 
             Entailed expression 
        
        
            
            Returns KB rules which cannot be used for chasing.
            
        
        
            
            Basic visitor which reproduces the given expression tree.
            
             Type of leaf term identifiers in expression. 
        
        
            
            Abstract visitor class. All Boolean expression nodes know how to
            'accept' a visitor, and delegate to the appropriate visitor method.
            For instance, AndExpr invokes Visitor.VisitAnd.
            
             Type of leaf term identifiers in expression. 
             Return type for visit methods. 
        
        
            
            Represents the base item class for all the metadata
            
            
            Represents the base item class for all the metadata
            
        
        
            
            Implementing this internal constructor so that this class can't be derived
            outside this assembly
            
        
        
            
            Adds an annotation with the specified name and value.
            
            The name of the annotation property.
            The value of the annotation property.
        
        
            
            Removes an annotation with the specified name.
            
            The name of the annotation property.
        
        
            
            Just checks for identities to be equal
            
        
        
            
            Validates the types and sets the readOnly property to true. Once the type is set to readOnly,
            it can never be changed.
            
        
        
            
            Builds identity string for this item. By default, the method calls the identity property.
            
        
        
            
            Adds the given metadata property to the metadata property collection
            
        
        
            
            Static Constructor which initializes all the built in types and primitive types
            
        
        
            
            Returns a conceptual model built-in type that matches one of the
            
            values.
            
            
            An  object that represents the built-in type in the EDM.
            
            
            One of the  values.
            
        
        
            Returns the list of the general facet descriptions for a specified type.
            
            A  object that represents the list of the general facet descriptions for a specified type.
            
        
        
            
            Initialize all the build in type with the given type attributes and properties
            
             The built In type which is getting initialized 
             name of the built in type 
             whether the type is abstract or not 
             The base type of the built in type 
        
        
            
            Add properties for all the build in complex type
            
             The type of the built In type whose properties are being added 
             properties of the built in type 
        
        
            
            Initializes the enum type
            
             The built-in type kind enum value of this enum type 
             The name of this enum type 
             The member names of this enum type 
        
        
            
            Gets the currently assigned annotations.
            
        
        
            Gets the built-in type kind for this type.
            
            A  object that represents the built-in type kind for this type.
            
        
        
            Gets the list of properties of the current type.
            
            A collection of type  that contains the list of properties of the current type.
            
        
        
            
            List of item attributes on this type
            
        
        
            Gets or sets the documentation associated with this type.
            
            A  object that represents the documentation on this type.
            
        
        
            
            Identity of the item
            
        
        
            
            Returns true if this item is not-changeable. Otherwise returns false.
            
        
        
            
            This class is used for doing reverse-lookup of metadata when only a CLR type is known.
            It should never be used for POCO or proxy types, but may still be called for types that inherit
            from EntityObject.
            
        
        
            
            This is an extraction of the code that was in  such that
            it can be used outside of the context of the traditional assembly loaders--notably the CLR types to load
            from are provided by Code First.
            
        
        
            
            Creates an Enum property based on  and adds it to the parent structural type.
            
            
            CLR type owning  .
            
             OSpace type the created property will be added to. 
             Corresponding property from CSpace. 
             CLR property used to build an Enum property. 
        
        
            
            Indicates that the given method is a proxy for an EDM function.
            
            
            Note that this attribute has been replaced by the  starting with EF6.
            
        
        
            
            Indicates that the given method is a proxy for an EDM function.
            
            
            Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework.
            
        
        
            
            Initializes a new instance of the  class.
            
            The namespace of the mapped-to function.
            The name of the mapped-to function.
        
        
            The namespace of the mapped-to function.
            The namespace of the mapped-to function.
        
        
            The name of the mapped-to function.
            The name of the mapped-to function.
        
        
            
            Creates a new DbFunctionAttribute instance.
            
             The namespace name of the EDM function represented by the attributed method. 
             The function name of the EDM function represented by the attributed method. 
        
        
            
            Provides common language runtime (CLR) methods that expose EDM canonical functions
            for use in  or  LINQ to Entities queries.
            
            
            Note that these functions have been moved to the  class starting with EF6.
            The functions are retained here only to help in the migration of older EF apps to EF6.
            
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given
            number of the leftmost characters in a string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The number of characters to return 
             A string containing the number of characters asked for from the left of the input string. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given
            number of the rightmost characters in a string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The number of characters to return 
             A string containing the number of characters asked for from the right of the input string. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given
            string with the order of the characters reversed.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The input string with the order of the characters reversed. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to
            return the number of minutes that the given date/time is offset from UTC. This is generally between +780
            and -780 (+ or - 13 hrs).
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The offset of the input from UTC. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
            the given date with the time portion cleared.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The input date with the time portion cleared. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
            the given date with the time portion cleared.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The input date with the time portion cleared. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The year. 
             The month (1-based). 
             The day (1-based). 
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The new date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The year. 
             The month (1-based). 
             The day (1-based). 
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The time zone offset part of the new date. 
             The new date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The new time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
            add the given number of years to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of years to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
            add the given number of years to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of years to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
            add the given number of months to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of months to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
            add the given number of months to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of months to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
            add the given number of days to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of days to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
            add the given number of days to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of days to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
            calculate the number of years between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of years between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
            calculate the number of years between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of years between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
            calculate the number of months between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of months between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
            calculate the number of months between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of months between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
            calculate the number of days between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of days between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
            calculate the number of days between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of days between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of hours between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of hours between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of hours between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of minutes between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of minutes between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of minutes between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of seconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of seconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of seconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of milliseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of milliseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of milliseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of microseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of microseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of microseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of nanoseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of nanoseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of nanoseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
            truncate the given value to the number of specified digits.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The value to truncate. 
             The number of digits to preserve. 
             The truncated value. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
            truncate the given value to the number of specified digits.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The value to truncate. 
             The number of digits to preserve. 
             The truncated value. 
        
        
            
            When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
            is treated as a Unicode string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function impacts the way the LINQ query is translated to a query that can be run in the database.
            
             The input string. 
             The input string treated as a Unicode string. 
        
        
            
            When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
            is treated as a non-Unicode string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function impacts the way the LINQ query is translated to a query that can be run in the database.
            
             The input string. 
             The input string treated as a non-Unicode string. 
        
        
            
            Options for query execution.
            
        
        
            
            Creates a new instance of .
            
             Merge option to use for entity results. 
             Whether the query is streaming or buffering. 
        
        
            Determines whether the specified objects are equal.
            true if the two objects are equal; otherwise, false.
            The left object to compare.
            The right object to compare.
        
        
            
            Determines whether the specified objects are not equal.
            
            The left object to compare.
            The right object to compare.
            true if the two objects are not equal; otherwise, false.
        
        
            
        
        
            
        
        
            
            Merge option to use for entity results.
            
        
        
            
            Whether the query is streaming or buffering.
            
        
        
            
            A wrapper over a  that will consume and close the supplied reader
            when  is called.
            
        
        
            
            Instances of this class would be returned to user via .
            
        
        
            
            DataRecord interface supporting structured types and rich metadata information.
            
        
        
            
            Gets a  object with the specified index.
            
            
            A  object.
            
            The index of the row.
        
        
            
            Returns nested readers as  objects.
            
            
            Nested readers as  objects.
            
            The ordinal of the column.
        
        
            
            Gets  for this
            
            .
            
            
            A  object.
            
        
        
            
            Used to return a nested result
            
        
        
            
            Initialize the property descriptors for each PrimitiveType attribute.
            See similar functionality in DataRecordObjectView's ITypedList implementation.
            
        
        
            
            Creates a PropertyDescriptorCollection based on a StructuralType definition
            Currently this includes a PropertyDescriptor for each primitive type property in the StructuralType
            
             The structural type definition 
             The type to use as the component type 
             Whether the properties in the collection should be read only or not 
        
        
            
            DataRecordInfo class providing a simple way to access both the type information and the column information.
            
        
        
            
            Initializes a new  object for a specific type with an enumerable collection of data fields.
            
            
            The metadata for the type represented by this object, supplied by
            
            .
            
            
            An enumerable collection of  objects that represent column information.
            
        
        
            
            Construct FieldMetadata for structuralType.Members from TypeUsage
            
        
        
            
            Reusing TypeUsage and FieldMetadata from another EntityRecordInfo which has all the same info
            but with a different EntityKey instance.
            
        
        
            
            Gets  for this
            
            object.
            
            
            A  object.
            
        
        
            
            Gets type info for this object as a  object.
            
            
            A  value.
            
        
        
            
            A prepared command definition, can be cached and reused to avoid
            repreparing a command.
            
        
        
            
            Internal factory method to create the default Command Definition object
            based on a prototype command. The prototype command is cloned
            before the protected constructor is invoked
            
             prototype DbCommand 
             the DbCommandDefinition 
        
        
            
            Initializes a new instance of the  class using the supplied
            
            .
            
            
            The supplied .
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Creates and returns a  object that can be executed.
            
            The command for database.
        
        
            
            Metadata Interface for all CLR types types
            
        
        
            
            Value to pass to GetInformation to get the StoreSchemaDefinition
            
        
        
            
            Value to pass to GetInformation to get the StoreSchemaMapping
            
        
        
            
            Value to pass to GetInformation to get the ConceptualSchemaDefinition
            
        
        
            
            Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3
            
        
        
            
            Value to pass to GetInformation to get the StoreSchemaMappingVersion3
            
        
        
            
            Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3
            
        
        
            
            Name of the MaxLength Facet
            
        
        
            
            Name of the Unicode Facet
            
        
        
            
            Name of the FixedLength Facet
            
        
        
            
            Name of the Precision Facet
            
        
        
            
            Name of the Scale Facet
            
        
        
            
            Name of the Nullable Facet
            
        
        
            
            Name of the DefaultValue Facet
            
        
        
            
            Name of the Collation Facet
            
        
        
            
            Name of the SRID Facet
            
        
        
            
            Name of the IsStrict Facet
            
        
        
            When overridden in a derived class, returns the set of primitive types supported by the data source.
            The set of types supported by the data source.
        
        
            When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest.
            A collection of EDM functions.
        
        
            Returns the FacetDescription objects for a particular type.
            The FacetDescription objects for the specified EDM type.
            The EDM type to return the facet description for.
        
        
            When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type.
            
            The  instance that describes an EDM type and a set of facets for that type.
            
            The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type.
        
        
            When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type.
            The TypeUsage instance that describes a storage type and a set of facets for that type.
            The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type.
        
        
            When overridden in a derived class, this method returns provider-specific information.
            The XmlReader object that represents the mapping to the underlying data store catalog.
            The type of the information to return.
        
        
            Gets the provider-specific information.
            The provider-specific information.
            The type of the information to return.
        
        
            Indicates if the provider supports escaping strings to be used as patterns in a Like expression.
            True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false.
            If the provider supports escaping, the character that would be used as the escape character.
        
        
            Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true.
            The argument with the wildcards and the escape character escaped.
            The argument to be escaped.
        
        
            
            Returns a boolean that specifies whether the provider can handle expression trees
            containing instances of DbInExpression.
            The default implementation returns false for backwards compatibility. Derived classes can override this method.
            
            
            false
            
        
        
            Gets the namespace used by this provider manifest.
            The namespace used by this provider manifest.
        
        
            
            The factory for building command definitions; use the type of this object
            as the argument to the IServiceProvider.GetService method on the provider
            factory;
            
        
        
            
            Constructs an EF provider that will use the  obtained from
            the app domain  Singleton for resolving EF dependencies such
            as the  instance to use.
            
        
        
            
            Constructs an EF provider that will use the given  for
            resolving EF dependencies such as the  instance to use.
            
             The resolver to use. 
        
        
            
            Registers a handler to process non-error messages coming from the database provider.
            
            The connection to receive information for.
            The handler to process messages.
        
        
            
            Create a Command Definition object given a command tree.
            
             command tree for the statement 
             an executable command definition object 
            
            This method simply delegates to the provider's implementation of CreateDbCommandDefinition.
            
        
        
            Creates command definition from specified manifest and command tree.
            The created command definition.
            The manifest.
            The command tree.
        
        
            Creates a command definition object for the specified provider manifest and command tree.
            An executable command definition object.
            Provider manifest previously retrieved from the store provider.
            Command tree for the statement.
        
        
            
            Ensures that the data space of the specified command tree is the target (S-) space
            
             The command tree for which the data space should be validated 
        
        
            
            Create the default DbCommandDefinition object based on the prototype command
            This method is intended for provider writers to build a default command definition
            from a command.
            Note: This will clone the prototype
            
             the prototype command 
             an executable command definition object 
        
        
            Returns provider manifest token given a connection.
            The provider manifest token.
            Connection to provider.
        
        
            
            Returns provider manifest token for a given connection.
            
             Connection to find manifest token from. 
             The provider manifest token for the specified connection. 
        
        
            Returns the provider manifest by using the specified version information.
            The provider manifest by using the specified version information.
            The token information associated with the provider manifest.
        
        
            When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest.
            A DbProviderManifest object that represents the provider manifest.
            The token information associated with the provider manifest.
        
        
            
            Gets the  that will be used to execute methods that use the specified connection.
            
            The database connection
            
            A new instance of 
            
        
        
            
            Gets the  that will be used to execute methods that use the specified connection.
            Uses MetadataWorkspace for faster lookup.
            
            The database connection
            
            A new instance of 
            
        
        
            
            Gets the spatial data reader for the .
            
            The spatial data reader.
            The reader where the spatial data came from.
            The manifest token associated with the provider manifest.
        
        
            
            Gets the spatial services for the .
            
            The spatial services.
            The token information associated with the provider manifest.
        
        
            Gets the spatial services for the .
            The spatial services.
            Information about the database that the spatial services will be used for.
        
        
            
            Gets the spatial data reader for the .
            
            The spatial data reader.
            The reader where the spatial data came from.
            The token information associated with the provider manifest.
        
        
            
            Gets the spatial services for the .
            
            The spatial services.
            The token information associated with the provider manifest.
        
        
            
            Sets the parameter value and appropriate facets for the given .
            
            The parameter.
            The type of the parameter.
            The value of the parameter.
        
        
            Returns providers given a connection.
            
            The  instanced based on the specified connection.
            
            Connection to provider.
        
        
            Retrieves the DbProviderFactory based on the specified DbConnection.
            The retrieved DbProviderFactory.
            The connection to use.
        
        
            
            Return an XML reader which represents the CSDL description
            
             An XmlReader that represents the CSDL description 
        
        
            Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token.
            
            Individual statements should be separated using database-specific DDL command separator.
            It is expected that the generated script would be executed in the context of existing database with
            sufficient permissions, and it should not include commands to create the database, but it may include
            commands to create schemas and other auxiliary objects such as sequences, etc.
            
            A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token.
            The provider manifest token identifying the target version.
            The structure of the database.
        
        
            
            Generates a data definition language (DDL) script that creates schema objects 
            (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection 
            parameter and targeted for the version of the database corresponding to the provider manifest token.
            
            
            Individual statements should be separated using database-specific DDL command separator.
            It is expected that the generated script would be executed in the context of existing database with
            sufficient permissions, and it should not include commands to create the database, but it may include
            commands to create schemas and other auxiliary objects such as sequences, etc.
            
             The provider manifest token identifying the target version. 
             The structure of the database. 
            
            A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter 
            and targeted for the version of the database corresponding to the provider manifest token.
            
        
        
            
            Creates a database indicated by connection and creates schema objects
            (tables, primary keys, foreign keys) based on the contents of storeItemCollection.
            
            Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter.
            Execution timeout for any commands needed to create the database.
            The collection of all store items based on which the script should be created.
        
        
            Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection.
            Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter.
            Execution timeout for any commands needed to create the database.
            The collection of all store items based on which the script should be created.
        
        
            Returns a value indicating whether a given database exists on the server.
            True if the provider can deduce the database only based on the connection.
            Connection to a database whose existence is checked by this method.
            Execution timeout for any commands needed to determine the existence of the database.
            The collection of all store items from the model. This parameter is no longer used for determining database existence.
        
        
            Returns a value indicating whether a given database exists on the server.
            True if the provider can deduce the database only based on the connection.
            Connection to a database whose existence is checked by this method.
            Execution timeout for any commands needed to determine the existence of the database.
            The collection of all store items from the model. This parameter is no longer used for determining database existence.
        
        
            Deletes the specified database.
            Connection to an existing database that needs to be deleted.
            Execution timeout for any commands needed to delete the database.
            The collection of all store items from the model. This parameter is no longer used for database deletion.
        
        
            Deletes the specified database.
            Connection to an existing database that needs to be deleted.
            Execution timeout for any commands needed to delete the database.
            The collection of all store items from the model. This parameter is no longer used for database deletion.
        
        
            
            Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path,
            or returns the given string if it does not start with |DataDirectory|.
            
             The path to expand. 
             The expanded path. 
        
        
            
            Adds an  that will be used to resolve additional default provider
            services when a derived type is registered as an EF provider either using an entry in the application's
            config file or through code-based registration in .
            
            The resolver to add.
        
        
            
            Called to resolve additional default provider services when a derived type is registered as an
            EF provider either using an entry in the application's config file or through code-based
            registration in . The implementation of this method in this
            class uses the resolvers added with the AddDependencyResolver method to resolve
            dependencies.
            
            
            Use this method to set, add, or change other provider-related services. Note that this method
            will only be called for such services if they are not already explicitly configured in some
            other way by the application. This allows providers to set default services while the
            application is still able to override and explicitly configure each service if required.
            See  and  for more details.
            
            The type of the service to be resolved.
            An optional key providing additional information for resolving the service.
            An instance of the given type, or null if the service could not be resolved.
        
        
            
            Called to resolve additional default provider services when a derived type is registered as an
            EF provider either using an entry in the application's config file or through code-based
            registration in . The implementation of this method in this
            class uses the resolvers added with the AddDependencyResolver method to resolve
            dependencies.
            
            The type of the service to be resolved.
            An optional key providing additional information for resolving the service.
            All registered services that satisfy the given type and key, or an empty enumeration if there are none.
        
        
            
            A specialization of the ProviderManifest that accepts an XmlReader
            
        
        
            
            Initializes a new instance of the  class.
            
            
            An  object that provides access to the XML data in the provider manifest file.
            
        
        
            Returns the list of facet descriptions for the specified Entity Data Model (EDM) type.
            
            A collection of type  that contains the list of facet descriptions for the specified EDM type.
            
            
            An  for which the facet descriptions are to be retrieved.
            
        
        
            Returns the list of primitive types supported by the storage provider.
            
            A collection of type  that contains the list of primitive types supported by the storage provider.
            
        
        
            Returns the list of provider-supported functions.
            
            A collection of type  that contains the list of provider-supported functions.
            
        
        
            Gets the namespace name supported by this provider manifest.
            The namespace name supported by this provider manifest.
        
        
            Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name.
            The best mapped equivalent EDM type for a specified storage type name.
        
        
            Gets the best mapped equivalent storage primitive type for a specified storage type name.
            The best mapped equivalent storage primitive type for a specified storage type name.
        
        
            
            Class for representing a collection of items.
            Most of the implementation for actual maintenance of the collection is
            done by MetadataCollection
            
        
        
            
            Class representing a read-only wrapper around MetadataCollection
            
             The type of items in this collection 
        
        
            
            The constructor for constructing a read-only metadata collection to wrap another MetadataCollection.
            
             The metadata collection to wrap 
            Thrown if collection argument is null
        
        
            Retrieves an item from this collection by using the specified identity.
            An item from this collection.
            The identity of the item to be searched for.
            true to perform the case-insensitive search; otherwise, false. 
        
        
            Determines whether the collection contains an item with the specified identity.
            true if the collection contains the item to be searched for; otherwise, false. The default is false.
            The identity of the item.
        
        
            Retrieves an item from this collection by using the specified identity.
            true if there is an item that matches the search criteria; otherwise, false. 
            The identity of the item to be searched for.
            true to perform the case-insensitive search; otherwise, false. 
            When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null.
        
        
            Returns an enumerator that can iterate through this collection.
            
            A  that can be used to iterate through this
            
            .
            
        
        
            Returns the index of the specified value in this collection.
            The index of the specified value in this collection.
            A value to seek.
        
        
            Gets a value indicating whether this collection is read-only.
            true if this collection is read-only; otherwise, false.
        
        
            Gets an item from this collection by using the specified identity.
            An item from this collection.
            The identity of the item to be searched for.
        
        
            
            Returns the metadata collection over which this collection is the view
            
        
        
            
            The enumerator for MetadataCollection
            
        
        
            
            Constructor for the enumerator
            
             The collection that this enumerator should enumerate on 
        
        
            Disposes of this enumerator.
        
        
            
            Moves to the next member in the collection of type
            
            .
            
            
            true if the enumerator is moved in the collection of type
            
            ; otherwise, false.
            
        
        
            
            Positions the enumerator before the first position in the collection of type
            
            .
            
        
        
            Gets the member at the current position. 
            The member at the current position.
        
        
            
            Gets the member at the current position
            
        
        
            
            The default constructor for ItemCollection
            
        
        
            
            Adds an item to the collection
            
             The item to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the item that is being added already belongs to another ItemCollection
            Thrown if the ItemCollection already contains an item with the same identity
        
        
            
            Adds a collection of items to the collection
            
             The items to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the item that is being added already belongs to another ItemCollection
            Thrown if the ItemCollection already contains an item with the same identity
        
        
            
            Returns a strongly typed  object by using the specified identity.
            
            The item that is specified by the identity.
            The identity of the item.
            The type returned by the method.
        
        
            
            Returns a strongly typed  object by using the specified identity from this item collection.
            
            true if there is an item that matches the search criteria; otherwise, false.
            The identity of the item.
            
            When this method returns, the output parameter contains a
            
            object. If there is no global item with the specified identity in the item collection, this output parameter contains null.
            
            The type returned by the method.
        
        
            
            Returns a strongly typed  object by using the specified identity from this item collection.
            
            true if there is an item that matches the search criteria; otherwise, false.
            The identity of the item.
            true to perform the case-insensitive search; otherwise, false.
            
            When this method returns, the output parameter contains a
            
            object. If there is no global item with the specified identity in the item collection, this output parameter contains null.
            
            The type returned by the method.
        
        
            
            Returns a strongly typed  object by using the specified identity with either case-sensitive or case-insensitive search.
            
            The item that is specified by the identity.
            The identity of the item.
            true to perform the case-insensitive search; otherwise, false.
            The type returned by the method.
        
        
            Returns all the items of the specified type from this item collection.
            
            A collection of type  that contains all the items of the specified type.
            
            The type returned by the method.
        
        
            
            Returns an  object by using the specified type name and the namespace name in this item collection.
            
            
            An  object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null.
            
            The name of the type.
            The namespace of the type.
        
        
            
            Returns an  object by using the specified type name and the namespace name from this item collection.
            
            true if there is a type that matches the search criteria; otherwise, false.
            The name of the type.
            The namespace of the type.
            
            When this method returns, this output parameter contains an
            
            object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null.
            
        
        
            
            Returns an  object by using the specified type name and the namespace name from this item collection.
            
            
            An  object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null.
            
            The name of the type.
            The namespace of the type.
            true to perform the case-insensitive search; otherwise, false.
        
        
            
            Returns an  object by using the specified type name and the namespace name from this item collection.
            
            true if there is a type that matches the search criteria; otherwise, false. 
            The name of the type.
            The namespace of the type.
            true to perform the case-insensitive search; otherwise, false.
            
            When this method returns, this output parameter contains an
            
            object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null.
            
        
        
            Returns all the overloads of the functions by using the specified name from this item collection.
            
            A collection of type  that contains all the functions that have the specified name.
            
            The full name of the function.
        
        
            Returns all the overloads of the functions by using the specified name from this item collection.
            
            A collection of type  that contains all the functions that have the specified name.
            
            The full name of the function.
            true to perform the case-insensitive search; otherwise, false.
        
        
            Returns all the overloads of the functions by using the specified name from this item collection.
            A collection of type ReadOnlyCollection that contains all the functions that have the specified name.
            A dictionary of functions.
            The full name of the function.
            true to perform the case-insensitive search; otherwise, false.
        
        
            
            Gets the function as specified by the function key.
            All parameters are assumed to be .
            
             Name of the function 
             types of the parameters 
             true for case-insensitive lookup 
             The function that needs to be returned 
             The function as specified in the function key or null 
            if functionName or parameterTypes argument is null
            if no function is found with the given name or with given input parameters
        
        
            
            Returns an  object by using the specified entity container name.
            
            If there is no entity container, this method returns null; otherwise, it returns the first one.
            The name of the entity container.
        
        
            
            Returns an  object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container.
            
            true if there is an entity container that matches the search criteria; otherwise, false.
            The name of the entity container.
            
            When this method returns, it contains an  object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
            
        
        
            
            Returns an  object by using the specified entity container name.
            
            If there is no entity container, this method returns null; otherwise, it returns the first entity container.
            The name of the entity container.
            true to perform the case-insensitive search; otherwise, false.
        
        
            
            Returns an  object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
            
            true if there is an entity container that matches the search criteria; otherwise, false.
            The name of the entity container.
            true to perform the case-insensitive search; otherwise, false.
            
            When this method returns, it contains an  object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
            
        
        
            
            Given the canonical primitive type, get the mapping primitive type in the given dataspace
            
             canonical primitive type 
             The mapped scalar type 
        
        
            
            Determines whether this item collection is equivalent to another. At present, we look only
            at object reference equivalence. This is a somewhat reasonable approximation when caching
            is enabled, because collections are identical when their source resources (including
            provider) are known to be identical.
            
             Collection to compare. 
             true if the collections are equivalent; false otherwise 
        
        
            Gets the data model associated with this item collection. 
            The data model associated with this item collection. 
        
        
            
            Return the function lookUpTable
            
        
        
            
            EntityRecordInfo class providing a simple way to access both the type information and the column information.
            
        
        
            
            Initializes a new instance of the  class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information.
            
            
            The  of the entity represented by the
            
            described by this
            
            object.
            
            
            An enumerable collection of  objects that represent column information.
            
            The key for the entity.
            The entity set to which the entity belongs.
        
        
            
            Reusing TypeUsage and FieldMetadata from another EntityRecordInfo which has all the same info
            but with a different EntityKey instance.
            
        
        
            
            Gets the  for the entity.
            
            The key for the entity.
        
        
            
            AST node for an aliased expression.
            
        
        
            
            Represents base class for nodes in the eSQL abstract syntax tree OM.
            
        
        
            
            Ast Node error context.
            
        
        
            
            Constructs an aliased expression node.
            
        
        
            
            Constructs an aliased expression node with null alias.
            
        
        
            
            Returns expression alias identifier, or null if not aliased.
            
        
        
            
            Represents apply expression.
            
        
        
            
            Initializes apply clause item.
            
        
        
            
            Returns apply left expression.
            
        
        
            
            Returns apply right expression.
            
        
        
            
            Returns apply kind (cross,outer).
            
        
        
            
            Represents apply kind (cross,outer).
            
        
        
            
            An ast node represents a generic list of ast nodes.
            
        
        
            
            Default constructor.
            
        
        
            
            Initializes adding one item to the list.
            
             expression 
        
        
            
            Add an item to the list, return the updated list.
            
        
        
            
            Returns the number of elements in the list.
            
        
        
            
            Indexer to the list entries.
            
             integer position of the element in the list 
        
        
            
            Represents a builtin expression ast node.
            
        
        
            
            Defines the function class of builtin expressions.
            
        
        
            
            Represents the Seached Case Expression - CASE WHEN THEN [ELSE] END.
            
        
        
            
            Initializes case expression without else sub-expression.
            
             whenThen expression list 
        
        
            
            Initializes case expression with else sub-expression.
            
             whenThen expression list 
             else expression 
        
        
            
            Returns the list of WhenThen expressions.
            
        
        
            
            Returns the optional Else expression.
            
        
        
            
            Represents an ast node for a collection type definition.
            
        
        
            
            Initializes collection type definition using the element type definition.
            
        
        
            
            Returns collection element type defintion.
            
        
        
            
            Represents eSQL command as node.
            
        
        
            
            Initializes eSQL command.
            
             optional namespace imports 
             command statement 
        
        
            
            Returns optional namespace imports. May be null.
            
        
        
            
            Returns command statement.
            
        
        
            
            Represents DEREF(epxr) expression.
            
        
        
            
            Initializes DEREF expression node.
            
        
        
            
            Ieturns ref argument expression.
            
        
        
            
            Represents KEY(expr) expression.
            
        
        
            
            Initializes KEY expression.
            
        
        
            
            Returns KEY argument expression.
            
        
        
            
            Represents multiset constructor expression.
            
        
        
            
            Returns list of elements as alias expressions.
            
        
        
            
            Represents CREATEREF(entitySet, keys) expression.
            
        
        
            
            Initializes CreateRefExpr.
            
             expression representing the entity set 
        
        
            
            Initializes CreateRefExpr.
            
        
        
            
            Returns the expression for the entity set.
            
        
        
            
            Returns the expression for the keys.
            
        
        
            
            Gets optional typeidentifier. May be null.
            
        
        
            
            Represents distinct kind (none=all,all,distinct).
            
        
        
            
            Represents dotExpr: expr.Identifier
            
        
        
            
            initializes
            
        
        
            
            Returns true if all parts of this expression are identifiers like in "a.b.c",
            false for expressions like "FunctionCall().a.b.c".
            
        
        
            
            For the following expression: "a.b.c.d", Left returns "a.b.c".
            
        
        
            
            For the following expression: "a.b.c.d", Identifier returns "d".
            
        
        
            
            Represents from clause.
            
        
        
            
            Initializes from clause.
            
        
        
            
            List of from clause items.
            
        
        
            
            Represents single from clause item.
            
        
        
            
            Initializes as 'simple' aliased expression.
            
        
        
            
            Initializes as join clause item.
            
        
        
            
            Initializes as apply clause item.
            
        
        
            
            From clause item expression.
            
        
        
            
            From clause item kind (alias,join,apply).
            
        
        
            
            From clause item kind.
            
        
        
            
            Represents an ast node for an inline function definition.
            
        
        
            
            Initializes function definition using the name, the optional argument definitions and the body expression.
            
        
        
            
            Returns function name.
            
        
        
            
            Returns optional parameter definition list. May be null.
            
        
        
            
            Returns function body.
            
        
        
            
            Returns start position of the function definition in the command text.
            
        
        
            
            Returns end position of the function definition in the command text.
            
        
        
            
            Base class for  and .
            
        
        
            
            True if it is a "distinct" aggregate.
            
        
        
            
            Represents group by clause.
            
        
        
            
            Initializes GROUP BY clause
            
        
        
            
            Group items.
            
        
        
            
            Represents GROUPPARTITION(expr) expression.
            
        
        
            
            Initializes GROUPPARTITION expression node.
            
        
        
            
            Return GROUPPARTITION argument expression.
            
        
        
            
            Represents having clause.
            
        
        
            
            Initializes having clause.
            
        
        
            
            Returns having inner expression.
            
        
        
            
            True if predicate has method calls.
            
        
        
            
            Represents an identifier ast node.
            
        
        
            
            Initializes identifier.
            
        
        
            
            Returns identifier name (without escaping chars).
            
        
        
            
            True if an identifier is escaped.
            
        
        
            
            Represents join clause item.
            
        
        
            
            Initializes join clause item without ON expression.
            
        
        
            
            Initializes join clause item with ON expression.
            
        
        
            
            Returns join left expression.
            
        
        
            
            Returns join right expression.
            
        
        
            
            Join kind (cross, inner, full, left outer,right outer).
            
        
        
            
            Returns join on expression.
            
        
        
            
            Represents join kind (cross,inner,leftouter,rightouter).
            
        
        
            
            Represents a literal ast node.
            
        
        
            
            Initializes a literal ast node.
            
             literal value in cql string representation 
             literal value class 
             query 
             input position 
        
        
            
            Static factory to create boolean literals by value only.
            
        
        
            
            Prefix a numeric literal with a sign.
            
        
        
            
            Performs conversion of numeric strings that have no type suffix hint.
            
        
        
            
            Converts boolean literal value.
            
        
        
            
            Returns the string literal value.
            
        
        
            
            Converts hex string to byte array.
            
        
        
            
            Parse single hex char.
            PRECONDITION - hexChar must be a valid hex digit.
            
        
        
            
            Converts datetime literal value.
            
        
        
            
            Converts time literal value.
            
        
        
            
            Converts guid literal value.
            
        
        
            
            True if literal is a number.
            
        
        
            
            True if literal is a signed number.
            
        
        
            
            True if literal is a string.
            
            
            
            
        
        
            
            True if literal is a unicode string.
            
            
            
            
        
        
            
            True if literal is the eSQL untyped null.
            
            
            
            
        
        
            
            Returns the original literal value.
            
        
        
            
            Returns literal converted value.
            
            
            
            
        
        
            
            Returns literal value type. If value is eSQL untyped null, returns null.
            
            
            
            
        
        
            
            Defines literal value kind, including the eSQL untyped NULL.
            
        
        
            
            Represents invocation expression: expr(...)
            
        
        
            
            Initializes method ast node.
            
        
        
            
            Intializes a method ast node with relationships.
            
        
        
            
            For the following expression: "a.b.c.Foo()", returns "a.b.c.Foo".
            
        
        
            
            Argument list.
            
        
        
            
            True if there are associated relationship expressions.
            
        
        
            
            Optional relationship list.
            
        
        
            
            Represents an ast node for namespace import (using nsABC;)
            
        
        
            
            Initializes a single name import.
            
        
        
            
            Initializes a single name import.
            
        
        
            
            Initializes aliased import.
            
        
        
            
            Returns ns alias id if exists.
            
        
        
            
            Returns namespace name.
            
        
        
            
            Represents a relationship navigation operator NAVIGATE(sourceRefExpr, Relationship-Type-Name [,ToEndName [,FromEndName]]).
            Also used in WITH RELATIONSHIP clause as RELATIONSHIP(targetRefExpr, Relationship-Type-Name [,FromEndName [,ToEndName]]).
            
        
        
            
            Initializes relationship navigation expression.
            
        
        
            
            Entity reference expression.
            
        
        
            
            Relship type name.
            
        
        
            
            TO end identifier.
            
        
        
            
            FROM end identifier.
            
        
        
            
            Represents order by clause.
            
        
        
            
            Initializes order by clause.
            
        
        
            
            Returns order by clause items.
            
        
        
            
            Returns skip sub clause ast node.
            
        
        
            
            Returns limit sub-clause ast node.
            
        
        
            
            True if order by has method calls.
            
        
        
            
            Represents a order by clause item.
            
        
        
            
            Initializes non-collated order by clause item.
            
        
        
            
            Initializes collated order by clause item.
            
             
             
             optional Collation identifier 
        
        
            
            Oeturns order expression.
            
        
        
            
            Returns order kind (none,asc,desc).
            
        
        
            
            Returns collattion identifier if one exists.
            
        
        
            
            Represents order kind (none=asc,asc,desc).
            
        
        
            
            Represents a paren expression ast node.
            
        
        
            
            Initializes paren expression.
            
        
        
            
            Returns the parenthesized expression.
            
        
        
            
            Represents a query expression ast node.
            
        
        
            
            Initializes a query expression ast node.
            
             select clause 
             from clasuse 
             optional where clause 
             optional group by clause 
             optional having clause 
             optional order by clause 
        
        
            
            Returns select clause.
            
        
        
            
            Returns from clause.
            
        
        
            
            Returns optional where clause (expr).
            
        
        
            
            Returns optional group by clause.
            
        
        
            
            Returns optional having clause (expr).
            
        
        
            
            Returns optional order by clause.
            
        
        
            
            Returns true if method calls are present.
            
        
        
            
            Represents an ast node for a query parameter.
            
        
        
            
            Initializes parameter
            
            
            Thrown if the parameter name does not conform to the expected format
            
        
        
            
            Returns parameter parameterName (without @ sign).
            
        
        
            
            Represents query statement AST.
            
        
        
            
            Represents base class for the following statements:
            - QueryStatement
            - InsertStatement
            - UpdateStatement
            - DeleteStatement
            
        
        
            
            Initializes query statement.
            
             optional function definitions 
             query top level expression 
        
        
            
            Returns optional function defintions. May be null.
            
        
        
            
            Returns query top-level expression.
            
        
        
            
            Represents REF(expr) expression.
            
        
        
            
            Initializes REF expression node.
            
        
        
            
            Return ref argument expression.
            
        
        
            
            Represents an ast node for a reference type definition.
            
        
        
            
            Initializes reference type definition using the referenced type identifier.
            
        
        
            
            Returns referenced type identifier.
            
        
        
            
            Represents Row contructor expression.
            
        
        
            
            Returns list of elements as aliased expressions.
            
        
        
            
            Represents an ast node for a row type definition.
            
        
        
            
            Initializes row type definition using the property definitions.
            
        
        
            
            Returns property definitions.
            
        
        
            
            Represents select clause.
            
        
        
            
            Initialize SelectKind.SelectRow clause.
            
        
        
            
            Projection list.
            
        
        
            
            Select kind (row or value).
            
        
        
            
            Distinct kind (none,all,distinct).
            
        
        
            
            Optional top expression.
            
        
        
            
            True if select list has method calls.
            
        
        
            
            Represents select kind (value,row).
            
        
        
            
            Represents an ast node for a property definition (name/type)
            
        
        
            
            Initializes property definition using the name and the type definition.
            
        
        
            
            Returns property name.
            
        
        
            
            Returns property type.
            
        
        
            
            Represents the when then sub expression.
            
        
        
            
            Initializes WhenThen sub-expression.
            
             When expression 
             Then expression 
        
        
            
            Returns When expression.
            
        
        
            
            Returns Then Expression.
            
        
        
            
            Error reporting Helper
            
        
        
            
            Reports function overload resolution error.
            
        
        
            
            provides error feedback for aliases already used in a given context
            
        
        
            
            Reports incompatible type error
            
        
        
            
            navigates through the type structure to find where the incompatibility happens
            
        
        
            
            Represents Cql scanner and helper functions.
            
        
        
            
            set for DOT expressions
            
        
        
            
            set for AS expressions
            
        
        
            
            set for function definitions
            
        
        
            Defines the set of characters to be interpreted as mandatory line breaks
            according to UNICODE 5.0, section 5.8 Newline Guidelines.These are 'mandatory'
            line breaks. We do not handle other 'line breaking opportunities'as defined by
            UNICODE 5.0 since they are intended for presentation. The mandatory line break
            defines breaking opportunities that must not be ignored. For all practical purposes
            the interpretation of mandatory breaks determines the end of one line and consequently
            the start of the next line of query text.
            NOTE that CR and CRLF is treated as a composite 'character' and was obviously and intentionaly
            omitted in the character set bellow.
        
        
            
            Intializes scanner
            
             input query 
             parser options 
        
        
            
            Creates a new token.
            
             tokenid 
             ast node 
        
        
            
            Creates a new token representing a terminal.
            
             tokenid 
             lexical value 
        
        
            
            Advances input position.
            
             updated input position 
        
        
            
            returns true if given term is a eSQL keyword
            
        
        
            
            Map lexical symbol to a keyword or an identifier.
            
             lexeme 
             Token 
        
        
            
            Returns true when current symbol looks like a caninical function name in a function call.
            Method only treats canonical functions with names ovelapping eSQL keywords.
            This check allows calling these canonical functions without escaping their names.
            Check lookAheadChar for a left paren to see if looks like a function call, check symbol against the list of
            canonical functions with names overlapping keywords.
            
        
        
            
            Skip insignificant whitespace to reach the first potentially significant char.
            
        
        
            
            Resets "symbol as identifier" state.
            
             see function callers for more info 
        
        
            
            Maps operator to respective token
            
             operator lexeme 
             Token 
        
        
            
            Maps punctuator to respective token
            
             punctuator 
             Token 
        
        
            
            Maps double quoted string to a literal or an idendifier
            
             Token 
        
        
            
            Creates literal token
            
             literal 
             literal kind 
             Literal Token 
        
        
            
            Creates parameter token
            
             param 
             Parameter Token 
        
        
            
            handles escaped identifiers
            ch will always be translated i.e. normalized.
            
        
        
            
            Returns true if given char is a new line character defined by
            UNICODE 5.0, section 5.8 Newline Guidelines.
            These are 'mandatory' line breaks. NOTE that CRLF is treated as a
            composite 'character' and was intentionaly omitted in the character set bellow.
            
        
        
            
            extracts single quoted literal 'payload'. literal MUST BE normalized.
            
        
        
            
            returns true if guid literal value format is valid
            
        
        
            
            returns true if binary literal value format is valid
            
        
        
            
            Returns true if datetime literal value format is valid
            allowed format is: dddd-d?d-d?d{space}+d?d:d?d(:d?d(.d?d?d)?)?
            where d is any decimal digit.
            
        
        
            
            Returns true if time literal value format is valid
            allowed format is: +d?d:d?d(:d?d(.d?d?d)?)?
            where d is any decimal digit.
            
        
        
            
            Returns true if datetimeoffset literal value format is valid
            allowed format is: dddd-d?d-d?d{space}+d?d:d?d(:d?d(.d?d?d)?)?([+-]d?d:d?d)?
            where d is any decimal digit.
            
        
        
            
            Returns current lexeme
            
        
        
            
            Returns current input position
            
        
        
            
            Represents a token to be used in parser stack.
            
        
        
            
            Represents a terminal token
            
        
        
            
            Represents the Cql Parser engine. Also, implements helpers and util routines.
            
        
        
            
            Contains inclusive count of method expressions.
            
        
        
            
            Main entry point for parsing cql.
            
             query text 
            Thrown when Syntatic rules are violated and the query cannot be accepted
             Abstract Syntax Tree 
        
        
            
            Internal entry point
            
        
        
            
            Returns query string
            
        
        
            
            Returns ParserOptions used
            
            
            Once parse has been invoked, ParserOptions are frozen and cannot be changed. otherwise a EntityException exception will be thrown
            
        
        
            
            Provides eSQL text Parsing and Compilation services.
            
            
            This class exposes services that perform syntactic and semantic analysis of eSQL commands.
            The syntactic validation ensures the given command conforms to eSQL formal grammar. The semantic analysis will
            perform (list not exhaustive): type resolution and validation, ensure semantic and scoping rules, etc.
            The services exposed by this class are:
            
                - 
                    Translation from eSQL text commands to valid
                    
                    s
                
- 
                    Translation from eSQL text commands to valid
                    
                    s
                
Queries can be formulated in O-Space, C-Space and S-Space and the services exposed by this class are agnostic of the especific typespace or
            metadata instance passed as required parameter in the semantic analysis by the perspective parameter. It is assumed that the perspective and
            metadata was properly initialized.
            Provided that the command is syntacticaly correct and meaningful within the given typespace, the result will be a valid
            
            or
             otherwise EntityException will be thrown indicating the reason(s) why the given command cannot be accepted.
            It is also possible that MetadataException and MappingException be thrown if mapping or metadata related problems are encountered during compilation.
            - 
                
            
- 
                
            
- 
                
            
Compiles an eSQL command producing a validated .
            
             eSQL command text 
             perspective 
            
            parser options 
            
             ordinary parameters 
             A parse result with the command tree produced by parsing the given command. 
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted
            Thrown when metadata related service requests fail
            Thrown when mapping related service requests fail
            
            This method is not thread safe.
            
            
            
        
        
            
            Compiles an eSQL query command producing a validated .
            
             eSQL query command text 
             perspective 
            
            parser options 
            
             ordinary command parameters 
             command free variables 
             The query expression tree produced by parsing the given query command. 
            Thrown when Syntatic or Semantic rules are violated and the query expression cannot be accepted
            Thrown when metadata related service requests fail
            Thrown when mapping related service requests fail
            
            This method is not thread safe.
            
            
            
        
        
            
            Parse eSQL command string into an AST
            
             eSQL command 
            
            parser options 
            
             Ast 
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted
            
            This method is not thread safe.
            
            
        
        
            
            Performs semantic conversion, validation on a command AST and creates a 
            
             Abstract Syntax Tree of the command 
             perspective 
            
            parser options 
            
             ordinary command parameters 
             a parse result with a valid command tree 
            
            Parameters name/types must be bound before invoking this method
            
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted.
            Thrown as inner exception of a EntityException when metadata related service requests fail.
            Thrown as inner exception of a EntityException when mapping related service requests fail.
            
            This method is not thread safe.
            
            
            
        
        
            
            Performs semantic conversion, validation on a query command AST and creates a 
            
             Abstract Syntax Tree of the query command 
             perspective 
            
            parser options 
            
             ordinary command parameters 
             command free variables 
            
            Parameters name/types must be bound before invoking this method
            
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted.
            Thrown as inner exception of a EntityException when metadata related service requests fail.
            Thrown as inner exception of a EntityException when mapping related service requests fail.
            
            This method is not thread safe.
            
            
            
        
        
            
            Represents an utility for creating anonymous IDisposable implementations.
            
        
        
            
            Represents an eSQL expression classified as .
            
        
        
            
            Abstract class representing the result of an eSQL expression classification.
            
        
        
            
            Public Entity SQL Parser class.
            
        
        
            
            Construct a parser bound to the specified workspace with the specified perspective.
            
        
        
            Parse the specified query with the specified parameters.
            
            The  containing
            
            and information describing inline function definitions if any.
            
            The EntitySQL query to be parsed.
            The optional query parameters.
        
        
            
            Parse a specific query with a specific set variables and produce a
            
            .
            
            
            The  containing
            
            and information describing inline function definitions if any.
            
            The query to be parsed.
            The optional query variables.
        
        
            
            Represents eSQL error context.
            
        
        
            
            Represents the position of the error in the input stream.
            
        
        
            
            Represents the additional/contextual information related to the error position/cause.
            
        
        
            
            Defines how ErrorContextInfo should be interpreted.
            
        
        
            
            Represents a referece to the original command text.
            
        
        
            
            Represents eSQL expression class.
            
        
        
            
            A value expression such as a literal, variable or a value-returning expression.
            
        
        
            
            An expression returning an entity container.
            
        
        
            
            An expression returning a metadata member such as a type, function group or namespace.
            
        
        
            
            Represents group aggregate information during aggregate construction/resolution.
            
        
        
            
            Updates referenced scope index of the aggregate.
            Function call is not allowed after  has been called.
            
        
        
            
            Validates the aggregate info and computes  property.
            Seals the aggregate info object (no more AddContainedAggregate(...), RemoveContainedAggregate(...) and UpdateScopeIndex(...) calls allowed).
            
        
        
            
            Recursively validates that  of all contained aggregates
            is outside of the range of scope regions defined by  and
            
            .
            Throws in the case of violation.
            
        
        
            
            Function call is not allowed after  has been called.
            Adding new contained aggregate may invalidate the current aggregate.
            
        
        
            
            Function call is _allowed_ after  has been called.
            Removing contained aggregates cannot invalidate the current aggregate.
            Consider the following query:
            select value max(a + anyelement(select value max(b + max(a + anyelement(select value c1
            from {2} as c group by c as c1)))
            from {1} as b group by b as b1))
            from {0} as a group by a as a1
            Outer aggregate - max1, middle aggregate - max2, inner aggregate - max3.
            In this query after max1 have been processed as a collection function, max2 and max3 are wired as containing/contained.
            There is a point later when max1 is processed as an aggregate, max2 is processed as a collection function and max3 is processed as
            an aggregate. Note that at this point the "aggregate" version of max2 is dropped and detached from the AST node when the middle scope region
            completes processing; also note that because evaluating scope region of max3 is the outer scope region, max3 aggregate info is still attached to
            the AST node and it is still wired to the dropped aggregate info object of max2. At this point max3 does not see new max2 as a containing aggregate,
            and it rewires to max1, during this rewiring it needs to to remove itself from the old max2 and add itself to max1.
            The old max2 at this point is sealed, so the removal is performed on the sealed object.
            
        
        
            
            Null when  is created for a group key processing.
            
        
        
            
            Scope region that contains the aggregate expression.
            
        
        
            
            Gets/sets the innermost referenced scope region of the current aggregate.
            This property is used to save/restore the scope region value during a potentially throw-away attempt to
            convert an  as a collection function in the
            
            method.
            Setting the value is not allowed after  has been called.
            
        
        
            
            Scope region that evaluates the aggregate expression.
            
        
        
            
            Parent aggregate expression that contains the current aggregate expression.
            May be null.
            
        
        
            
            Entity SQL query inline function definition, returned as a part of .
            
        
        
             Function name. 
        
        
             Function body and parameters. 
        
        
             Start position of the function definition in the eSQL query text. 
        
        
             End position of the function definition in the eSQL query text. 
        
        
            
            Represents function overload resolution mechanism, used by L2E and eSQL frontends.
            
        
        
            
            Resolves  against the list of function signatures.
            
             Funciton metadata 
        
        
            
            Resolves  against the list of function signatures.
            
             Funciton metadata 
        
        
            
            Resolves  against the list of function signatures.
            
             
             
             function formal signature getter 
             TypeUsage getter for a signature param 
             ParameterMode getter for a signature param 
             
             
             
             
             
             
             Funciton metadata 
        
        
            
            Check promotability, returns true if argument list is promotable to the overload and overload was successfully ranked, otherwise false.
            Ranks the overload parameter types against the argument list.
            
             list of argument types 
             flattened list of argument types 
             list of overload parameter types 
             TypeUsage getter for the overload parameters 
             ParameterMode getter for the overload parameters 
             
             
             
             
             returns total promotion rank of the overload, 0 if no arguments 
             returns individual promotion ranks of the overload parameters, empty array if no arguments 
        
        
            
            Ranks the  ->  promotion.
            Range of values: 0 to negative infinity, with 0 as the best rank (promotion to self).
             must be promotable to , otherwise internal error is thrown.
            
        
        
            
            Inside of an aggregate function (Max, Min, etc).
            All range variables originating on the defining scope of this aggregate should yield
            
            .
            
        
        
            
            Inside of GROUPPARTITION expression.
            All range variables originating on the defining scope of this aggregate should yield
            
            .
            
        
        
            
            Inside of a group key definition
            All range variables originating on the defining scope of this aggregate should yield
            
            .
            
        
        
            
            Represents group key during GROUP BY clause processing phase, used during group aggregate search mode.
            This entry will be replaced by the  when GROUP BY processing is complete.
            
        
        
            
            Represents an entry in the scope.
            
        
        
            
            Returns CQT expression corresponding to the scope entry.
            
        
        
            
            Returns  based expression during the
            
            construction process, otherwise null.
            
        
        
            
            Returns  based expression during the  construction process, otherwise null.
            
        
        
            
            If current scope entry reperesents an alternative group key name (see SemanticAnalyzer.ProcessGroupByClause(...) for more info)
            then this property returns the alternative name, otherwise null.
            
        
        
            
            Represents an eSQL metadata member expression classified as .
            
        
        
            
            Abstract class representing an eSQL expression classified as .
            
        
        
            
            Return the name of the  for error messages.
            
        
        
            
            Represents a group input scope entry that should no longer be referenced.
            
        
        
            
            Represents an eSQL metadata member expression classified as .
            
        
        
            
            Represents an eSQL metadata member expression classified as .
            
        
        
            
            Represents eSQL metadata member expression class.
            
        
        
            
            Represents an eSQL metadata member expression classified as .
            
        
        
            
            Represents an eSQL metadata member expression classified as .
            
        
        
            
            Represents a pair of types to avoid uncessary enumerations to split kvp elements
            
        
        
            
            Entity SQL Parser result information.
            
        
        
             A command tree produced during parsing. 
        
        
            
            List of  objects describing query inline function definitions.
            
        
        
            
            Represents eSQL compilation options.
            
        
        
            
            Sets/Gets eSQL parser compilation mode.
            
        
        
            
            Normal mode. Compiles eSQL command without restrictions.
            Name resolution is case-insensitive (eSQL default).
            
        
        
            
            View generation mode: optimizes compilation process to ignore uncessary eSQL constructs:
            - GROUP BY, HAVING and ORDER BY clauses are ignored.
            - WITH RELATIONSHIP clause is allowed in type constructors.
            - Name resolution is case-sensitive.
            
        
        
            
            Same as CompilationMode.Normal plus WITH RELATIONSHIP clause is allowed in type constructors.
            
        
        
            
            Represents a scope of key-value pairs.
            
        
        
            
            Initialize using a given key comparer.
            
        
        
            
            Add new key to the scope. If key already exists - throw.
            
        
        
            
            Remove an entry from the scope.
            
        
        
            
            Returns true if the key belongs to the scope.
            
        
        
            
            Search item by key. Returns true in case of success and false otherwise.
            
        
        
            
            Represents a group input scope entry that should no longer be referenced.
            
        
        
            
            True if given scope is in the current scope region.
            
        
        
            
            Marks current scope region as performing group/folding operation.
            
        
        
            
            Clears the  flag on the group scope.
            
        
        
            
            Adds group aggregate name to the scope region.
            
        
        
            
            Applies  to all scope entries in the current scope region.
            
        
        
            
            Applies  to all scope entries in the current scope region.
            
        
        
            
            First scope of the region.
            
        
        
            
            Index of the scope region.
            Outer scope regions have smaller index value than inner scope regions.
            
        
        
            
            True when the scope region performs group/folding operation.
            
        
        
            
            Returns list of group aggregates evaluated on the scope region.
            
        
        
            
            True if a recent expression resolution was correlated.
            
        
        
            
            Implements Semantic Analysis and Conversion
            Provides the translation service between an abstract syntax tree to a canonical command tree
            For complete documentation of the language syntax and semantics, refer to http://sqlweb/default.asp?specDirId=764
            The class was designed to be edmType system agnostic by delegating to a given SemanticResolver instance all edmType related services as well as to TypeHelper class, however
            we rely on the assumption that metadata was pre-loaded and is relevant to the query.
            
        
        
            
            Initializes semantic analyzer
            
             initialized SemanticResolver instance for a given typespace/edmType system 
        
        
            
            Entry point to semantic analysis. Converts AST into a .
            
             ast command tree 
            
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted
            Thrown when metadata related service requests fail
            Thrown when mapping related service requests fail
            
             ParseResult with a valid DbCommandTree 
        
        
            
            Converts query command AST into a .
            
             ast command tree 
            
            Thrown when Syntatic or Semantic rules are violated and the query cannot be accepted
            Thrown when metadata related service requests fail
            Thrown when mapping related service requests fail
            
             DbExpression 
        
        
            
            Converts namespace imports and adds them to the edmType resolver.
            
        
        
            
            Dispatches/Converts statement expressions.
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts query statement AST to a 
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts the query statement to a normalized and validated .
            This entry point to the semantic analysis phase is used when producing a
            query command tree or producing only a .
            
             The query statement 
            
            The  instance to use
            
            
            An instance of  , adjusted to handle 'inline' projections and validated to produce a result edmType appropriate for the root of a query command tree.
            
        
        
            
            Ensures that the result of a query expression is valid.
            
        
        
            
            Converts query inline function defintions. Returns empty list in case of no definitions.
            
        
        
            
            Converts general expressions (AST.Node)
            
        
        
            
            Converts general expressions (AST.Node) to a .
            Returns .
            Throws if conversion resulted an a non  resolution.
            Throws if conversion resulted in the untyped null.
            
        
        
            
            Converts general expressions (AST.Node) to a .
            Returns .
            Returns null if expression is the untyped null.
            Throws if conversion resulted an a non  resolution.
            
        
        
            
            Converts left and right expressions. If any of them is the untyped null, derives the edmType and converts to a typed null.
            Throws  if conversion is not possible.
            
        
        
            
            Converts literal expression (AST.Literal)
            
        
        
            
            Converts identifier expression (Identifier)
            
        
        
            
            Converts member access expression (AST.DotExpr)
            
        
        
            
            Converts paren expression (AST.ParenExpr)
            
        
        
            
            Converts GROUPPARTITION expression (AST.GroupPartitionExpr).
            
        
        
            
            Converts invocation expression (AST.MethodExpr)
            
        
        
            
            If methodExpr.Expr is in the form of "Name1.Name2(...)" then ignore entity containers during resolution of the left expression
            in the context of the invocation: "EntityContainer.EntitySet(...)" is not a valid expression and it should not shadow
            a potentially valid interpretation as "Namespace.EntityType/Function(...)".
            
        
        
            
            If methodExpr.Expr is in the form of "Name1.Name2(...)"
            and we are in the view generation mode
            and schema version is less than V2
            then ignore types in the resolution of Name1.
            This is needed in order to support the following V1 case:
            C-space edmType: AdventureWorks.Store
            S-space edmType: [AdventureWorks.Store].Customer
            query: select [AdventureWorks.Store].Customer(1, 2, 3) from ...
            
        
        
            
            Attempts to create a  representing the inline function call.
            Returns false if .DistinctKind != .None.
            Returns false if no one of the overloads matched the given arguments.
            Throws if given arguments cause overload resolution ambiguity.
            
        
        
            
            Converts group aggregates.
            
            
            This method converts group aggregates in two phases:
            Phase 1 - it will resolve the actual inner (argument) expression and then anotate the ast node and add the resolved aggregate
            to the scope
            Phase 2 - if ast node was annotated, just extract the precomputed expression from the scope.
            
        
        
            
            Try to convert as pre resolved group aggregate.
            
        
        
            
            Try convert method expr in a group scope as a collection aggregate
            
             
             
             
             argTypes are returned regardless of the function result 
             
        
        
            
            Creates  representing a new instance of the given edmType.
            Validates and infers argument types.
            
        
        
            
            Creates  representing a model function call.
            Validates overloads.
            
        
        
            
            Converts function call arguments into a list of s.
            In case of no arguments returns an empty list.
            
        
        
            
            Converts command parameter reference expression (AST.QueryParameter)
            
        
        
            
            Converts WITH RELATIONSHIP (AST.RelshipNavigationExpr)
            
             the ast expression 
             The entity that is being constructed for with this RELATIONSHIP clause is processed. 
             the Semantic Resolver context 
             a DbRelatedEntityRef instance 
        
        
            
            Converts relationship navigation expression (AST.RelshipNavigationExpr)
            
        
        
            
            Converts REF expression (AST.RefExpr)
            
        
        
            
            Converts DEREF expression (AST.DerefExpr)
            
        
        
            
            Converts CREATEREF expression (AST.CreateRefExpr)
            
        
        
            
            Converts KEY expression (AST.KeyExpr)
            
        
        
            
            Converts a builtin expression (AST.BuiltInExpr).
            
        
        
            
            Converts Arithmetic Expressions Args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Plus Args - specific case since string edmType is an allowed edmType for '+'
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Logical Expression Args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Equal Comparison Expression Args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Order Comparison Expression Args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Set Expression Args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts Set 'IN' expression args
            
             
             SemanticResolver instance relative to a especif typespace/system 
        
        
            
            Converts a edmType name.
            Type name can be represented by
            - AST.Identifier, such as "Product"
            - AST.DotExpr, such as "Northwind.Product"
            - AST.MethodExpr, such as "Edm.Decimal(10,4)", where "10" and "4" are edmType arguments.
            
        
        
            
            Converts row constructor expression (AST.RowConstructorExpr)
            
        
        
            
            Converts multiset constructor expression (AST.MultisetConstructorExpr)
            
        
        
            
            Converts case-when-then expression (AST.CaseExpr)
            
        
        
            
            Converts query expression (AST.QueryExpr)
            
        
        
            
            Process Select Clause
            
        
        
            
            Process FROM clause.
            
        
        
            
            Process generic FROM clause item: aliasedExpr, JoinClauseItem or ApplyClauseItem.
            Returns  and the  list with entries created by the clause item.
            
        
        
            
            Process a simple FROM clause item.
            Returns  and the  list with a single entry created for the clause item.
            
        
        
            
            Process a JOIN clause item.
            Returns  and the  list with a join-left and join-right entries created for the clause item.
            
        
        
            
            Maps  to .
            
        
        
            
            Process an APPLY clause item.
            Returns  and the  list with an apply-left and apply-right entries created for the clause item.
            
        
        
            
            Maps  to .
            
        
        
            
            Process WHERE clause.
            
        
        
            
            Process HAVING clause.
            
        
        
            
            Process WHERE or HAVING clause predicate.
            
        
        
            
            Process Group By Clause
            
        
        
            
            Generates the list of projections for GROUPPARTITION definitions.
            All GROUPPARTITION definitions over the trivial projection of input are reduced to the value of groupAggregateVarRef,
            only one projection item is created for such definitions.
            Returns null if all GROUPPARTITION definitions are reduced to the value of groupAggregateVarRef.
            
        
        
            
            Returns true if lambda accepts a collection variable and trivially projects out its elements.
            
        
        
            
            Process ORDER BY clause.
            
        
        
            
            Convert "x in multiset(y1, y2, ..., yn)" into
            x = y1 or x = y2 or x = y3 ...
            
             left-expression (the probe) 
             right expression (the collection) 
             Or tree of equality comparisons 
        
        
            
            The primary name of the group key. It is used to refer to the key from other expressions.
            
        
        
            
            Optional alternative name of the group key.
            Used to support the following scenario:
            SELECT Price, p.Price   FROM ... as p GROUP BY p.Price
            In this case the group key Name is "Price" and the AlternativeName is "p.Price" as if it is coming as an escaped identifier.
            
        
        
            
            Implements the semantic resolver in the context of a metadata workspace and typespace.
            
            
            not thread safe
            
        
        
            
            Creates new instance of .
            
        
        
            
            Creates a copy of  with clean scopes and shared inline function definitions inside of the type resolver.
            
        
        
            
            Validates that the specified parameters have valid, non-duplicated names
            
             The set of query parameters 
            
            A valid dictionary that maps parameter names to  s using the current NameComparer
            
        
        
            
            Validates that the specified variables have valid, non-duplicated names
            
             The set of free variables 
            
            A valid dictionary that maps variable names to  s using the current NameComparer
            
        
        
            
            Returns the appropriate expression from a given scope entry.
            May return null for scope entries like .
            
        
        
            
            Performs scope lookup returning the scope entry and its index.
            
        
        
            
            Resolve property  off the .
            
        
        
            
            Try resolving  as a property of the value returned by the .
            
        
        
            
            If  returns a reference, then deref and try resolving  as a property of the dereferenced value.
            
        
        
            
            Resolve entity set or function import  in the 
            
        
        
            
            Resolve namespace, type or function  in the 
            
        
        
            
            Try resolving an internal aggregate name.
            
        
        
            
            Try resolving multipart identifier as an alternative name of a group key (see SemanticAnalyzer.ProcessGroupByClause(...) for more info).
            
        
        
            
            Generates unique internal name.
            
        
        
            
            Creates a new alias name based on the  information.
            
        
        
            
            Returns alias name from  ast node if it contains an alias,
            otherwise creates a new alias name based on the .Expr or
            
            information.
            
        
        
            
            Enters a new scope region.
            
        
        
            
            Rollback all scopes above the .
            
        
        
            
            Enter a new scope.
            
        
        
            
            Leave the current scope.
            
        
        
            
            Returns true if any of the ScopeRegions from the closest to the outermost has IsAggregating = true
            
        
        
            
            Sets the scope region correlation flag based on the scope index of the referenced scope entry.
            
        
        
            
            Enters processing of a function group aggregate.
            
        
        
            
            Enters processing of a group partition aggregate.
            
        
        
            
            Enters processing of a group partition aggregate.
            
        
        
            
            Returns ordinary command parameters. Empty dictionary in case of no parameters.
            
        
        
            
            Returns command free variables. Empty dictionary in case of no variables.
            
        
        
            
            TypeSpace/Metadata/Perspective dependent type resolver.
            
        
        
            
            Returns current Parser Options.
            
        
        
            
            Returns the current string comparer.
            
        
        
            
            Returns the list of scope regions: outer followed by inner.
            
        
        
            
            Returns the current scope region.
            
        
        
            
            Returns the current scope.
            
        
        
            
            Returns index of the current scope.
            
        
        
            
            Returns the current group aggregate info when processing group aggregate argument.
            
        
        
            
            Represents simple source var scope entry.
            
        
        
            
            Prepend  to the property chain.
            
        
        
            
            Replace existing var at the head of the property chain with the new .
            
        
        
            
            Rebuild the current scope entry expression as the property chain off the  expression.
            Also build
            -  off the  expression;
            -  off the  expression.
            This adjustment is reversable by (...).
            
        
        
            
            Rolls back the (...) adjustment, clears the
            
            .
            
        
        
            
            Represents a projection item definition scope entry.
            
        
        
            
            Represents a free variable scope entry.
            Example: parameters of an inline function definition are free variables in the scope of the function definition.
            
        
        
            
            Represents a generic list of scopes.
            
        
        
            
            Initialize scope manager using given key-string comparer.
            
        
        
            
            Enter a new scope.
            
        
        
            
            Leave the current scope.
            
        
        
            
            Get a scope by the index.
            
        
        
            
            Rollback all scopes to the scope at the index.
            
        
        
            
            True if key exists in current scope.
            
        
        
            
            Return current scope index.
            Outer scopes have smaller index values than inner scopes.
            
        
        
            
            Return current scope.
            
        
        
            
            Represents eSQL type and namespace name resolver.
            
        
        
            
            name -> list(overload)
            
        
        
            
            Initializes TypeResolver instance
            
        
        
            
            Adds an aliased namespace import.
            
        
        
            
            Adds a non-aliased namespace import.
            
        
        
            
            Declares inline function in the query local metadata.
            
        
        
            
            Try get type from the model using the fully qualified name.
            
        
        
            
            Try get function from the model using the fully qualified name.
            
        
        
            
            Try get function from the local metadata using the fully qualified name.
            
        
        
            
            Builds a dot-separated multipart identifier off the provided .
            
        
        
            
            Returns perspective.
            
        
        
            
            Returns namespace imports.
            
        
        
            
            Returns  for .
            
        
        
            
            Returns  for .
            
        
        
            
            Returns  for .
            
        
        
            
            Represents an eSQL expression classified as .
            
        
        
            
            Null if  represents the untyped null.
            
        
        
            
            Zips two enumerables together (e.g., given {1, 3, 5} and {2, 4, 6} returns {{1, 2}, {3, 4}, {5, 6}})
            
        
        
            
            Returns true if the type implements ICollection<>
            
        
        
            
            Helper method to determine the element type of the collection contained by the given property.
            If an unambiguous element type cannot be found, then an InvalidOperationException is thrown.
            
        
        
            
            This is used when we need to determine a concrete collection type given some type that may be
            abstract or an interface.
            
            
            The rules are:
            If the collection is defined as a concrete type with a publicly accessible parameterless constructor, then create an instance of that type
            Else, if HashSet{T} can be assigned to the type, then use HashSet{T}
            Else, if List{T} can be assigned to the type, then use List{T}
            Else, throw a nice exception.
            
             The type of collection that was requested 
             The type to instantiate, or null if we cannot find a supported type to instantiate 
        
        
            
            Returns the Type object that should be used to identify the type in the o-space
            metadata.  This is normally just the type that is passed in, but if the type
            is a proxy that we have generated, then its base type is returned instead.
            This ensures that both proxy entities and normal entities are treated as the
            same kind of entity in the metadata and places where the metadata is used.
            
        
        
            
            Provides a standard helper method for quoting identifiers
            
             Identifier to be quoted. Does not validate that this identifier is valid. 
             Quoted string 
        
        
            
            Returns the PropertyInfo and Type where a given property is defined
            This is done by traversing the type hierarchy to find the type match.
            
        
        
            You must never renumber these, because we rely upon them when
            we get an exception report once we release the bits.
        
        
            
            Some assertion failed
            
        
        
            
            Thrown when SQL gen produces parameters for anything other than a
            modification command tree.
            
        
        
            
            Thrown when an invalid data request is presented to a PropagatorResult in
            the update pipeline (confusing simple/complex values, missing key values, etc.).
            
        
        
            
            Thrown when the update pipeline encounters an invalid PrimitiveTypeKind
            during a cast.
            
        
        
            
            Thrown when an unknown node type is encountered in ELinq expression translation.
            
        
        
            
            Thrown by result assembly upon encountering a collection column that does not use any columns
            nor has a descriminated nested collection.
            
        
        
            
            Thrown when a lambda expression argument has an unexpected node type.
            
        
        
            
            Thrown when a CommandTree is defined on a stored procedure EntityCommand instance.
            
        
        
            
            Thrown when an operation in the BoolExpr library is exceeding anticipated complexity.
            
        
        
            
            Thrown when type A is promotable to type B, but ranking algorithm fails to rank the promotion.
            
        
        
            
            Compares objects using reference equality.
            
        
        
            
            The primary factory method to produce the BridgeDataReader; given a store data
            reader and a column map, create the BridgeDataReader, hooking up the IteratorSources
            and ResultColumn Hierarchy.  All construction of top level data readers go through
            this method.
            
             
             column map of the first result set 
             
             enumerable of the column maps for NextResult() calls. 
        
        
            
            Specifies the maximum length of array/string data allowed in a property.
            
        
        
            
            Initializes a new instance of the  class.
            
             The maximum allowable length of array/string data. Value must be greater than zero. 
        
        
            
            Initializes a new instance of the  class.
            The maximum allowable length supported by the database will be used.
            
        
        
            
            Determines whether a specified object is valid. (Overrides )
            
            
            This method returns true if the  is null.  
            It is assumed the  is used if the value may not be null.
            
             The object to validate. 
             true if the value is null or less than or equal to the specified maximum length, otherwise false 
            Length is zero or less than negative one.
        
        
            
            Applies formatting to a specified error message. (Overrides )
            
             The name to include in the formatted string. 
             A localized string to describe the maximum acceptable length. 
        
        
            
            Checks that Length has a legal value.  Throws InvalidOperationException if not.
            
        
        
            
            Gets the maximum allowable length of the array/string data.
            
        
        
            
            Specifies the minimum length of array/string data allowed in a property.
            
        
        
            
            Initializes a new instance of the  class.
            
             The minimum allowable length of array/string data. Value must be greater than or equal to zero. 
        
        
            
            Determines whether a specified object is valid. (Overrides )
            
            
            This method returns true if the  is null.  
            It is assumed the  is used if the value may not be null.
            
             The object to validate. 
             true if the value is null or greater than or equal to the specified minimum length, otherwise false 
            Length is less than zero.
        
        
            
            Applies formatting to a specified error message. (Overrides )
            
             The name to include in the formatted string. 
             A localized string to describe the minimum acceptable length. 
        
        
            
            Checks that Length has a legal value.  Throws InvalidOperationException if not.
            
        
        
            
            Gets the minimum allowable length of the array/string data.
            
        
        
            
            Specifies the database column that a property is mapped to.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The name of the column the property is mapped to. 
        
        
            
            The name of the column the property is mapped to.
            
        
        
            
            The zero-based order of the column the property is mapped to.
            
        
        
            
            The database provider specific data type of the column the property is mapped to.
            
        
        
            
            Denotes that the class is a complex type.
            Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. 
            Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object.
            
        
        
            
            Specifies how the database generates values for a property.
            
        
        
            
            Initializes a new instance of the  class.
            
             The pattern used to generate values for the property in the database. 
        
        
            
            The pattern used to generate values for the property in the database.
            
        
        
            
            The pattern used to generate values for a property in the database.
            
        
        
            
            The database does not generate values.
            
        
        
            
            The database generates a value when a row is inserted.
            
        
        
            
            The database generates a value when a row is inserted or updated.
            
        
        
            
            Denotes a property used as a foreign key in a relationship.
            The annotation may be placed on the foreign key property and specify the associated navigation property name, 
            or placed on a navigation property and specify the associated foreign key name.
            
        
        
            
            Initializes a new instance of the  class.
            
             If placed on a foreign key property, the name of the associated navigation property. If placed on a navigation property, the name of the associated foreign key(s). If a navigation property has multiple foreign keys, a comma separated list should be supplied. 
        
        
            
            If placed on a foreign key property, the name of the associated navigation property.
            If placed on a navigation property, the name of the associated foreign key(s).
            
        
        
            
            Specifies the inverse of a navigation property that represents the other end of the same relationship.
            
        
        
            
            Initializes a new instance of the  class.
            
             The navigation property representing the other end of the same relationship. 
        
        
            
            The navigation property representing the other end of the same relationship.
            
        
        
            
            Denotes that a property or class should be excluded from database mapping.
            
        
        
            
            Specifies the database table that a class is mapped to.
            
        
        
            
            Initializes a new instance of the  class.
            
             The name of the table the class is mapped to. 
        
        
            
            The name of the table the class is mapped to.
            
        
        
            
            The schema of the table the class is mapped to.
            
        
        
            
            Wraps access to the transaction object on the underlying store connection and ensures that the
            Entity Framework executes commands on the database within the context of that transaction.
            An instance of this class is retrieved by calling BeginTransaction() on the 
            
            object.
            
        
        
            
            Constructs the DbContextTransaction object with the associated connection object
            
            The EntityConnection object owning this transaction
        
        
            
            Constructs the DbContextTransaction object with the associated connection object
            and with the given isolation level
            
            The EntityConnection object owning this transaction 
            The database isolation level with which the underlying store transaction will be created
        
        
            
            Commits the underlying store transaction
            
        
        
            
            Rolls back the underlying store transaction
            
        
        
            
            Cleans up this transaction object and ensures the Entity Framework
            is no longer using that transaction.
            
        
        
            
            Cleans up this transaction object
            
             true to release both managed and unmanaged resources; false to release only unmanaged resources 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the database (store) transaction that is underlying this context transaction.
            
        
        
            
            A service for obtaining the correct  from a given
            .
            
            
            On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the
            default implementation of this service uses some heuristics to find the matching
            provider. If these fail then a new implementation of this service can be registered
            on  to provide an appropriate resolution.
            
        
        
            
            Returns the  for the given connection.
            
             The connection. 
             The provider factory for the connection. 
        
        
            
            A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that
            it can be used to query from a database and group together changes that will then be written
            back to the store as a unit.
            DbContext is conceptually similar to ObjectContext.
            
            
            DbContext is usually used with a derived type that contains  properties for
            the root entities of the model. These sets are automatically initialized when the
            instance of the derived class is created.  This behavior can be modified by applying the
              attribute to either the entire derived context
            class, or to individual properties on the class.
            The Entity Data Model backing the context can be specified in several ways.  When using the Code First
            approach, the  properties on the derived context are used to build a model
            by convention.  The protected OnModelCreating method can be overridden to tweak this model.  More
            control over the model used for the Model First approach can be obtained by creating a 
            explicitly from a  and passing this model to one of the DbContext constructors.
            When using the Database First or Model First approach the Entity Data Model can be created using the
            Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using
            entity connection string or an  object.
            The connection to the database (including the name of the database) can be specified in several ways.
            If the parameterless DbContext constructor is called from a derived context, then the name of the derived context
            is used to find a connection string in the app.config or web.config file.  If no connection string is found, then
            the name is passed to the DefaultConnectionFactory registered on the  class.  The connection
            factory then uses the context name as the database name in a default connection string.  (This default connection
            string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.)
            Instead of using the derived context name, the connection/database name can also be specified explicitly by
            passing the name to one of the DbContext constructors that takes a string.  The name can also be passed in
            the form "name=myname", in which case the name must be found in the config file or an exception will be thrown.
            Note that the connection found in the app.config or web.config file can be a normal database connection
            string (not a special Entity Framework connection string) in which case the DbContext will use Code First.
            However, if the connection found in the config file is a special Entity Framework connection string, then the
            DbContext will use Database/Model First and the model specified in the connection string will be used.
            An existing or explicitly created DbConnection can also be used instead of the database/connection name.
            A  can be applied to a class derived from DbContext to set the
            version of conventions used by the context when it creates a model. If no attribute is applied then the
            latest version of conventions will be used.
            
        
        
            
            Interface implemented by objects that can provide an  instance.
            The  class implements this interface to provide access to the underlying
            ObjectContext.
            
        
        
            
            Gets the object context.
            
             The object context. 
        
        
            
            Constructs a new context instance using conventions to create the name of the database to
            which a connection will be made.  The by-convention name is the full name (namespace + class name)
            of the derived context class.
            See the class remarks for how this is used to create a connection.
            
        
        
            
            Constructs a new context instance using conventions to create the name of the database to
            which a connection will be made, and initializes it from the given model.
            The by-convention name is the full name (namespace + class name) of the derived context class.
            See the class remarks for how this is used to create a connection.
            
             The model that will back this context. 
        
        
            
            Constructs a new context instance using the given string as the name or connection string for the
            database to which a connection will be made.
            See the class remarks for how this is used to create a connection.
            
             Either the database name or a connection string. 
        
        
            
            Constructs a new context instance using the given string as the name or connection string for the
            database to which a connection will be made, and initializes it from the given model.
            See the class remarks for how this is used to create a connection.
            
             Either the database name or a connection string. 
             The model that will back this context. 
        
        
            
            Constructs a new context instance using the existing connection to connect to a database.
            The connection will not be disposed when the context is disposed if 
            is false.
            
             An existing connection to use for the new context. 
            
            If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection.
            
        
        
            
            Constructs a new context instance using the existing connection to connect to a database,
            and initializes it from the given model.
            The connection will not be disposed when the context is disposed if 
            is false.
            
             An existing connection to use for the new context. 
             The model that will back this context. 
            
                If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection.
            
        
        
            
            Constructs a new context instance around an existing ObjectContext.
            
             An existing ObjectContext to wrap with the new context. 
            
                If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection.
            
        
        
            
            Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided.
            
        
        
            
            Discovers DbSets and initializes them.
            
        
        
            
            This method is called when the model for a derived context has been initialized, but
            before the model has been locked down and used to initialize the context.  The default
            implementation of this method does nothing, but it can be overridden in a derived class
            such that the model can be further configured before it is locked down.
            
            
            Typically, this method is called only once when the first instance of a derived context
            is created.  The model for that context is then cached and is for all further instances of
            the context in the app domain.  This caching can be disabled by setting the ModelCaching
            property on the given ModelBuidler, but note that this can seriously degrade performance.
            More control over caching is provided through use of the DbModelBuilder and DbContextFactory
            classes directly.
            
             The builder that defines the model for the context being created. 
        
        
            
            Internal method used to make the call to the real OnModelCreating method.
            
             The model builder. 
        
        
            
            Returns a DbSet instance for access to entities of the given type in the context,
            the ObjectStateManager, and the underlying store.
            
            
            See the DbSet class for more details.
            
             The type entity for which a set should be returned. 
             A set for the given entity type. 
        
        
            
            Returns a non-generic DbSet instance for access to entities of the given type in the context,
            the ObjectStateManager, and the underlying store.
            
             The type of entity for which a set should be returned. 
             A set for the given entity type. 
            
            See the DbSet class for more details.
            
        
        
            
            Saves all changes made in this context to the underlying database.
            
             The number of objects written to the underlying database. 
            Thrown if the context has been disposed.
        
        
            
            Validates tracked entities and returns a Collection of  containing validation results.
            
             Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities. 
            
            1. This method calls DetectChanges() to determine states of the tracked entities unless
            DbContextConfiguration.AutoDetectChangesEnabled is set to false.
            2. By default only Added on Modified entities are validated. The user is able to change this behavior
            by overriding ShouldValidateEntity method.
            
        
        
            
            Extension point allowing the user to override the default behavior of validating only
            added and modified entities.
            
             DbEntityEntry instance that is supposed to be validated. 
             true to proceed with validation; false otherwise. 
        
        
            
            Extension point allowing the user to customize validation of an entity or filter out validation results.
            Called by .
            
             DbEntityEntry instance to be validated. 
            
            User-defined dictionary containing additional info for custom validation. It will be passed to
            
            and will be exposed as
            
            . This parameter is optional and can be null.
            
             Entity validation result. Possibly null when overridden. 
        
        
            
            Internal method that calls the protected ValidateEntity method.
            
             DbEntityEntry instance to be validated. 
             Entity validation result. Possibly null when ValidateEntity is overridden. 
        
        
            
            Gets a  object for the given entity providing access to
            information about the entity and the ability to perform actions on the entity.
            
             The type of the entity. 
             The entity. 
             An entry for the entity. 
        
        
            
            Gets a  object for the given entity providing access to
            information about the entity and the ability to perform actions on the entity.
            
             The entity. 
             An entry for the entity. 
        
        
            
            Calls the protected Dispose method.
            
        
        
            
            Disposes the context. The underlying  is also disposed if it was created
            is by this context or ownership was passed to this context when this context was created.
            The connection to the database ( object) is also disposed if it was created
            is by this context or ownership was passed to this context when this context was created.
            
            
            true to release both managed and unmanaged resources; false to release only unmanaged resources.
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Creates a Database instance for this context that allows for creation/deletion/existence checks
            for the underlying database.
            
        
        
            
            Returns the Entity Framework ObjectContext that is underlying this context.
            
            Thrown if the context has been disposed.
        
        
            
            Provides access to features of the context that deal with change tracking of entities.
            
             An object used to access features that deal with change tracking. 
        
        
            
            Provides access to configuration options for the context.
            
             An object used to access configuration options. 
        
        
            
            Provides access to the underlying InternalContext for other parts of the internal design.
            
        
        
            
            Explicitly implemented by  to prevent certain members from showing up
            in the IntelliSense of scaffolded migrations.
            
        
        
            
            Adds a custom  to the migration.
            Custom operation implementors are encouraged to create extension methods on
             that provide a fluent-style API for adding new operations.
            
             The operation to add. 
        
        
            
            A default implementation of  that uses the
            underlying provider to get the manifest token.
            Note that to avoid multiple queries, this implementation using caching based on the actual type of
             instance, the  property,
            and the  property.
            
        
        
            
            A service for getting a provider manifest token given a connection.
            The  class is used by default and makes use of the
            underlying provider to get the token which often involves opening the connection.
            A different implementation can be used instead by adding an 
            to  that may use any information in the connection to return
            the token. For example, if the connection is known to point to a SQL Server 2008 database then
            "2008" can be returned without opening the connection.
            
        
        
            
            Returns the manifest token to use for the given connection.
            
             The connection for which a manifest token is required. 
             The manifest token to use. 
        
        
            
        
        
            
            A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs.
            
        
        
            
            Executes the specified operation.
            
            A delegate representing an executable operation that doesn't return any results.
        
        
            
            Executes the specified operation and returns the result.
            
            
            The return type of .
            
            
            A delegate representing an executable operation that returns the result of type .
            
            The result from the operation.
        
        
            
            Indicates whether this  might retry the execution after a failure.
            
        
        
            
            Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses
            exponentially increasing delays between retries.
            
            
            A new instance will be created each time an operation is executed.
            The following formula is used to calculate the delay after retryCount number of attempts:min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)
            The retryCount starts at 0.
            The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously.
            
        
        
            
            The default number of retry attempts, must be nonnegative.
            
        
        
            
            The default maximum random factor, must not be lesser than 1.
            
        
        
            
            The default base for the exponential function used to compute the delay between retries, must be positive.
            
        
        
            
            The default coefficient for the exponential function used to compute the delay between retries, must be nonnegative.
            
        
        
            
            The default maximum time delay between retries, must be nonnegative.
            
        
        
            
            Creates a new instance of .
            
            
            The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor.
            
        
        
            
            Creates a new instance of  with the specified limits for number of retries and the delay between retries.
            
             The maximum number of retry attempts. 
             The maximum delay in milliseconds between retries. 
        
        
            
            Repetitively executes the specified operation while it satisfies the current retry policy.
            
            A delegate representing an executable operation that doesn't return any results.
            if the retry delay strategy determines the operation shouldn't be retried anymore
            if an existing transaction is detected and the execution strategy doesn't support it
            if this instance was already used to execute an operation
        
        
            
            Repetitively executes the specified operation while it satisfies the current retry policy.
            
            The type of result expected from the executable operation.
            
            A delegate representing an executable operation that returns the result of type .
            
            The result from the operation.
            if the retry delay strategy determines the operation shouldn't be retried anymore
            if an existing transaction is detected and the execution strategy doesn't support it
            if this instance was already used to execute an operation
        
        
            
            Determines whether the operation should be retried and the delay before the next attempt.
            
            The exception thrown during the last execution attempt.
            
            Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried;
            null otherwise
            
        
        
            
            Recursively gets InnerException from  as long as it's an
            ,  or 
            and passes it to 
            
             The exception to be unwrapped. 
             A delegate that will be called with the unwrapped exception. 
            
            The result from .
            
        
        
            
            Determines whether the specified exception represents a transient failure that can be compensated by a retry.
            
            The exception object to be verified.
            
            true if the specified exception is considered as transient, otherwise false.
            
        
        
            
            Returns true to indicate that  might retry the execution after a failure.
            
        
        
            
            A key used for resolving . It consists of the ADO.NET provider invariant name
            and the database server name as specified in the connection string.
            
        
        
            
            Initializes a new instance of 
            
            
            The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
            
             A string that will be matched against the server name in the connection string. 
        
        
            
        
        
            
        
        
            
            The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
            
        
        
            
            A string that will be matched against the server name in the connection string.
            
        
        
            
            Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache.
            This interface allows you to have a single context type that can be used with different models in the same AppDomain, 
            or multiple context types that use the same model.
            
        
        
            Gets the cached key associated with the provider.
            The cached key associated with the provider.
        
        
            
            Used by  and  when resolving
            a provider invariant name from a .
            
        
        
            Gets the name of the provider.
            The name of the provider.
        
        
            
            Represents a custom pluralization term to be used by the 
            
        
        
            
            Create a new instance
            
            A non null or empty string representing the singular.
            A non null or empty string representing the plural.
        
        
            
            Get the singular.
            
        
        
            
            Get the plural.
            
        
        
            
            Default pluralization service implementation to be used by Entity Framework. This pluralization
            service is based on English locale.
            
        
        
            
            Pluralization services to be used by the EF runtime implement this interface.
            By default the  is used, but the pluralization service to use
            can be set in a class derived from .
            
        
        
            
            Pluralize a word using the service.
            
            The word to pluralize.
            The pluralized word 
        
        
            
            Singularize a word using the service.
            
            The word to singularize.
            The singularized word.
        
        
            
            Constructs a new  instance  of default pluralization service
            used in Entity Framework.
            
        
        
            
            Constructs a new  instance  of default pluralization service
            used in Entity Framework.
            
            
                A collection of user dictionary entries to be used by this service.These inputs
                can  customize the service according the user needs.
            
        
        
            Returns the plural form of the specified word.
            The plural form of the input parameter.
            The word to be made plural.
        
        
            Returns the singular form of the specified word.
            The singular form of the input parameter.
            The word to be made singular.
        
        
            
            captalize the return word if the parameter is capitalized
            if word is "Table", then return "Tables"
            
        
        
            
            separate one combine word in to two parts, prefix word and the last word(suffix word)
            
        
        
            
            return true when the word is "[\s]*" or leading or tailing with spaces
            or contains non alphabetical characters
            
        
        
            
            The exception that is thrown when the action failed again after being retried the configured number of times.
            
        
        
            
            Provider exception - Used by the entity client.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of the  class.
            
            The error message that explains the reason for the exception.
            The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance of the  class.
            
            
            The  that holds the serialized object data about the exception being thrown.
            
            
            The  that contains contextual information about the source or destination.
            
        
        
            
            Initializes a new instance of the  class with no error message.
            
        
        
            
            Initializes a new instance of the  class with a specified error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of the  class.
            
            The message that describes the error.
            The exception that is the cause of the current exception.
        
        
            
            Initializes a new instance of the  class.
            
            
            The  that holds the serialized object data about the exception being thrown.
            
            
            The  that contains contextual information about the source or destination.
            
            
            The  parameter is null.
            
            
            The class name is null or  is zero (0).
            
        
        
            
            An  that doesn't retry operations if they fail.
            
        
        
            
            Executes the specified operation once.
            
            A delegate representing an executable operation that doesn't return any results.
        
        
            
            Executes the specified operation once and returns the result.
            
            
            The return type of .
            
            
            A delegate representing an executable operation that returns the result of type .
            
            The result from the operation.
        
        
            
            Returns false to indicate that  will not retry the execution after a failure.
            
        
        
            
            Represents a SQL query for entities that is created from a 
            and is executed using the connection from that context.
            Instances of this class are obtained from the  instance for the
            entity type. The query is not executed when this object is created; it is executed
            each time it is enumerated, for example by using foreach.
            SQL queries for non-entities are created using .
            See  for a generic version of this class.
            
        
        
            
            Represents a SQL query for non-entities that is created from a 
            and is executed using the connection from that context.
            Instances of this class are obtained from the  instance.
            The query is not executed when this object is created; it is executed
            each time it is enumerated, for example by using foreach.
            SQL queries for entities are created using .
            See  for a generic version of this class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal query. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Returns an  which when enumerated will execute the SQL query against the database.
            
            
            An  object that can be used to iterate through the elements.
            
        
        
            
            Returns a  that contains the SQL string that was set
            when the query was created.  The parameters are not included.
            
            
            A  that represents this instance.
            
        
        
            
            Throws an exception indicating that binding directly to a store query is not supported.
            
             Never returns; always throws. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the internal query.
            
             The internal query. 
        
        
            
            Returns false.
            
            
            false .
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal query. 
        
        
            
            Creates an instance of a  when called from the constructor of a derived
            type that will be used as a test double for . Methods and properties
            that will be used by the test double must be implemented by the test double except AsNoTracking
            and AsStreaming where the default implementation is a no-op.
            
        
        
            
            Returns a new query where the results of the query will not be tracked by the associated
            .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Represents a SQL query for entities that is created from a 
            and is executed using the connection from that context.
            Instances of this class are obtained from the  instance for the
            entity type. The query is not executed when this object is created; it is executed
            each time it is enumerated, for example by using foreach.
            SQL queries for non-entities are created using .
            See  for a non-generic version of this class.
            
        
        
            
            Represents a SQL query for non-entities that is created from a 
            and is executed using the connection from that context.
            Instances of this class are obtained from the  instance.
            The query is not executed when this object is created; it is executed
            each time it is enumerated, for example by using foreach.
            SQL queries for entities are created using .
            See  for a non-generic version of this class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal query. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Returns an  which when enumerated will execute the SQL query against the database.
            
            
            An  object that can be used to iterate through the elements.
            
        
        
            
            Returns an  which when enumerated will execute the SQL query against the database.
            
            
            An  object that can be used to iterate through the elements.
            
        
        
            
            Returns a  that contains the SQL string that was set
            when the query was created.  The parameters are not included.
            
            
            A  that represents this instance.
            
        
        
            
            Throws an exception indicating that binding directly to a store query is not supported.
            
             Never returns; always throws. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the internal query.
            
             The internal query. 
        
        
            
            Returns false.
            
            
            false .
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal query. 
        
        
            
            Creates an instance of a  when called from the constructor of a derived
            type that will be used as a test double for . Methods and properties
            that will be used by the test double must be implemented by the test double except AsNoTracking and
            AsStreaming where the default implementation is a no-op.
            
        
        
            
            Returns a new query where the entities returned will not be cached in the .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory.
            
        
        
            Determines whether the current cached model key is equal to the specified cached model key.
            true if the current cached model key is equal to the specified cached model key; otherwise, false.
            The cached model key to compare to the current cached model key. 
        
        
            Returns the hash function for this cached model key.
            The hash function for this cached model key.
        
        
            
            Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database.
            
        
        
            
            Represents errors that occur inside the Code First Migrations pipeline.
            
        
        
            
            Initializes a new instance of the MigrationsException class.
            
        
        
            
            Initializes a new instance of the MigrationsException class.
            
             The message that describes the error. 
        
        
            
            Initializes a new instance of the MigrationsException class.
            
             The message that describes the error. 
             The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. 
        
        
            
            Initializes a new instance of the MigrationsException class with serialized data.
            
            
            The  that holds the serialized object data about the exception being thrown.
            
            
            The  that contains contextual information about the source or destination.
            
        
        
            
            Initializes a new instance of the MigrationsPendingException class.
            
        
        
            
            Initializes a new instance of the MigrationsPendingException class.
            
             The message that describes the error. 
        
        
            
            Initializes a new instance of the MigrationsPendingException class.
            
             The message that describes the error. 
             The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. 
        
        
            
            Initializes a new instance of the MigrationsPendingException class with serialized data.
            
            
            The  that holds the serialized object data about the exception being thrown.
            
            
            The  that contains contextual information about the source or destination.
            
        
        
             
             A migration operation to add a new stored procedure to the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the  class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             The name of the stored procedure.
             The body of the stored procedure expressed in SQL.
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation to drop the stored procedure.
            
        
        
            
            For testing.
            
        
        
            
            Check if specified type is a EntityTypeConfiguration instance.
            
            The type to check.
            True if type is a EntityTypeConfiguration, else false.
        
        
            
            Check if specified type is a ComplexTypeConfiguration instance.
            
            The type to check.
            True if type is a ComplexTypeConfiguration, else false.
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the properties in a model.
            
        
        
            
            Filters the properties that this convention applies to based on a predicate.
            
             A function to test each property for a condition. 
            
            A  instance so that multiple calls can be chained.
            
        
        
            
            Filters the properties that this convention applies to based on a predicate
            while capturing a value to use later during configuration.
            
             Type of the captured value. 
            
            A function to capture a value for each property. If the value is null, the
            property will be filtered out.
            
            
            A  instance so that multiple calls can be chained.
            
        
        
            
            Allows configuration of the properties that this convention applies to.
            
            
            An action that performs configuration against a
            
            .
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a lightweight convention based on
            the properties of entity types in a model and a captured value.
            
        
        
            
            Allows configuration of the properties that this convention applies to.
            
            
            An action that performs configuration against a 
            using a captured value.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a stored procedure that is used to modify a relationship.
            
            The type of the entity that the relationship is being configured from.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
            The type of the property.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
            The type of the property.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            
            Creates a convention that configures stored procedures to be used to delete entities in the database.
            
        
        
            
            Creates a convention that configures stored procedures to be used to modify entities in the database.
            
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the parameter for. 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the parameter for. 
            The name of the parameter.
        
        
            Configures the output parameter that returns the rows affected by this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The name of the parameter.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Creates a convention that configures stored procedures to be used to insert entities in the database.
            
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the parameter for. 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the parameter for. 
            The name of the parameter.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the result for. 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the result for. 
            The name of the result column.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Creates a convention that configures stored procedures to be used to modify entities in the database.
            
        
        
            Configures stored procedure used to insert entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            Configures stored procedure used to update entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            Configures stored procedure used to delete entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Creates a convention that configures stored procedures to be used to update entities in the database.
            
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the parameter for. 
             The name of the parameter. 
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the parameter for. 
             The name of the parameter. 
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the parameter for. 
            The current value parameter name.
            The original value parameter name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the parameter for. 
            The current value parameter name.
            The original value parameter name.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             The name of the property to configure the result for. 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             The property to configure the result for. 
            The name of the result column.
        
        
            Configures the output parameter that returns the rows affected by this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The name of the parameter.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship.
            
            The type of the entity that the relationship is being configured from.
            The type of the entity that the other end of the relationship targets.
        
        
            
            Performs configuration of a stored procedure uses to modify an entity in the database.
            
        
        
            
            Sets the name of the stored procedure.
            
            Name of the procedure.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Sets the name of the stored procedure.
            
            Name of the procedure.
            Name of the schema.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the left key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the left key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the left key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the left key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the right key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the right key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the right key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures the parameter for the right key value(s).
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            Name of the parameter.
             The same configuration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
             
        
        
             
        
        
            
            Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship.
            
            The type of the entity that the relationship is being configured from.
            The type of the entity that the other end of the relationship targets.
        
        
            Configures stored procedure used to insert relationships.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            Configures stored procedure used to delete relationships.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a stored procedure that is used to delete entities.
            
            The type of the entity that the stored procedure can be used to delete.
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures the output parameter that returns the rows affected by this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The name of the parameter.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Allows configuration to be performed for a stored procedure that is used to insert entities.
            
            The type of the entity that the stored procedure can be used to insert.
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Allows configuration to be performed for a stored procedure that is used to update entities.
            
            The type of the entity that the stored procedure can be used to update.
        
        
             Configures the name of the stored procedure. 
             The same configuration instance so that multiple calls can be chained. 
             The stored procedure name. 
        
        
            Configures the name of the stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The stored procedure name.
            The schema name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the parameter.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
            Configures a parameter for this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The current value parameter name.
            The original value parameter name.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            
            Configures a column of the result for this stored procedure to map to a property.
            This is used for database generated columns.
            
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            The name of the result column.
        
        
            Configures the output parameter that returns the rows affected by this stored procedure.
             The same configuration instance so that multiple calls can be chained. 
            The name of the parameter.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            Configures parameters for a relationship where the foreign key property is not included in the class.
             The same configuration instance so that multiple calls can be chained. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
            A lambda expression that performs the configuration.
            The type of the principal entity in the relationship.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Allows configuration to be performed for a stored procedure that is used to modify entities.
            
            The type of the entity that the stored procedure can be used to modify.
        
        
            Configures stored procedure used to insert entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            Configures stored procedure used to update entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            Configures stored procedure used to delete entities.
             The same configuration instance so that multiple calls can be chained. 
            A lambda expression that performs configuration for the stored procedure.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Used to configure a primitive property of an entity type or complex type.
            This configuration functionality is available via lightweight conventions.
            
        
        
            
            Initializes a new instance of the  class.
            
            
            The  for this property
            
             The configuration object that this instance wraps. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the name of the parameter used in stored procedures for this property.
            
            Name of the parameter.
            
            The same  instance so that multiple calls can be chained.
            
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            
        
        
            
            Configures the property to support Unicode string content.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property is not a .
            
        
        
            
            Configures whether or not the property supports Unicode string content.
            
             Value indicating if the property supports Unicode string content or not. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property is not a .
            
        
        
            
            Configures the property to be fixed length.
            Use HasMaxLength to set the length that the property is fixed to.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property does not have length facets.
            
        
        
            
            Configures the property to be variable length.
            Properties are variable length by default.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property does not have length facets.
            
        
        
            
            Configures the property to have the specified maximum length.
            
             The maximum length for the property. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property does not have length facets.
            
        
        
            
            Configures the property to allow the maximum length supported by the database provider.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property does not have length facets.
            
        
        
            
            Configures the precision of the  property.
            If the database provider does not support precision for the data type of the column then the value is ignored.
            
             Precision of the property. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method will throw if the property is not a .
            
        
        
            
            Configures the precision and scale of the  property.
            
             The precision of the property. 
             The scale of the property. 
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method will throw if the property is not a .
            
        
        
            
            Configures the property to be a row version in the database.
            The actual data type will vary depending on the database provider being used.
            Setting the property to be a row version will automatically configure it to be an
            optimistic concurrency token.
            
            
            The same  instance so that multiple calls can be chained.
            
            
            Calling this will have no effect once it has been configured.
            This method throws if the property is not a .
            
        
        
            
            Configures this property to be part of the entity type's primary key.
            
            
            The same  instance so that
            multiple calls can be chained.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the  for this property.
            
        
        
            
            Provides a mechanism to ensure an exception is thrown on concurrent execution of a critical section.
            
        
        
            
            Acquires an exclusive lock on this instance.
            Any subsequent call to Enter before a call to Exit will result in an exception.
            
        
        
            
            Releases an exclusive lock on this instance.
            
        
        
            
            Throws an exception if an exclusive lock has been acquired on this instance.
            
        
        
            
            An implementation of  that does nothing. Using this
            initializer disables database initialization for the given context type. Passing an instance
            of this class to  is equivalent to passing null.
            When  is being used to resolve initializers an instance of
            this class must be used to disable initialization.
            
        
        
            
            An implementation of this interface is used to initialize the underlying database when
            an instance of a  derived class is used for the first time.
            This initialization can conditionally create the database and/or seed it with data.
            The strategy used is set using the static InitializationStrategy property of the
             class.
            The following implementations are provided: ,
            , .
            
        
        
            
            Executes the strategy to initialize the database for the given context.
            
             The context. 
        
        
            
        
        
            
            Ask for a spatial provider. If one has been registered then we will use it, otherwise we will
            fall back on using the SQL provider and if this is not available then the default provider.
            
        
        
            
            Determines whether the given exception requires additional context from the update pipeline (in other
            words, whether the exception should be wrapped in an UpdateException).
            
             Exception to test. 
             true if exception should be wrapped; false otherwise 
        
        
            
            FieldMetadata class providing the correlation between the column ordinals and MemberMetadata.
            
        
        
            
            Initializes a new  object with the specified ordinal value and field type.
            
            An integer specified the location of the metadata.
            The field type.
        
        
            
            Gets the type of field for this  object.
            
            
            The type of field for this  object.
            
        
        
            
            Gets the ordinal for this  object.
            
            An integer representing the ordinal value.
        
        
            
            Provides singleton model TypeUsages for each DbType that can be expressed using a supported EDM type and appropriate facet values.
            Used by EntityParameter.GetTypeUsage - if you add additional TypeUsage fields here, review the impact on that method.
            
        
        
            
            For collection results, we really want to know the expression to
            get the coordinator from its stateslot as well, so we have an
            additional one...
            
        
        
            
            Type returned by the Translator visitor; allows us to put the logic
            to ensure a specific return type in a single place, instead of in
            each Visit method.
            
        
        
            
            Return the expression; wrapped with the appropriate cast/convert
            logic to guarantee its type.
            
        
        
            
            Return the expression without attempting to cast/convert to the requested type.
            
        
        
            
            Checks if the expression represents an wrapped entity and if so creates an expression
            that extracts the raw entity from the wrapper.
            
        
        
            
            Supports building a unique key for a column map so that compiled delegates ()
            can be cached. The general rule: if the  cares about some property of
            the column map, the generated key must include that property value.
            
            
            IMPORTANT:
            The "X-" prefixes introduced in the different column map types should be unique. This avoids
            conflicts for different column maps with similar properties (e.g. ComplexType and EntityType)
            
        
        
            
            Basic Visitor Design Pattern support for ColumnMap hierarchy;
            This visitor class will walk the entire hierarchy, but does not
            return results; it's useful for operations such as printing and
            searching.
            
        
        
            
            Common List(ColumnMap) code
            
        
        
            
            Returns a string uniquely identifying the given ColumnMap.
            
        
        
            
            What we return from our materialization of a collection column must be
            exactly the type that the compilers expected when they generated the
            code that asked for it.  This class wraps our enumerators and derives
            from all the possible options, covering all the bases.
            
        
        
            
            The thing we're compensating for
            
        
        
            
            An expression that returns the source as a constant
            
        
        
            
            Used in the Translator to aggregate information about a (nested) reader
            coordinator. After the translator visits the columnMaps, it will compile
            the coordinator(s) which produces an immutable CoordinatorFactory that
            can be shared amongst many query instances.
            
        
        
            
            Map from original expressions to expressions with detailed error handling.
            
        
        
            
            Expressions that should be precompiled (i.e. reduced to constants in
            compiled delegates.
            
        
        
            
            List of all record types that we can return at this level in the query.
            
        
        
            
            Allows sub-expressions to register an 'interest' in exceptions thrown when reading elements
            for this coordinator. When an exception is thrown, we rerun the delegate using the slower
            but more error-friendly versions of expressions (e.g. reader.GetValue + type check instead
            of reader.GetInt32())
            
             The lean and mean raw version of the expression 
             The slower version of the same expression with better error handling 
        
        
            
            Registers a lambda expression for pre-compilation (i.e. reduction to a constant expression)
            within materialization expression. Otherwise, the expression will be compiled every time
            the enclosing delegate is invoked.
            
             Lambda expression to register. 
        
        
            
            Registers a coordinator for a nested collection contained in elements of this collection.
            
        
        
            
            Use the information stored on the scratchpad to compile an immutable factory used
            to construct the coordinators used at runtime when materializing results.
            
        
        
            
            Allocates a new RecordStateScratchpad and adds it to the list of the ones we're
            responsible for; will create the list if it hasn't alread been created.
            
        
        
            
            For nested collections, returns the parent coordinator.
            
        
        
            
            Gets or sets an Expression setting key values (these keys are used
            to determine when a collection has entered a new chapter) from the
            underlying store data reader.
            
        
        
            
            Gets or sets an Expression returning 'true' when the key values for
            the current nested result (see SetKeys) are equal to the current key
            values on the underlying data reader.
            
        
        
            
            Gets or sets an expression returning 'true' if the current row in
            the underlying data reader contains an element of the collection.
            
        
        
            
            Gets or sets an Expression yielding an element of the current collection
            given values in the underlying data reader.
            
        
        
            
            Gets or sets an Expression initializing the collection storing results from this coordinator.
            
        
        
            
            Indicates which Shaper.State slot is home for this collection's coordinator.
            Used by Parent to pull out nested collection aggregators/streamers.
            
        
        
            
            Gets or sets the depth of the current coordinator. A root collection has depth 0.
            
        
        
            
            Visitor supporting (non-recursive) replacement of LINQ sub-expressions and
            compilation of inline delegates.
            
        
        
            
            Visitor for LINQ expression trees.
            
        
        
            
            The RecordState class is responsible for tracking state about a record
            that should be returned from a data reader.
            
        
        
            
            Where to find the static information about this record
            
        
        
            
            The coordinator factory (essentially, the reader) that we're a part of.
            
        
        
            
            True when the record is supposed to be null. (Null Structured Types...)
            
        
        
            
            An EntityRecordInfo, with EntityKey and EntitySet populated; set
            by the GatherData expression.
            
        
        
            
            The column values; set by the GatherData expression. Really ought
            to be in the Shaper.State.
            
        
        
            
            Move the PendingValues to the CurrentValues for this record and all nested
            records.  We keep the pending values separate from the current ones because
            we may have a nested reader in the middle, and while we're reading forward
            on the nested reader we we'll blast over the pending values.
            This should be called as part of the data reader's Read() method.
            
        
        
            
            Implementation of DataReader's GetBytes method
            
        
        
            
            Implementation of DataReader's GetChars method
            
        
        
            
            Return the name of the column at the ordinal specified.
            
        
        
            
            This is where the GetOrdinal method for DbDataReader/DbDataRecord end up.
            
        
        
            
            Return the type of the column at the ordinal specified.
            
        
        
            
            Returns true when the column at the ordinal specified is
            a record or reader column that requires special handling.
            
        
        
            
            Called whenever we hand this record state out as the default state for
            a data reader; we will have already handled any existing data back to
            the previous group of records (that is, we couldn't be using it from two
            distinct readers at the same time).
            
        
        
            
            Called from the Element expression on the Coordinator to gather all
            the data for the record; we just turn around and call the expression
            we build on the RecordStateFactory.
            
        
        
            
            Called by the GatherData expression to set the data for the
            specified column value
            
        
        
            
            Called by the GatherData expression to set the data for the
            EntityRecordInfo
            
        
        
            
            Called from the Element expression on the Coordinator to indicate that
            the record should be NULL.
            
        
        
            
            Return the number of columns
            
        
        
            
            Return the DataRecordInfo for this record; if we had an EntityRecordInfo
            set, then return it otherwise return the static one from the factory.
            
        
        
            
            Is the record NULL?
            
        
        
            
            An immutable class used to generate new RecordStates, which are used
            at runtime to produce value-layer (aka DataReader) results.
            Contains static information collected by the Translator visitor.  The
            expressions produced by the Translator are compiled.  The RecordStates
            will refer to this object for all static information.
            This class is cached in the query cache as part of the CoordinatorFactory.
            
        
        
            
            Indicates which state slot in the Shaper.State is expected to hold the
            value for this record state.  Each unique record shape has it's own state
            slot.
            
        
        
            
            How many column values we have to reserve space for in this record.
            
        
        
            
            The DataRecordInfo we must return for this record.  If the record represents
            an entity, this will be used to construct a unique EntityRecordInfo with the
            EntityKey and EntitySet for the entity.
            
        
        
            
            A function that will gather the data for the row and store it on the record state.
            
        
        
            
            Collection of nested records for this record, such as a complex type that is
            part of an entity.  This does not include records that are part of a nested
            collection, however.
            
        
        
            
            The name for each column.
            
        
        
            
            The type usage information for each column.
            
        
        
            
            Tracks which columns might need special handling (nested readers/records)
            
        
        
            
            Tracks whether there are ANY columns that need special handling.
            
        
        
            
            A helper class to make the translation from name->ordinal.
            
        
        
            
            Description of this RecordStateFactory, used for debugging only; while this
            is not  needed in retail code, it is pretty important because it's the only
            description we'll have once we compile the Expressions; debugging a problem
            with retail bits would be pretty hard without this.
            
        
        
            
            It's GO time, create the record state.
            
        
        
            
            Used in the Translator to aggregate information about a (nested) record
            state.  After the translator visits the columnMaps, it will compile
            the recordState(s) which produces an immutable RecordStateFactory that
            can be shared amongst many query instances.
            
        
        
            
            Shapes store reader values into EntityClient/ObjectQuery results. Also maintains
            state used by materializer delegates.
            
        
        
            
            Keeps track of the entities that have been materialized so that we can fire an OnMaterialized
            for them before returning control to the caller.
            
        
        
            
            The store data reader we're pulling data from
            
        
        
            
            The state slots we use in the coordinator expression.
            
        
        
            
            The context the shaper is performing for.
            
        
        
            
            The workspace we are performing for; yes we could get it from the context, but
            it's much easier to just have it handy.
            
        
        
            
            The merge option this shaper is performing under/for.
            
        
        
            
            A mapping of CSpace AssociationTypes to OSpace AssociationTypes
            Used for faster lookup/retrieval of AssociationTypes during materialization
            
        
        
            
            Caches Tuples of EntitySet, AssociationType, and source member name for which RelatedEnds exist.
            
        
        
            
            Utility method used to evaluate a multi-discriminator column map. Takes
            discriminator values and determines the appropriate entity type, then looks up
            the appropriate handler and invokes it.
            
        
        
            
            REQUIRES:: entity is not null and MergeOption is OverwriteChanges or PreserveChanges
            Handles state management for an entity returned by a query. Where an existing entry
            exists, updates that entry and returns the existing entity. Otherwise, the entity
            passed in is returned.
            
        
        
            
            REQUIRES:: entity exists; MergeOption is AppendOnly
            Handles state management for an entity with the given key. When the entity already exists
            in the state manager, it is returned directly. Otherwise, the entityDelegate is invoked and
            the resulting entity is returned.
            
        
        
            
            Call to ensure a collection of full-spanned elements are added
            into the state manager properly.  We registers an action to be called
            when the collection is closed that pulls the collection of full spanned
            objects into the state manager.
            
        
        
            
            Call to ensure a single full-spanned element is added into
            the state manager properly.
            
        
        
            
            Call to ensure a target entities key is added into the state manager
            properly
            
        
        
            
            Sets the IsLoaded flag to "true"
            There are also rules for when this can be set based on MergeOption and the current value(s) in the related end.
            
        
        
            
            REQUIRES:: entity is not null and MergeOption is OverwriteChanges or PreserveChanges
            Calls through to HandleEntity after retrieving the EntityKey from the given entity.
            Still need this so that the correct key will be used for iPOCOs that implement IEntityWithKey
            in a non-default manner.
            
        
        
            
            Calls through to the specified RecordState to set the value for the specified column ordinal.
            
        
        
            
            Calls through to the specified RecordState to set the value for the EntityRecordInfo.
            
        
        
            
            REQUIRES:: should be called only by delegate allocating this state.
            Utility method assigning a value to a state slot. Returns an arbitrary value
            allowing the method call to be composed in a ShapeEmitter Expression delegate.
            
        
        
            
            REQUIRES:: should be called only by delegate allocating this state.
            Utility method assigning a value to a state slot and return the value, allowing
            the value to be accessed/set in a ShapeEmitter Expression delegate and later
            retrieved.
            
        
        
            
            Used to retrieve a property value with exception handling. Normally compiled
            delegates directly call typed methods on the DbDataReader (e.g. GetInt32)
            but when an exception occurs we retry using this method to potentially get
            a more useful error message to the user.
            
        
        
            
            Used to retrieve a column value with exception handling. Normally compiled
            delegates directly call typed methods on the DbDataReader (e.g. GetInt32)
            but when an exception occurs we retry using this method to potentially get
            a more useful error message to the user.
            
        
        
            
            Wire's one or more full-spanned entities into the state manager; used by
            both full-spanned collections and full-spanned entities.
            
        
        
            
            Gets value from reader using the same pattern as the materializer delegate. Avoids
            the need to compile multiple delegates for error handling. If there is a failure
            reading a value
            
        
        
            
            Creates the exception thrown when the reader returns a null value
            for a non nullable property/column.
            
        
        
            
            Creates the exception thrown when the reader returns a value with
            an incompatible type.
            
        
        
            
            An immutable type used to generate Shaper instances.
            
        
        
            
            Typed ShaperFactory
            
        
        
            
            Factory method to create the Shaper for Object Layer queries.
            
        
        
            
            Typed Shaper. Includes logic to enumerate results and wraps the _rootCoordinator,
            which includes materializer delegates for the root query collection.
            
        
        
            
            Which type of query is this, object layer (true) or value layer (false)
            
        
        
            
            Keeps track of whether we've completed processing or not.
            
        
        
            
            The enumerator we're using to read data; really only populated for value
            layer queries.
            
        
        
            
            Is the reader owned by the EF or was it supplied by the user?
            
        
        
            
            Shapers and Coordinators work together in harmony to materialize the data
            from the store; the shaper contains the state, the coordinator contains the
            code.
            
        
        
            
            Initialize the RecordStateFactory objects in their StateSlots.
            
        
        
            
            Called when enumeration of results has completed.
            
        
        
            
            Reads the next row from the store. If there is a failure, throws an exception message
            in some scenarios (note that we respond to failure rather than anticipate failure,
            avoiding repeated checks in the inner materialization loop)
            
        
        
            
            Notify ObjectContext that we are about to start materializing an element
            
        
        
            
            Notify ObjectContext that we are finished materializing the element
            
        
        
            
            Events raised when the shaper has finished enumerating results. Useful for callback
            to set parameter values.
            
        
        
            
            Used to handle the read-ahead requirements of value-layer queries.  This
            field indicates the status of the current value of the _rootEnumerator; when
            a bridge data reader "accepts responsibility" for the current value, it sets
            this to false.
            
        
        
            
            The enumerator that the value-layer bridge will use to read data; all nested
            data readers need to use the same enumerator, so we put it on the Shaper, since
            that is something that all the nested data readers (and data records) have access
            to -- it prevents us from having to pass two objects around.
            
        
        
            
            Optimized enumerator for queries not including nested results.
            
        
        
            
            Enumerates (for each row in the input) an array of all coordinators producing new elements. The array
            contains a position for each 'depth' in the result. A null value in any position indicates that no new
            results were produced for the given row at the given depth. It is possible for a row to contain no
            results for any row.
            
        
        
            
            Wraps RowNestedResultEnumerator and yields results appropriate to an ObjectQuery instance. In particular,
            root level elements (T) are returned only after aggregating all child elements.
            
        
        
            
            Requires: the row is currently positioned at the start of an element.
            Reads all rows in the element and sets up state for the next element (if any).
            
        
        
            
            Reads rows until the start of a new element is found. If no element
            is found before all rows are consumed, returns false.
            
        
        
            
            Describes the state of this enumerator with respect to the _rowEnumerator
            it wraps.
            
        
        
            
            No rows have been read yet
            
        
        
            
            Positioned at the start of a new root element. The previous element must
            be stored in _previousElement. We read ahead in this manner so that
            the previous element is fully populated (all of its children loaded)
            before returning.
            
        
        
            
            Positioned past the end of the rows. The last element in the enumeration
            has not yet been returned to the user however, and is stored in _previousElement.
            
        
        
            
            Positioned past the end of the rows. The last element has been returned to
            the user.
            
        
        
            
            Wraps RowNestedResultEnumerator and yields results appropriate to an EntityReader instance. In particular,
            yields RecordState whenever a new element becomes available at any depth in the result hierarchy.
            
        
        
            
            Gets depth of coordinator we're currently consuming. If _depth == -1, it means we haven't started
            to consume the next row yet.
            
        
        
            
            Translates query ColumnMap into ShaperFactory. Basically, we interpret the
            ColumnMap and compile delegates used to materialize results.
            
        
        
            
            The main entry point for the translation process. Given a ColumnMap, returns
            a ShaperFactory which can be used to materialize results for a query.
            
        
        
            
            Basic Visitor Design Pattern support for ColumnMap hierarchy;
            This visitor class allows you to return results; it's useful for operations
            that copy or manipulate the hierarchy.
            
        
        
            
            Gets the O-Space Metadata workspace.
            
        
        
            
            Gets structure telling us how to interpret 'span' rows (includes implicit
            relationship span and explicit full span via ObjectQuery.Include().
            
        
        
            
            Gets the MergeOption for the current query (influences our handling of
            entities when they are materialized).
            
        
        
            
            When true, indicates we're processing for the value layer (BridgeDataReader)
            and not the ObjectMaterializer
            
        
        
            
            Gets scratchpad for the coordinator builder for the nested reader currently
            being translated or emitted.
            
        
        
            
            Local cache of ObjectTypeMappings for EdmTypes (to prevent expensive lookups).
            
        
        
            
            Visit(ComplexTypeColumnMap)
            
        
        
            
            Visit(EntityColumnMap)
            
        
        
            
            Prepare a list of PropertyBindings for each item in the specified property
            collection such that the mapped property of the specified clrType has its
            value set from the source data reader.
            Along the way we'll keep track of non-public properties and properties that
            have link demands, so we can ensure enforce them.
            
        
        
            
            Visit(SimplePolymorphicColumnMap)
            
        
        
            
            Visit(MultipleDiscriminatorPolymorphicColumnMap)
            
        
        
            
            Helper method to simplify the construction of the types
            
        
        
            
            Visit(RecordColumnMap)
            
        
        
            
            Build expression to materialize LINQ initialization types (anonymous
            types, IGrouping, EntityCollection)
            
        
        
            
            Build expression to materialize a data record.
            
        
        
            
            Build expression to materialize the spanned information
            
        
        
            
            Visit(SimpleCollectionColumnMap)
            
        
        
            
            Visit(DiscriminatedCollectionColumnMap)
            
        
        
            
            Common code for both Simple and Discrminated Column Maps.
            
        
        
            
            Common code for both Simple and Discriminated Column Maps.
            
        
        
            
            Returns the CLR Type of the element of the collection
            
        
        
            
            Build up the coordinator graph using Enter/ExitCoordinatorTranslateScope.
            
        
        
            
            Return an expression to read the coordinator from a state slot at
            runtime.  This is the method where we store the expressions we've
            been building into the CoordinatorScratchpad, which we'll compile
            later, once we've left the visitor.
            
        
        
            
            Visit(RefColumnMap)
            If the entityKey has a value, then return it otherwise return a null
            valued EntityKey.  The EntityKey construction is the tricky part.
            
        
        
            
            Visit(ScalarColumnMap)
            Pretty basic stuff here; we just call the method that matches the
            type of the column.  Of course we have to handle nullable/non-nullable
            types, and non-value types.
            
        
        
            
            Visit(VarRefColumnMap)
            This should throw; VarRefColumnMaps should be removed by the PlanCompiler.
            
        
        
            
            Allocates a slot in 'Shaper.State' which can be used as storage for
            materialization tasks (e.g. remembering key values for a nested collection)
            
        
        
            
            Return the CLR type we're supposed to materialize for the TypeUsage
            
        
        
            
            Return the CLR type we're supposed to materialize for the EdmType
            
        
        
            
            Get the ConstructorInfo for the type specified, and ensure we keep track
            of any security requirements that the type has.
            
        
        
            
            Retrieves object mapping metadata for the given type. The first time a type
            is encountered, we cache the metadata to avoid repeating the work for every
            row in result.
            Caching at the materializer rather than workspace/metadata cache level optimizes
            for transient types (including row types produced for span, LINQ initializations,
            collections and projections).
            
        
        
            
            Remove spanned info from the edmType
            
        
        
            
            Creates an expression representing an inline delegate of type Func{Shaper, body.Type};
            
        
        
            
            Creates expression to construct an EntityKey. Assumes that both the key has
            a value (Emit_EntityKey_HasValue == true) and that the EntitySet has value
            (EntitySet != null).
            
        
        
            
            Scratchpad for topmost nested reader coordinator.
            
        
        
            
            Gets number of 'Shaper.State' slots allocated (used to hold onto intermediate
            values during materialization)
            
        
        
            
            Struct containing the requested type and parent column map used
            as the arg in the Translator visitor.
            
        
        
            
            Copied from System.Data.dll
            
        
        
            
            Core function  for parsing the multipart identifer string.
            Note:  Left quote strings need to correspond 1 to 1 with the right quote strings
            example: "ab" "cd",  passed in for the left and the right quote
            would set a or b as a starting quote character.
            If a is the starting quote char then c would be the ending quote char
            otherwise if b is the starting quote char then d would be the ending quote character.
            
             string to parse 
             set of characters which are valid quoteing characters to initiate a quote 
             set of characters which are valid to stop a quote, array index's correspond to the the leftquote array. 
             separator to use 
        
        
            
            Represents a compiled LINQ ObjectQuery cache entry
            
        
        
            
            Represents the abstract base class for all cache entry values in the query cache
            
        
        
            
            querycachekey for this entry
            
        
        
            
            strong reference to the target object
            
        
        
            
            cache entry constructor
            
        
        
            
            The payload of this cache entry.
            
        
        
            
            Returns the query cache key
            
        
        
            
            The merge option that was inferred during expression conversion.
            
        
        
            
            A dictionary that contains a plan for each combination of
            merge option and UseCSharpNullComparisonBehavior flag.
            
        
        
            
            constructor
            
             The cache key that targets this cache entry 
             The inferred merge option that applies to this cached query 
        
        
            
            Retrieves the execution plan for the specified merge option and UseCSharpNullComparisonBehavior flag. May return null if the
            plan for the given merge option and useCSharpNullComparisonBehavior flag is not present.
            
             The merge option for which an execution plan is required. 
             Flag indicating if C# behavior should be used for null comparisons. 
            
            The corresponding execution plan, if it exists; otherwise null .
            
        
        
            
            Attempts to set the execution plan for 's merge option and
            
            flag on
            this cache entry to . If a plan already exists for that merge option and UseCSharpNullComparisonBehavior flag, the
            current value is not changed but is returned to the caller. Otherwise  is returned to the caller.
            
             The new execution plan to add to this cache entry. 
             Flag indicating if C# behavior should be used for null comparisons. 
            
            The execution plan that corresponds to  's merge option, which may be
            
            or may be a previously added execution plan.
            
        
        
            
            Convenience method to retrieve the result type from the first non-null execution plan found on this cache entry.
            
             The result type of any execution plan that is or could be added to this cache entry 
            
            true if at least one execution plan was present and a result type could be retrieved; otherwise false
            
        
        
            
            represents an abstract cache key
            
        
        
            
            entry hit counter
            
        
        
            
            default string comparison kind - Ordinal
            
        
        
            
            Determines whether two instances of QueryCacheContext are equal.
            Equality is value based.
            
        
        
            
            Returns QueryCacheContext instance HashCode
            
        
        
            
            Updates hit count
            
        
        
            
            default string comparer
            
        
        
            
            Cache entry hit count
            
        
        
            
            Gets/Sets Aging index for cache entry
            
        
        
            
            Determines equality of this key with respect to 
            
        
        
            
            Returns the hashcode for this cache key
            
        
        
            
            Returns a string representation of the state of this cache key
            
             A string representation that includes query text, parameter information, include path information and merge option information about this cache key. 
        
        
            
            Represents EntityCommand Cache key context
            
        
        
            
            Stored procedure or command text?
            
        
        
            
            Entity Sql statement
            
        
        
            
            parameter collection token
            
        
        
            
            number of parameters
            
        
        
            
            Combined Hashcode based on field hashcodes
            
        
        
            
            Creates a new instance of EntityClientCacheKey given a entityCommand instance
            
        
        
            
            determines equality of two cache keys based on cache context values
            
        
        
            
            Returns Context Hash Code
            
        
        
            
            Returns a string representation of the parameter list
            
        
        
            
            returns the composed cache key
            
        
        
            
            Represents an Entity-SQL-based ObjectQuery Cache key context
            
        
        
            
            Aggregate hashcode based the hashcode of the properties of this cache key
            
        
        
            
            The name of the default container in effect when the Entity-SQL text was parsed
            (affects whether or not the text can be successfully parsed)
            
        
        
            
            Entity Sql statement
            
        
        
            
            Parameter collection token
            
        
        
            
            Number of parameters
            
        
        
            
            Concatenated representation of the Include span paths
            
        
        
            
            The merge option in effect
            
        
        
            
            Result type affects assembly plan
            
        
        
            
            Whether the query is streaming or buffering
            
        
        
            
            Creates a new instance of ObjectQueryCacheKey given a entityCommand instance
            
             The default container name in effect when parsing the query (may be null) 
             The Entity-SQL text of the query 
             The number of parameters to the query 
             A string representation of the parameters to the query (may be null) 
             A string representation of the Include span paths in effect (may be null) 
             The merge option in effect. Required for result assembly. 
        
        
            
            Determines equality of two cache keys based on cache context values
            
        
        
            
            Returns the hashcode for this cache key
            
        
        
            
            Returns a string representation of the state of this cache key
            
             A string representation that includes query text, parameter information, include path information and merge option information about this cache key. 
        
        
            
            Represents an ELinq-based ObjectQuery Cache key context
            
        
        
            
            Aggregate hashcode based the hashcode of the properties of this cache key
            
        
        
            
            DbExpression key
            
        
        
            
            Parameter collection token
            
        
        
            
            Number of parameters
            
        
        
            
            Concatenated representation of the Include span paths
            
        
        
            
            The merge option in effect
            
        
        
            
            Result type affects assembly plan.
            
        
        
            
            Whether the query is streaming or buffering
            
        
        
            
            Flag indicating if the C# behavior should be used for null comparisons
            
        
        
            
            Creates a new instance of LinqQueryCacheKey.
            
             The DbExpression key of the linq query 
             The number of parameters to the query 
             A string representation of the parameters to the query (may be null) 
             A string representation of the Include span paths in effect (may be null) 
             The merge option in effect. Required for result assembly. 
             
             Flag indicating if the C# behavior should be used for null comparisons 
             The type of each result item - for a given query as a CLR type instance 
        
        
            
            Determines equality of two cache keys based on cache context values
            
        
        
            
            Returns the hashcode for this cache key
            
        
        
            
            Returns a string representation of the state of this cache key
            
        
        
            
            Provides Query Execution Plan Caching Service
            
            
            Thread safe.
            Dispose must be called as there is no finalizer for this class
            
        
        
            
            Default Soft maximum number of entries in the cache
            Default value: 1000
            
        
        
            
            Default high mark for starting sweeping process
            default value: 80% of MaxNumberOfEntries
            
        
        
            
            Recycler timer period
            
        
        
            
            cache lock object
            
        
        
            
            cache data
            
        
        
            
            soft maximum number of entries in the cache
            
        
        
            
            high mark of the number of entries to trigger the sweeping process
            
        
        
            
            Eviction timer
            
        
        
            
            Constructs a new Query Cache Manager instance, with default values for all 'configurable' parameters.
            
            
            A new instance of  configured with default entry count, load factor and recycle period
            
        
        
            
            Cache Constructor
            
             Maximum number of entries that the cache should contain. 
             The number of entries that must be present, as a percentage, before entries should be removed according to the eviction policy. Must be greater than 0 and less than or equal to 1.0 
             The interval, in milliseconds, at which the number of entries will be compared to the load factor and eviction carried out if necessary. 
        
        
            
            Adds new entry to the cache using "abstract" cache context and
            value; returns an existing entry if the key is already in the
            dictionary.
            
             
             The existing entry in the dicitionary if already there; inQueryCacheEntry if none was found and inQueryCacheEntry was added instead. 
             true if the output entry was already found; false if it had to be added. 
        
        
            
            Lookup service for a cached value.
            
        
        
            
            Clears the Cache
            
        
        
            
            lookup service
            
             true if cache hit, false if cache miss 
        
        
            
            Recycler handler. This method is called directly by the eviction timer.
            It should take no action beyond invoking the  method on the
            cache manager instance passed as .
            
             The cache manager instance on which the 'recycle' handler should be invoked 
        
        
            
            Aging factor
            
        
        
            
            Sweeps the cache removing old unused entries.
            This method implements the query cache eviction policy.
            
        
        
            
            Dispose instance
            
            
            Dispose must be called as there are no finalizers for this class
            
        
        
            
            Periodically invokes cache cleanup logic on a specified  instance,
            and allows this periodic callback to be suspended, resumed or stopped in a thread-safe way.
            
        
        
            
            Used to control multi-threaded accesses to this instance
            
        
        
            
            The required interval between invocations of the cache cleanup logic
            
        
        
            
            The underlying QueryCacheManger that the callback will act on
            
        
        
            
            The underlying  that implements the periodic callback
            
        
        
            
            Permanently stops the eviction timer.
            It will no longer generate periodic callbacks and further calls to , , or
            
            ,
            though thread-safe, will have no effect.
            
            
            If this eviction timer has already been stopped (using the  method), returns false ; otherwise, returns true to indicate that the call successfully stopped and cleaned up the underlying timer instance.
            
            
            Thread safe. May be called regardless of the current state of the eviction timer.
            Once stopped, an eviction timer cannot be restarted with the  method.
            
        
        
            
            Pauses the operation of the eviction timer.
            
            
            If this eviction timer has already been stopped (using the  method), returns false ; otherwise, returns true to indicate that the call successfully suspended the inderlying
            
            and no further periodic callbacks will be generated until the  method is called.
            
            
            Thread-safe. May be called regardless of the current state of the eviction timer.
            Once suspended, an eviction timer may be resumed or stopped.
            
        
        
            
            Causes this eviction timer to generate periodic callbacks, provided it has not been permanently stopped (using the
            
            method).
            
            
            Thread-safe. May be called regardless of the current state of the eviction timer.
            
        
        
            
            Generates monotonically increasing names of the form PrefixCounter, where Prefix is an optional prefix string and Counter is the string representation of a monotonically increasing int value that wraps to zero at int.MaxValue
            
        
        
            
            Constructs a new AliasGenerator with the specified prefix string
            
             The prefix string that will appear as the first part of all aliases generated by this AliasGenerator. May be null to indicate that no prefix should be used 
        
        
            
            Generates the next alias and increments the Counter.
            
             The generated alias 
        
        
            
            Generates the alias for the index.
            
             index to generate the alias for 
             The generated alias 
        
        
            
            Rewrites the terms in a Boolean expression tree.
            
             Term type for leaf nodes of input 
             Term type for leaf nodes of output 
        
        
            
            Initialize a new translator
            
             Translator delegate; must not be null 
        
        
            
            Base class for clauses, which are (constrained) combinations of literals.
            
             Type of normal form literal. 
        
        
            
            Abstract base class for nodes in normal form expressions, e.g. Conjunctive Normal Form
            sentences.
            
             Type of expression leaf term identifiers. 
        
        
            
            Initialize a new normal form node representing the given expression. Caller must
            ensure the expression is logically equivalent to the node.
            
             Expression logically equivalent to this node. 
        
        
            
            Utility method for delegation that return the expression corresponding to a given
            normal form node.
            
             Type of node 
             Node to examine. 
             Equivalent Boolean expression for the given node. 
        
        
            
            Gets an expression that is logically equivalent to this node.
            
        
        
            
            Initialize a new clause.
            
             Literals contained in the clause. 
             Type of expression tree to produce from literals. 
        
        
            
            Gets the literals contained in this clause.
            
        
        
            
            A CNF clause is of the form:
            Literal1 + Literal2 . ...
            Each literal is of the form:
            Term
            or
            !Term
            
             Type of normal form literal. 
        
        
            
            Initialize a CNF clause.
            
             Literals in clause. 
        
        
            
            Represents a sentence in conjunctive normal form, e.g.:
            Clause1 . Clause2 . ...
            Where each DNF clause is of the form:
            Literal1 + Literal2 + ...
            Each literal is of the form:
            Term
            or
            !Term
            
             Type of expression leaf term identifiers. 
        
        
            
            Abstract base class for normal form sentences (CNF and DNF)
            
             Type of expression leaf term identifiers. 
             Type of clauses in the sentence. 
        
        
            
            Initialize a sentence given the appropriate sentence clauses. Produces
            an equivalent expression by composing the clause expressions using
            the given tree type.
            
             Sentence clauses 
             Tree type for sentence (and generated expression) 
        
        
            
            Manages state used to translate BoolExpr to decision diagram vertices and back again.
            Specializations exist for generic and DomainConstraint expressions.
            
        
        
            
            Gets the solver instance associated with this conversion context. Used to reterieve
            canonical Decision Diagram vertices for this context.
            
        
        
            
            Given a term in BoolExpr, returns the corresponding decision diagram vertex.
            
        
        
            
            Describes a vertex as a series of literal->vertex successors such that the literal
            logically implies the given vertex successor.
            
        
        
            
            Handles conversion of expressions to different forms (decision diagram, etc)
            
        
        
            
            Converts the decision diagram (Vertex) wrapped by this converter and translates it into DNF
            and CNF forms. I'll first explain the strategy with respect to DNF, and then explain how CNF
            is achieved in parallel. A DNF sentence representing the expression is simply a disjunction
            of every rooted path through the decision diagram ending in one. For instance, given the
            following decision diagram:
            A
            0/ \1
            B     C
            0/ \1 0/ \1
            One   Zero   One
            the following paths evaluate to 'One'
            !A, !B
            A, C
            and the corresponding DNF is (!A.!B) + (A.C)
            It is easy to compute CNF from the DNF of the negation, e.g.:
            !((A.B) + (C.D)) iff. (!A+!B) . (!C+!D)
            To compute the CNF form in parallel, we negate the expression (by swapping One and Zero sinks)
            and collect negation of the literals along the path. In the above example, the following paths
            evaluate to 'Zero':
            !A, B
            A, !C
            and the CNF (which takes the negation of all literals in the path) is (!A+B) . (A+!C)
            
        
        
            
            A DNF clause is of the form:
            Literal1 . Literal2 . ...
            Each literal is of the form:
            Term
            or
            !Term
            
             Type of normal form literal. 
        
        
            
            Initialize a DNF clause.
            
             Literals in clause. 
        
        
            
            Represents a sentence in disjunctive normal form, e.g.:
            Clause1 + Clause2 . ...
            Where each DNF clause is of the form:
            Literal1 . Literal2 . ...
            Each literal is of the form:
            Term
            or
            !Term
            
             Type of expression leaf term identifiers. 
        
        
            
            Represents a constraint of the form:
            Var1 in Range
            
             Type of the variable. 
             Type of range elements. 
        
        
            
            Constructs a new constraint for the given variable and range.
            
             Variable in constraint. 
             Range of constraint. 
        
        
            
            Constructor supporting a singleton range domain constraint
            
        
        
            
            Inverts this constraint (this iff. !result)
            !(Var in Range) iff. Var in (Var.Domain - Range)
            
        
        
            
            Gets the variable for this constraint.
            
        
        
            
            Get the range for this constraint.
            
        
        
            
            Specialization of ConversionContext for DomainConstraint BoolExpr
            
        
        
            
            A map from domain variables to decision diagram variables.
            
        
        
            
            Translates a domain constraint term to an N-ary DD vertex.
            
        
        
            
            Represents a variable with finite domain, e.g., c in {1, 2, 3}
            
             Type of the identifier (c above -- it need not be int). 
             Type of domain variables (int in the above example). 
        
        
            
            Constructs a new domain variable.
            
             Identifier 
             Domain of variable. 
             Comparer of identifier 
        
        
            
            Gets the variable.
            
        
        
            
            Gets the domain of this variable.
            
        
        
            
            Enumeration of Boolean expression node types.
            
        
        
            
            Boolean expression that evaluates to false.
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Gets the one instance of FalseExpr
            
        
        
            
            Generic implementation of a ConversionContext
            
        
        
            
            Services related to different identifier types for Boolean expressions.
            
        
        
            
            Returns negation of the given literal.
            
        
        
            
            Creates a new conversion context.
            
        
        
            
            Performs local simplification appropriate to the current identifier.
            
        
        
            
            A Visitor class that returns all the leaves in a boolean expression
            
             Type of leaf term identifiers in expression. 
        
        
            
            Represents a literal in a normal form expression of the form:
            Term
            or
            !Term
            
        
        
            
            Initialize a new literal.
            
             Term 
             Sign of term 
        
        
            
            Creates a negated version of this literal.
            
             !this 
        
        
            
            Gets literal term.
            
        
        
            
            Gets sign of term.
            
        
        
            
            VertexLiteral pair, used for ConversionContext.GetSuccessors
            
        
        
            
            A tree expression that evaluates to true iff. its (single) child evaluates to false.
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Initialize a new Not expression with the given child.
            
        
        
            
            Supports construction of canonical Boolean expressions as Reduced Ordered
            Boolean Decision Diagrams (ROBDD). As a side effect, supports simplification and SAT:
            - The canonical form of a valid expression is Solver.One
            - The canonical form of an unsatisfiable expression is Solver.Zero
            - The lack of redundancy in the trees allows us to produce compact representations
            of expressions
            Any method taking a Vertex argument requires that the argument is either
            a 'sink' (Solver.One or Solver.Zero) or generated by this Solver instance.
            
        
        
            
            Creates a leaf vertex; all children must be sinks
            
        
        
            
            Returns a Vertex with the given configuration. If this configuration
            is known, returns the existing vertex. Otherwise, a new
            vertex is created. This ensures the vertex is unique in the context
            of this solver.
            
        
        
            
            Composes the given vertices to produce a new ROBDD.
            
        
        
            
            Given parts of an if-then-else statement, determines the top variable (nearest
            root). Used to determine which variable forms the root of a composed Vertex.
            
        
        
            
            Returns 'vertex' evaluated for the given value of 'variable'. Requires that
            the variable is less than or equal to vertex.Variable.
            
        
        
            
            Checks requirements for vertices.
            
        
        
            
            Checks requirements for a vertex argument (must not be null, and must be in scope
            for this solver)
            
        
        
            
            Supports value comparison of vertices. In general, we use reference comparison
            since the Solver ensures a single instance of each canonical Vertex. The Solver
            needs this comparer to ensure a single instance of each canonical Vertex though...
            
        
        
            
            Record structure containing three values.
            
        
        
            
            A term is a leaf node in a Boolean expression. Its value (T/F) is undefined.
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Construct a term.
            
             Value comparer to use when comparing two term expressions. 
             Identifier/tag for this term. 
        
        
            
            Gets identifier for this term. This value is used to determine whether
            two terms as equivalent.
            
        
        
            
            Converts a BoolExpr to a Vertex within a solver.
            
        
        
            
            Boolean expression that evaluates to true.
            
             The type of leaf term identifiers in this expression. 
        
        
            
            Gets the one instance of TrueExpr
            
        
        
            
            A node in a Reduced Ordered Boolean Decision Diagram. Reads as:
            if 'Variable' then 'Then' else 'Else'
            Invariant: the Then and Else children must refer to 'deeper' variables,
            or variables with a higher value. Otherwise, the graph is not 'Ordered'.
            All creation of vertices is mediated by the Solver class which ensures
            each vertex is unique. Otherwise, the graph is not 'Reduced'.
            
        
        
            
            Initializes a sink BDD node (zero or one)
            
        
        
            
            Sink node representing the Boolean function '1' (true)
            
        
        
            
            Sink node representing the Boolean function '0' (false)
            
        
        
            
            Gets the variable tested by this vertex. If this is a sink node, returns
            int.MaxValue since there is no variable to test (and since this is a leaf,
            this non-existent variable is 'deeper' than any existing variable; the
            variable value is larger than any real variable)
            
        
        
            
            Note: do not modify elements.
            Gets the result when Variable evaluates to true. If this is a sink node,
            returns null.
            
        
        
            
            Returns true if this is '1'.
            
        
        
            
            Returns true if this is '0'.
            
        
        
            
            Returns true if this is '0' or '1'.
            
        
        
            
            Extends IComparer support to the (non-IComparable) byte[] type, based on by-value comparison.
            
        
        
            
            An implementation of IEqualityComparer{object} that compares byte[] instances by value, and
            delegates all other equality comparisons to a specified IEqualityComparer. In the default case,
            this provides by-value comparison for instances of the CLR equivalents of all EDM primitive types.
            
        
        
            
            Provides by-value comparison for instances of the CLR equivalents of all EDM primitive types.
            
        
        
            
            Contains utility methods for construction of DB commands through generic
            provider interfaces.
            
        
        
            
            Consumes all rows and result sets from the reader. This allows client to retrieve
            parameter values and intercept any store exceptions.
            
             Reader to consume. 
        
        
            
            requires: commandText must not be null
            The command text must be in the form Container.FunctionImportName.
            
        
        
            
            Given an entity command and entity transaction, passes through relevant state to store provider
            command.
            
             Entity command. Must not be null. 
             Entity transaction. Must not be null. 
             Store provider command that is being setup. Must not be null. 
        
        
            
            Given an entity command, store provider command and a connection, sets all output parameter values on the entity command.
            The connection is used to determine how to map spatial values.
            
             Entity command on which to set parameter values. Must not be null. 
             Store provider command from which to retrieve parameter values. Must not be null. 
             The connection on which the command was run. Must not be null 
        
        
            
            Returns a new array with the first element equal to  and the remaining
            elements taken from .
            
             The element type of the arrays 
             An array that provides the successive elements of the new array 
             An instance the provides the first element of the new array 
             A new array containing the specified argument as the first element and the specified successive elements 
        
        
            
            Builds a balanced binary tree with the specified nodes as leaves.
            Note that the current elements of  MAY be overwritten
            as the leaves are combined to produce the tree.
            
             The type of each node in the tree 
             The leaf nodes to combine into an balanced binary tree 
             A function that produces a new node that is the combination of the two specified argument nodes 
             The single node that is the root of the balanced binary tree 
        
        
            
            Uses a stack to non-recursively traverse a given tree structure and retrieve the leaf nodes.
            
             The type of each node in the tree structure 
             The node that represents the root of the tree 
             A function that determines whether or not a given node should be considered a leaf node 
            
            A function that traverses the tree by retrieving the immediate descendants of a (non-leaf) node.
            
            
            An enumerable containing the leaf nodes (as determined by  ) retrieved by traversing the tree from
            
            using  .
            
        
        
            
            Remembers the result of evaluating an expensive function so that subsequent
            evaluations are faster. Thread-safe.
            
             Type of the argument to the function. 
             Type of the function result. 
        
        
            
            Constructs
            
             Required. Function whose values are being cached. 
             Optional. Comparer used to determine if two functions arguments are the same. 
        
        
            
            Evaluates the wrapped function for the given argument. If the function has already
            been evaluated for the given argument, returns cached value. Otherwise, the value
            is computed and returned.
            
             Function argument. 
             Function result. 
        
        
            
            Encapsulates a 'deferred' result. The result is constructed with a delegate (must not
            be null) and when the user requests a value the delegate is invoked and stored.
            
        
        
            
            Returns an element type of the collection returned by the function import.
            Returns false, if element type cannot be determined.
            
        
        
            
            effects: determines if the given function import returns collection type, and if so returns the type
            
        
        
            
            Gets the resultSetIndexth return parameter for functionImport, or null if resultSetIndex is out of range
            
        
        
            
            Gets the resultSetIndexth result edm type, and ensure that it is consistent with EntityType.
            
        
        
            
            check that the type TElement and function metadata are consistent
            
        
        
            
            Returns true iff member's is a simple non-structures scalar such as primitive or enum.
            
        
        
            
            Given a table EntitySet this function finds out all C-side EntitySets that are mapped to the table.
            
        
        
            
            Builds an undirected graph (represented as a directional graph with reciprocal navigation edges) of the all the types in the workspace.
            This is used to traverse inheritance hierarchy up and down.
            O(n), where n=number of types
            
             A dictionary of type t -> set of types {s}, such that there is an edge between t and elem(s) iff t and s are related DIRECTLY via inheritance (child or parent type) 
        
        
            
            is A parent of b?
            
        
        
            
            Add and Edge a --> b
            Assumes edge does not exist
            O(1)
            
        
        
            
            Checks wither the given AssociationEnd's keys are sufficient for identifying a unique tuple in the AssociationSet.
            This is possible because refconstraints make certain Keys redundant. We subtract such redundant key sof "other" ends
            and see if what is left is contributed only from the given end's keys.
            
        
        
            
            Check if all the SchemaErrors have the serverity of SchemaErrorSeverity.Warning
            
        
        
            
            Instance of empty set with default comparer.
            
        
        
            
            Initialize set with the same values and comparer as other set.
            
        
        
            
            Initialize empty set with default comparer.
            
        
        
            
            Initialize a set with the given elements and using default comparer.
            
        
        
            
            Initializes an empty set with the given comparer.
            
        
        
            
            Initialize a set with the given elements and comparer.
            
        
        
            
            Determines whether the given element exists in the set.
            
        
        
            
            Requires: !IsReadOnly
            Adds given element to the set. If the set already contains
            the element, does nothing.
            
        
        
            
            Requires: !IsReadOnly
            Adds given elements to the set. If the set already contains
            one of the elements, does nothing.
            
        
        
            
            Requires: !IsReadOnly
            Removes given element from the set. If the set does not contain
            the element, does nothing.
            
        
        
            
            Requires: !IsReadOnly
            Removes all elements from the set.
            
        
        
            
            Returns an array containing all elements of the set. Order is arbitrary.
            
        
        
            
            Requires: other set must not be null and must have the same comparer.
            Returns true if this set contains the same elements as the other set.
            
        
        
            
            Requires: other set must not be null and must have the same comparer.
            Returns true if all elements in this set are contained in the other set.
            
        
        
            
            Requires: other set must not be null and must have the same comparer.
            Returns true if this set and other set have some elements in common.
            
        
        
            
            Requires: !IsReadOnly
            Requires: other collection must not be null.
            Subtracts other set from this set, leaving the result in this.
            
        
        
            
            Requires: other collection must not be null.
            Subtracts other set from this set, returning result.
            
        
        
            
            Requires: !IsReadOnly
            Requires: other collection must not be null.
            Unions other set with this set, leaving the result in this set.
            
        
        
            
            Requires: other collection must not be null.
            Unions other set with this set, returning the result.
            
        
        
            
            Requires: !IsReadOnly
            Requires: other set must not be null and must have the same comparer.
            Intersects this set and other set, leaving the result in this set.
            
        
        
            
            Returns a readonly version of this set.
            
        
        
            
            Makes this set readonly and returns this set.
            
        
        
            
            Returns aggregate hash code of all elements in this set.
            
        
        
            
            Returns typed enumerator over elements of the set.
            Uses HashSet<TElement>.Enumerator to avoid boxing struct.
            
        
        
            
            Returns an untyped enumeration of elements in the set.
            
             Enumeration of set members. 
        
        
            
            Gets the number of elements in this set.
            
        
        
            
            Gets the comparer used to determine equality and hash codes for elements of the set.
            
        
        
            
            Converts an enumeration of values to a delimited string list.
            
             Type of elements to convert. 
             Values. If null, returns empty string. 
             Converter. If null, uses default invariant culture converter. 
             Delimiter. If null, uses default (', ') 
             Delimited list of values in string. 
        
        
            
            Comparer that treats two strings as equivalent if they differ only by trailing
            spaces, e.g. 'A' eq 'A   '. Useful when determining if a set of values is unique
            even given the possibility of padding (consider SQL Server char and nchar columns)
            or to lookup values when the set of values is known to honor this uniqueness constraint.
            
        
        
            
            Typed version of TrailingSpaceComparer.
            
        
        
            
            Represents a node in a hierarchical collection of information strings.
            Intended as a common way mechanism to represent tree structures for debugging (using the TreePrinter class).
            A node consists of a string (represented as a StringBuilder), its collection of child nodes, and an optional Tag value.
            
        
        
            
            Constructs a new TreeNode with the specified text, tag value and child nodes
            
             The initial value of the new node's text 
             An optional list of initial child nodes 
        
        
            
            The current text of this node.
            
        
        
            
            The collection of child nodes for this node, which may be empty.
            
        
        
            
            Class representing a parameter collection used in EntityCommand
            
        
        
            
            Adds the specified object to the .
            
            
            The index of the new  object.
            
            
            An .
            
        
        
            
            Adds an array of values to the end of the
            
            .
            
            
            The  values to add.
            
        
        
            
            Removes all the  objects from the
            
            .
            
        
        
            
            Determines whether the specified  is in this
            
            .
            
            
            true if the  contains the value; otherwise false.
            
            
            The  value.
            
        
        
            
            Copies all the elements of the current  to the specified one-dimensional
            
            starting at the specified destination  index.
            
            
            The one-dimensional  that is the destination of the elements copied from the current
            
            .
            
            
            A 32-bit integer that represents the index in the  at which copying starts.
            
        
        
            
            Returns an enumerator that iterates through the
            
            .
            
            
            An  for the
            
            .
            
        
        
            
        
        
            
        
        
            
            Gets the location of the specified  with the specified name.
            
            
            The zero-based location of the specified  with the specified case-sensitive name. Returns -1 when the object does not exist in the
            
            .
            
            
            The case-sensitive name of the  to find.
            
        
        
            
            Gets the location of the specified  in the collection.
            
            
            The zero-based location of the specified  that is a
            
            in the collection. Returns -1 when the object does not exist in the
            
            .
            
            
            The  to find.
            
        
        
            
            Inserts an  into the
            
            at the specified index.
            
            The zero-based index at which value should be inserted.
            
            An  to be inserted in the
            
            .
            
        
        
            Removes the specified parameter from the collection.
            
            A  object to remove from the collection.
            
        
        
            
            Removes the  from the
            
            at the specified index.
            
            
            The zero-based index of the  object to remove.
            
        
        
            
            Removes the  from the
            
            at the specified parameter name.
            
            
            The name of the  to remove.
            
        
        
            
        
        
            
        
        
            
            Constructs the EntityParameterCollection object
            
        
        
            
            Adds the specified  object to the
            
            .
            
            
            A new  object.
            
            
            The  to add to the collection.
            
            
            The  specified in the  value  parameter is already added to this or another
            
            .
            
            
            The parameter passed was not a .
            
            The  value  parameter is null. 
        
        
            
            Adds a value to the end of the .
            
            
            A  object.
            
            The name of the parameter.
            The value to be added.
        
        
            
            Adds a  to the
            
            given the parameter name and the data type.
            
            
            A new  object.
            
            The name of the parameter. 
            
            One of the  values.
            
        
        
            
            Adds a  to the
            
            with the parameter name, the data type, and the column length.
            
            
            A new  object.
            
            The name of the parameter.
            
            One of the  values.
            
            The column length.
        
        
            
            Adds an array of  values to the end of the
            
            .
            
            
            The  values to add.
            
        
        
            
            Determines whether the specified  is in this
            
            .
            
            
            true if the  contains the value; otherwise false.
            
            
            The  value.
            
        
        
            
            Copies all the elements of the current  to the specified
            
            starting at the specified destination index.
            
            
            The  that is the destination of the elements copied from the current
            
            .
            
            
            A 32-bit integer that represents the index in the
            
            at which copying starts.
            
        
        
            
            Gets the location of the specified  in the collection.
            
            
            The zero-based location of the specified  that is a
            
            in the collection. Returns -1 when the object does not exist in the
            
            .
            
            
            The  to find.
            
        
        
            
            Inserts a  object into the
            
            at the specified index.
            
            The zero-based index at which value should be inserted.
            
            A  object to be inserted in the
            
            .
            
        
        
            
            Marks that this collection has been changed
            
        
        
            
            Removes the specified  from the collection.
            
            
            A  object to remove from the collection.
            
            
            The parameter is not a .
            
            The parameter does not exist in the collection. 
        
        
            
            Reset the dirty flag on the collection
            
        
        
            
            Gets an Integer that contains the number of elements in the
            
            .
            
            
            The number of elements in the  as an Integer.
            
        
        
            
            Gets a value that indicates whether the
            
            has a fixed size.
            
            
            Returns true if the  has a fixed size; otherwise false.
            
        
        
            
            Gets a value that indicates whether the
            
            is read-only.
            
            
            Returns true if the  is read only; otherwise false.
            
        
        
            
            Gets a value that indicates whether the
            
            is synchronized.
            
            
            Returns true if the  is synchronized; otherwise false.
            
        
        
            
            Gets an object that can be used to synchronize access to the
            
            .
            
            
            An object that can be used to synchronize access to the
            
            .
            
        
        
            
            Gets the  at the specified index.
            
            
            The  at the specified index.
            
            The zero-based index of the parameter to retrieve. 
            The specified index does not exist. 
        
        
            
            Gets the  with the specified name.
            
            
            The  with the specified name.
            
            The name of the parameter to retrieve. 
            The specified name does not exist. 
        
        
            
            Gets whether this collection has been changes since the last reset
            
        
        
            
            Class representing a command for the conceptual layer
            
        
        
            
            Initializes a new instance of the  class using the specified values.
            
        
        
            
            Initializes a new instance of the  class with the specified statement.
            
            The text of the command.
        
        
            
            Constructs the EntityCommand object with the given eSQL statement and the connection object to use
            
             The eSQL command text to execute 
             The connection object 
             Resolver used to resolve DbProviderServices 
        
        
            
            Initializes a new instance of the  class with the specified statement and connection.
            
            The text of the command.
            A connection to the data source.
        
        
            
            Initializes a new instance of the  class with the specified statement, connection and transaction.
            
            The text of the command.
            A connection to the data source.
            The transaction in which the command executes.
        
        
            
            Internal constructor used by EntityCommandDefinition
            
             The prepared command definition that can be executed using this EntityCommand 
        
        
            
            Constructs a new EntityCommand given a EntityConnection and an EntityCommandDefition. This
            constructor is used by ObjectQueryExecution plan to execute an ObjectQuery.
            
             The connection against which this EntityCommand should execute 
             The prepared command definition that can be executed using this EntityCommand 
             
             
        
        
            
            Cancels the execution of an .
            
        
        
            
            Creates a new instance of an  object.
            
            
            A new instance of an  object.
            
        
        
            
            Create and return a new parameter object representing a parameter in the eSQL statement
            
        
        
            Executes the command and returns a data reader.
            
            The  that contains the results.
            
        
        
            
            Compiles the  into a command tree and passes it to the underlying store provider for execution, then builds an
            
            out of the produced result set using the specified
            
            .
            
            
            The  that contains the results.
            
            
            One of the  values.
            
        
        
            
            Executes the command and returns a data reader for reading the results
            
             The behavior to use when executing the command 
             A DbDataReader object 
        
        
            Executes the current command.
            The number of rows affected.
        
        
            Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored.
            The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty.
        
        
            
            Clear out any "compile" state
            
        
        
            Compiles the entity-level command and creates a prepared version of the command.
        
        
            
            Creates a prepared version of this command without regard to the current connection state.
            Called by both  and .
            
        
        
            
            Ensures we have the command tree, either the user passed us the tree, or an eSQL statement that we need to parse
            
        
        
            
            Get the command definition for the command; will construct one if there is not already
            one constructed, which means it will prepare the command on the client.
            
             the command definition 
        
        
            
            Given an entity command, returns the associated entity transaction and performs validation
            to ensure the transaction is consistent.
            
             Entity transaction 
        
        
            Compiles the entity-level command and returns the store command text.
            The store command text.
        
        
            
            Gets an entitycommanddefinition from cache if a match is found for the given cache key.
            
             out param. returns the entitycommanddefinition for a given cache key 
             true if a match is found in cache, false otherwise 
        
        
            
            Creates a commandDefinition for the command, using the options specified.
            Note: This method must not be side-effecting of the command
            
             the command definition 
        
        
            
            Checking the integrity of this command object to see if it's ready to be prepared or executed
            
        
        
            
            Checking if the command is still tied to a data reader, if so, then the reader must still be open and we throw
            
        
        
            
            Returns a dictionary of parameter name and parameter typeusage in s-space from the entity parameter
            collection given by the user.
            
        
        
            
            Call only when the reader associated with this command is closing. Copies parameter values where necessary.
            
        
        
            
            Tells the EntityCommand about the underlying store provider command in case it needs to pull parameter values
            when the reader is closing.
            
        
        
            
            Gets or sets the  used by the
            
            .
            
            The connection used by the entity command.
        
        
            
            The connection object used for executing the command
            
        
        
            Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute.
            The Entity SQL statement that specifies a command or stored procedure to execute.
        
        
            Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both.
            The command tree to execute.
        
        
            Gets or sets the amount of time to wait before timing out.
            The time in seconds to wait for the command to execute.
        
        
            
            Gets or sets a value that indicates how the
            
            property is to be interpreted.
            
            
            One of the  enumeration values.
            
        
        
            Gets the parameters of the Entity SQL statement or stored procedure.
            The parameters of the Entity SQL statement or stored procedure.
        
        
            
            The collection of parameters for this command
            
        
        
            
            Gets or sets the transaction within which the  executes.
            
            
            The transaction within which the  executes.
            
        
        
            
            The transaction that this command executes in
            
        
        
            Gets or sets how command results are applied to rows being updated.
            
            One of the  values.
            
        
        
            Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control.
            true if the command object should be visible in a Windows Form Designer control; otherwise, false.
        
        
            Gets or sets a value that indicates whether the query plan caching is enabled.
            true if the query plan caching is enabled; otherwise, false.
        
        
            
            Event raised when the reader is closing.
            
        
        
            
            Class for test purposes only, used to abstract the creation of  object.
            
        
        
            
            Class representing a connection for the conceptual layer. An entity connection may only
            be initialized once (by opening the connection). It is subsequently not possible to change
            the connection string, attach a new store connection, or change the store connection string.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class, based on the connection string.
            
            The provider-specific connection string.
            An invalid connection string keyword has been provided, or a required connection string keyword has not been provided.
        
        
            
            Initializes a new instance of the  class with a specified
             and 
            .
            
            
            A  to be associated with this
            .
            
            
            The underlying data source connection for this  object.
            
            The  workspace  or  connection  parameter is null.
            The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The  connection  is not in a closed state.
            The  connection  is not from an ADO.NET Entity Framework-compatible provider.
        
        
            
            Constructs the EntityConnection from Metadata loaded in memory
            
             Workspace containing metadata information. 
             Store connection. 
             If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection. 
        
        
            
            This constructor allows to skip the initialization code for testing purposes.
            
        
        
            Handles the event when the database connection state changes.
            The source of the event.
            The data for the event.
        
        
            
            Formats provider string to replace " with \" so it can be appended within quotation marks "..."
            
        
        
            
            Returns the  associated with this
            
            .
            
            
            The  associated with this
            
            .
            
            The inline connection string contains an invalid Metadata keyword value.
        
        
            Establishes a connection to the data source by calling the underlying data provider's Open method.
            An error occurs when you open the connection, or the name of the underlying data provider is not known.
            The inline connection string contains an invalid Metadata keyword value.
        
        
            
            Creates a new instance of an , with the
            
            set to this
            
            .
            
            
            An  object.
            
            The name of the underlying data provider is not known.
        
        
            
            Create a new command object that uses this connection object
            
        
        
            Closes the connection to the database.
            An error occurred when closing the connection.
        
        
            Not supported.
            Not supported. 
            When the method is called. 
        
        
            Begins a transaction by using the underlying provider. 
            
            A new . The returned
            
            instance can later be associated with the
            
            to execute the command under that transaction.
            
            
            The underlying provider is not known.-or-The call to
            
            was made on an
            
            that already has a current transaction.-or-The state of the
            
            is not
            
            .
            
        
        
            Begins a transaction with the specified isolation level by using the underlying provider. 
            
            A new . The returned
            
            instance can later be associated with the
            
            to execute the command under that transaction.
            
            The isolation level of the transaction.
            
            The underlying provider is not known.-or-The call to
            
            was made on an
            
            that already has a current transaction.-or-The state of the
            
            is not
            
            .
            
        
        
            
            Begins a database transaction
            
             The isolation level of the transaction 
             An object representing the new transaction 
        
        
            
            Enables the user to pass in a database transaction created outside of the Entity Framework
            if you want the framework to execute commands within that external transaction.
            Or pass in null to clear the Framework's knowledge of the current transaction.
            
            the EntityTransaction wrapping the DbTransaction or null if cleared
            Thrown if the transaction is already completed
            
            Thrown if the connection associated with the  object is already enlisted in a
            
            transaction
            
            
            Thrown if the connection associated with the  object is already participating in a transaction
            
            Thrown if the connection associated with the transaction does not match the Entity Framework's connection
        
        
            
            Enlists this  in the specified transaction.
            
            The transaction object to enlist into.
            
            The state of the  is not
            
            .
            
        
        
            
            Cleans up this connection object
            
             true to release both managed and unmanaged resources; false to release only unmanaged resources 
        
        
            
            Clears the current DbTransaction for this connection
            
        
        
            
            Reinitialize this connection object to use the new connection string
            
             The new connection string 
        
        
            
            Clears the current DbTransaction and the transaction the user enlisted the connection in
            with EnlistTransaction() method.
            
        
        
            
            Clears the transaction the user elinsted in using EnlistTransaction() method.
            
        
        
            
            Event handler invoked when the transaction has completed (either by committing or rolling back).
            
             The source of the event. 
            
            The  that contains the event data.
            
            
            Note that to avoid threading issues we never reset the  field here.
            
        
        
            
            Store-specific helper method invoked as part of Close()/Dispose().
            
        
        
            
            Uses DbProviderFactory to create a DbConnection
            
        
        
            
            Gets or sets the  connection string.
            
            The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned.
            
            An attempt was made to set the  property after the
            
            ’s  was initialized. The
            
            is initialized either when the  instance is constructed through the overload that takes a
            
            as a parameter, or when the
            
            instance has been opened.
            
            An invalid connection string keyword has been provided or a required connection string keyword has not been provided.
        
        
            Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error.
            The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out. 
            The value set is less than 0. 
        
        
            Gets the name of the current database, or the database that will be used after a connection is opened.
            The value of the Database property of the underlying data provider.
            The underlying data provider is not known. 
        
        
            
            Gets the  property of the underlying provider if the
            
            is open. Otherwise, returns
            
            .
            
            
            , if and only if both the
            
            ’s internal state and the underlying provider's
            
            are open. If the
            
            ’s state is open but the provider's
            
            is closed, this property returns
            
            . Otherwise, it returns
            
            .
            
        
        
            Gets the name or network address of the data source to connect to.
            The name of the data source. The default value is an empty string.
            The underlying data provider is not known. 
        
        
            Gets a string that contains the version of the data source to which the client is connected.
            The version of the data source that is contained in the provider connection string.
            The connection is closed. 
        
        
            
            Gets the provider factory associated with EntityConnection
            
        
        
            
            Gets the DbProviderFactory for the underlying provider
            
        
        
            
            Provides access to the underlying data source connection that is used by the
            
            object.
            
            
            The  for the data source connection.
            
        
        
            
            Gets the current transaction that this connection is enlisted in
            
        
        
            
            Whether the user has enlisted in transaction using EnlistTransaction method
            
        
        
            
            Class representing a connection string builder for the entity client provider
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class using the supplied connection string.
            
            A provider-specific connection string to the underlying data source.
        
        
            
            Clears the contents of the  instance.
            
        
        
            
            Determines whether the  contains a specific key.
            
            
            Returns true if the  contains an element that has the specified key; otherwise, false.
            
            
            The key to locate in the .
            
        
        
            
            Retrieves a value corresponding to the supplied key from this
            
            .
            
            Returns true if  keyword  was found in the connection string; otherwise, false.
            The key of the item to retrieve.
            The value corresponding to  keyword. 
             keyword  contains a null value (Nothing in Visual Basic).
        
        
            
            Removes the entry with the specified key from the
            
            instance.
            
            Returns true if the key existed in the connection string and was removed; false if the key did not exist.
            
            The key of the keyword/value pair to be removed from the connection string in this
            
            .
            
             keyword  is null (Nothing in Visual Basic)
        
        
            Gets or sets the name of a section as defined in a configuration file.
            The name of a section in a configuration file.
        
        
            Gets or sets the name of the underlying .NET Framework data provider in the connection string.
            The invariant name of the underlying .NET Framework data provider.
        
        
            Gets or sets the metadata locations in the connection string.
            Gets or sets the metadata locations in the connection string.
        
        
            Gets or sets the inner, provider-specific connection string.
            The inner, provider-specific connection string.
        
        
            
            Gets a value that indicates whether the
            
            has a fixed size.
            
            
            Returns true in every case, because the
            
            supplies a fixed-size collection of keyword/value pairs.
            
        
        
            
            Gets an  that contains the keys in the
            
            .
            
            
            An  that contains the keys in the
            
            .
            
        
        
            
            Returns a hash table object containing all the valid keywords. This is really the same as the Keys
            property, it's just that the returned object is a hash table.
            
        
        
            Gets or sets the value associated with the specified key. In C#, this property is the indexer.
            The value associated with the specified key. 
            The key of the item to get or set.
             keyword  is a null reference (Nothing in Visual Basic).
            Tried to add a key that does not exist in the available keys.
            Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied).
        
        
            
            A data reader class for the entity client provider
            
        
        
            
            The constructor for the data reader, each EntityDataReader must always be associated with a EntityCommand and an underlying
            DbDataReader.  It is expected that EntityDataReader only has a reference to EntityCommand and doesn't assume responsibility
            of cleaning the command object, but it does assume responsibility of cleaning up the store data reader object.
            
        
        
            
            For test purposes only.
            
        
        
            
            Closes the  object.
            
        
        
            
            Releases the resources consumed by this  and calls
            
            .
            
            true to release both managed and unmanaged resources; false to release only unmanaged resources.
        
        
            Gets the value of the specified column as a Boolean.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a byte.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Reads a stream of bytes from the specified column, starting at location indicated by  dataIndex , into the buffer, starting at the location indicated by  bufferIndex .
            The actual number of bytes read.
            The zero-based column ordinal.
            The index within the row from which to begin the read operation.
            The buffer into which to copy the data.
            The index with the buffer to which the data will be copied.
            The maximum number of characters to read.
        
        
            Gets the value of the specified column as a single character.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Reads a stream of characters from the specified column, starting at location indicated by  dataIndex , into the buffer, starting at the location indicated by  bufferIndex .
            The actual number of characters read.
            The zero-based column ordinal.
            The index within the row from which to begin the read operation.
            The buffer into which to copy the data.
            The index with the buffer to which the data will be copied.
            The maximum number of characters to read.
        
        
            Gets the name of the data type of the specified column.
            The name of the data type.
            The zero-based column ordinal.
        
        
            
            Gets the value of the specified column as a  object.
            
            The value of the specified column.
            The zero-based column ordinal.
        
        
            
            Returns a  object for the requested column ordinal that can be overridden with a provider-specific implementation.
            
            A data reader.
            The zero-based column ordinal.
        
        
            
            Gets the value of the specified column as a  object.
            
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a double-precision floating point number.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the data type of the specified column.
            The data type of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a single-precision floating point number.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a globally-unique identifier (GUID).
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a 16-bit signed integer.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a 32-bit signed integer.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the value of the specified column as a 64-bit signed integer.
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets the name of the column, given the zero-based column ordinal.
            The name of the specified column.
            The zero-based column ordinal.
        
        
            Gets the column ordinal given the name of the column.
            The zero-based column ordinal.
            The name of the column.
            The name specified is not a valid column name.
        
        
            Returns the provider-specific field type of the specified column.
            
            The  object that describes the data type of the specified column.
            
            The zero-based column ordinal.
        
        
            
            Gets the value of the specified column as an instance of .
            
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Gets all provider-specific attribute columns in the collection for the current row.
            
            The number of instances of  in the array.
            
            
            An array of  into which to copy the attribute columns.
            
        
        
            
            Returns a  that describes the column metadata of the
            
            .
            
            
            A  that describes the column metadata.
            
        
        
            
            Gets the value of the specified column as an instance of .
            
            The value of the specified column.
            The zero-based column ordinal.
        
        
            
            Gets the value of the specified column as an instance of .
            
            The value of the specified column.
            The zero-based column ordinal.
        
        
            Populates an array of objects with the column values of the current row.
            
            The number of instances of  in the array.
            
            
            An array of  into which to copy the attribute columns.
            
        
        
            Gets a value that indicates whether the column contains nonexistent or missing values.
            
            true if the specified column is equivalent to ; otherwise, false.
            
            The zero-based column ordinal.
        
        
            Advances the reader to the next result when reading the results of a batch of statements.
            true if there are more result sets; otherwise, false.
        
        
            Advances the reader to the next record in a result set.
            true if there are more rows; otherwise, false.
        
        
            
            Returns an  that can be used to iterate through the rows in the data reader.
            
            
            An  that can be used to iterate through the rows in the data reader.
            
        
        
            
            Returns a nested .
            
            The nested data record.
            The number of the DbDataRecord to return.
        
        
            
            Returns nested readers as  objects.
            
            
            The nested readers as  objects.
            
            The ordinal of the column.
        
        
            Gets a value indicating the depth of nesting for the current row.
            The depth of nesting for the current row.
        
        
            Gets the number of columns in the current row.
            The number of columns in the current row.
        
        
            
            Gets a value that indicates whether this  contains one or more rows.
            
            
            true if the  contains one or more rows; otherwise, false.
            
        
        
            
            Gets a value indicating whether the  is closed.
            
            
            true if the  is closed; otherwise, false.
            
        
        
            Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
            The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed.
        
        
            
            Gets the value of the specified column as an instance of .
            
            The value of the specified column.
            The zero-based column ordinal
        
        
            
            Gets the value of the specified column as an instance of .
            
            The value of the specified column.
            The name of the column.
        
        
            
            Gets the number of fields in the  that are not hidden.
            
            The number of fields that are not hidden.
        
        
            
            Gets  for this
            
            .
            
            The information of a data record.
        
        
            
            Class representing a parameter used in EntityCommand
            
        
        
            
            Initializes a new instance of the  class using the default values.
            
        
        
            
            Initializes a new instance of the  class using the specified parameter name and data type.
            
            The name of the parameter.
            
            One of the  values.
            
        
        
            
            Initializes a new instance of the  class using the specified parameter name, data type and size.
            
            The name of the parameter.
            
            One of the  values.
            
            The size of the parameter.
        
        
            
            Initializes a new instance of the  class using the specified properties.
            
            The name of the parameter.
            
            One of the  values.
            
            The size of the parameter.
            The name of the source column.
        
        
            
            Initializes a new instance of the  class using the specified properties.
            
            The name of the parameter.
            
            One of the  values.
            
            The size of the parameter.
            
            One of the  values.
            
            true to indicate that the parameter accepts null values; otherwise, false.
            The number of digits used to represent the value.
            The number of decimal places to which value is resolved.
            The name of the source column.
            
            One of the  values.
            
            The value of the parameter.
        
        
            
            Helper method to validate the parameter name; Ideally we'd only call this once, but
            we have to put an argumentName on the Argument exception, and the property setter would
            need "value" which confuses folks when they call the constructor that takes the value
            of the parameter.  c'est la vie.
            
        
        
            
            Resets the type associated with the .
            
        
        
            
            Marks that this parameter has been changed
            
        
        
            
            Determines the size of the given object
            
        
        
            
            Clones this parameter object
            
             The new cloned object 
        
        
            
            Clones this parameter object
            
        
        
            
            Get the type usage for this parameter in model terms.
            
             The type usage for this parameter 
            
            Because GetTypeUsage throws CommandValidationExceptions, it should only be called from EntityCommand during command execution
            
        
        
            
            Reset the dirty flag on the collection
            
        
        
            Returns a string representation of the parameter.
            A string representation of the parameter.
        
        
            Gets or sets the name of the entity parameter.
            The name of the entity parameter.
        
        
            
            Gets or sets the  of the parameter.
            
            
            One of the  values.
            
        
        
            Gets or sets the type of the parameter, expressed as an EdmType.
            The type of the parameter, expressed as an EdmType.
        
        
            
            Gets or sets the number of digits used to represent the
            
            property.
            
            The number of digits used to represent the value.
        
        
            
            Gets or sets the number of decimal places to which
            
            is resolved.
            
            The number of decimal places to which value is resolved.
        
        
            Gets or sets the value of the parameter.
            The value of the parameter.
        
        
            
            Gets whether this collection has been changes since the last reset
            
        
        
            
            Indicates whether the DbType property has been set by the user;
            
        
        
            
            Indicates whether the Direction property has been set by the user;
            
        
        
            
            Indicates whether the IsNullable property has been set by the user;
            
        
        
            
            Indicates whether the Precision property has been set by the user;
            
        
        
            
            Indicates whether the Scale property has been set by the user;
            
        
        
            
            Indicates whether the Size property has been set by the user;
            
        
        
            Gets or sets the direction of the parameter.
            
            One of the  values.
            
        
        
            Gets or sets a value that indicates whether the parameter accepts null values.
            true if null values are accepted; otherwise, false.
        
        
            Gets or sets the maximum size of the data within the column.
            The maximum size of the data within the column.
        
        
            
            Gets or sets the name of the source column mapped to the  and used for loading or returning the
            
            .
            
            The name of the source column mapped to the dataset and used for loading or returning the value.
        
        
            Gets or sets a value that indicates whether source column is nullable.
            true if source column is nullable; otherwise, false.
        
        
            
            Gets or sets the  to use when loading the value.
            
            
            One of the  values.
            
        
        
            
            Class representing a provider factory for the entity client provider
            
        
        
            
            A singleton object for the entity client provider factory object.
            This remains a public field (not property) because DbProviderFactory expects a field.
            
        
        
            
            Constructs the EntityProviderFactory object, this is private as users shouldn't create it directly
            
        
        
            
            Returns a new instance of the provider's class that implements the
            
            class.
            
            
            A new instance of .
            
        
        
            
            Throws a . This method is currently not supported.
            
            This method is currently not supported.
        
        
            
            Returns a new instance of the provider's class that implements the
            
            class.
            
            
            A new instance of .
            
        
        
            
            Returns a new instance of the provider's class that implements the
            
            class.
            
            
            A new instance of .
            
        
        
            
            Throws a . This method is currently not supported.
            
            This method is currently not supported.
        
        
            
            Returns a new instance of the provider's class that implements the
            
            class.
            
            
            A new instance of .
            
        
        
            
            Throws a . This method is currently not supported.
            
            This method is currently not supported.
        
        
            
            Returns the requested  class.
            
            
            A new instance of . The supported types are
            
            ,
            
            , and
            
            . Returns null (or Nothing in Visual Basic) for every other type.
            
            
            The  to return.
            
        
        
            
            Class representing a transaction for the conceptual layer
            
        
        
            
            Constructs the EntityTransaction object with an associated connection and the underlying store transaction
            
             The EntityConnetion object owning this transaction 
             The underlying transaction object 
        
        
            Commits the underlying transaction.
        
        
            Rolls back the underlying transaction.
        
        
            
            Cleans up this transaction object
            
             true to release both managed and unmanaged resources; false to release only unmanaged resources 
        
        
            
            Helper method to wrap EntityConnection.ClearCurrentTransaction()
            
        
        
            
            Gets  for this
            
            .
            
            
            An  to the underlying data source.
            
        
        
            
            The connection object owning this transaction object
            
        
        
            
            Gets the isolation level of this .
            
            
            An  enumeration value that represents the isolation level of the underlying transaction.
            
        
        
            
            Gets the DbTransaction for the underlying provider transaction
            
        
        
            
            Copied from System.Data.dll
            
        
        
            
            For testing.
            
        
        
            
            The class for provider services of the entity client
            
        
        
            
            Singleton object
            
        
        
            
            Create a Command Definition object, given the connection and command tree
            
             
             command tree for the statement 
             an executable command definition object 
            connection and commandTree arguments must not be null
        
        
            
            Ensures that the data space of the specified command tree is the model (C-) space
            
             The command tree for which the data space should be validated 
        
        
            
            Create a EntityCommandDefinition object based on the prototype command
            This method is intended for provider writers to build a default command definition
            from a command.
            
            prototype argument must not be null
            prototype argument must be a EntityCommand
        
        
            
            The IEntityAdapter interface allows adapters to support updates of entities stored in an IEntityCache.
            
        
        
            
            Persists the changes made in the entity cache to the store.
            
        
        
            
            Gets or sets the connection used by this adapter.
            
        
        
            
            Gets or sets whether the IEntityCache.AcceptChanges should be called during a call to IEntityAdapter.Update.
            
        
        
            
            Gets of sets the command timeout for update operations. If null, indicates that the default timeout
            for the provider should be used.
            
        
        
            
            Determine whether the cache has changes to apply.
            
             ObjectStateManager to check. Must not be null. 
             true if cache contains changes entries; false otherwise 
        
        
            
            Gets or sets the map connection used by this adapter.
            
        
        
            
            Gets or sets the map connection used by this adapter.
            
        
        
            
            Gets or sets whether the IEntityCache.AcceptChanges should be called during a call to IEntityAdapter.Update.
            
        
        
            
            Gets of sets the command timeout for update operations. If null, indicates that the default timeout
            for the provider should be used.
            
        
        
            
            nested store command definitions
            
        
        
            
            generates column map for the store result reader
            
        
        
            
            list of the parameters that the resulting command should have
            
        
        
            
            Set of entity sets exposed in the command.
            
        
        
            
            For testing.
            
        
        
            
            Creates a new instance of .
            
            Cannot prepare the command definition for execution; consult the InnerException for more information.
            The ADO.NET Data Provider you are using does not support CommandTrees.
        
        
            
            Constructor for testing/mocking purposes.
            
        
        
            
            Determines the store type for a function import.
            
        
        
            
            Handles the following negative scenarios
            Nested ComplexType Property in ComplexType
            
        
        
            
            Retrieves mapping for the given C-Space functionCommandTree
            
        
        
            
            Create a DbCommand object from the definition, that can be executed
            
        
        
            
            Creates ColumnMap for result assembly using the given reader.
            
        
        
            
            Creates ColumnMap for result assembly using the given reader's resultSetIndexth result set.
            
        
        
            
            Constructs a EntityParameter from a CQT parameter.
            
        
        
            
            Internal execute method -- copies command information from the map command
            to the command objects, executes them, and builds the result assembly
            structures needed to return the data reader
            
            behavior must specify CommandBehavior.SequentialAccess
            input parameters in the entityCommand.Parameters collection must have non-null values.
        
        
            
            Execute the store commands, and return IteratorSources for each one
            
        
        
            
            Updates storeParameter size, precision and scale properties from user provided parameter properties.
            
        
        
            
            Return the string used by EntityCommand and ObjectQuery<T> ToTraceString
            
        
        
            
            Property to expose the known parameters for the query, so the Command objects
            constructor can poplulate it's parameter collection from.
            
        
        
            
            Set of entity sets exposed in the command.
            
        
        
            
            Generates a column map given a data reader.
            
        
        
            
            Given a data reader, returns column map.
            
             Data reader. 
             Column map. 
        
        
            
            IColumnMapGenerator wrapping a constant instance of a column map (invariant with respect
            to the given DbDataReader)
            
        
        
            
            Generates column maps for a non-composable function mapping.
            
        
        
            
            Copied from System.Data.dll
            
        
        
            
            Represents a failure while trying to prepare or execute a CommandCompilation
            This exception is intended to provide a common exception that people can catch to
            hold provider exceptions (SqlException, OracleException) when using the EntityCommand
            to execute statements.
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of .
            
            The message that describes the error.
        
        
            
            Initializes a new instance of .
            
            The error message that explains the reason for the exception.
            The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            initializes a new instance EntityCommandCompilationException with a given SerializationInfo and StreamingContext
            
        
        
            
            Represents a failure while trying to prepare or execute a CommandExecution
            This exception is intended to provide a common exception that people can catch to
            hold provider exceptions (SqlException, OracleException) when using the EntityCommand
            to execute statements.
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of .
            
            The message that describes the error.
        
        
            
            Initializes a new instance of .
            
            The error message that explains the reason for the exception.
            The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            initializes a new instance EntityCommandExecutionException with a given SerializationInfo and StreamingContext
            
        
        
            
            An identifier for an entity.
            
        
        
            
            A singleton EntityKey by which a read-only entity is identified.
            
        
        
            
            Returns a singleton EntityKey identifying an entity resulted from a failed TREAT.
            
        
        
            
            A dictionary of names so that singleton instances of names can be used
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class with an entity set name and a generic
            
            collection.
            
            
            A  that is the entity set name qualified by the entity container name.
            
            
            A generic  collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the
            
            . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name.
            
        
        
            
            Initializes a new instance of the  class with an entity set name and an
            
            collection of
            
            objects.
            
            
            A  that is the entity set name qualified by the entity container name.
            
            
            An  collection of
            
            objects with which to initialize the key.
            
        
        
            
            Initializes a new instance of the  class with an entity set name and specific entity key pair.
            
            
            A  that is the entity set name qualified by the entity container name.
            
            
            A  that is the name of the key.
            
            
            An  that is the key value.
            
        
        
            
            Constructs an EntityKey from an IExtendedDataRecord representing the entity.
            
             EntitySet of the entity 
             an IExtendedDataRecord that represents the entity 
        
        
            
            Constructs an EntityKey from an IExtendedDataRecord representing the entity.
            
             EntitySet of the entity 
        
        
            
            Constructs a temporary EntityKey with the given EntitySet.
            Temporary keys do not store key field names
            
             EntitySet of the entity 
        
        
            
            Constructor optimized for a singleton key.
            SQLBUDT 478655: Performance optimization: Does no integrity checking on the key value.
            SQLBUDT 523554: Performance optimization: Does no validate type of key members.
            
             EntitySet of the entity 
             The single value that composes the entity's key, assumed to contain the correct type. 
        
        
            
            Constructor optimized for a composite key.
            SQLBUDT 478655: Performance optimization: Does no integrity checking on the key values.
            SQLBUDT 523554: Performance optimization: Does no validate type of key members.
            
             EntitySet of the entity 
             A list of the values (at least 2) that compose the entity's key, assumed to contain correct types. 
        
        
            Gets the entity set for this entity key from the given metadata workspace.
            
            The  for the entity key.
            
            The metadata workspace that contains the entity.
            The entity set could not be located in the specified metadata workspace.
        
        
            Returns a value that indicates whether this instance is equal to a specified object. 
            true if this instance and  obj  have equal values; otherwise, false. 
            
            An  to compare with this instance.
            
        
        
            
            Returns a value that indicates whether this instance is equal to a specified
            
            .
            
            true if this instance and  other  have equal values; otherwise, false. 
            
            An  object to compare with this instance.
            
        
        
            
            Serves as a hash function for the current  object.
            
            is suitable for hashing algorithms and data structures such as a hash table.
            
            
            A hash code for the current .
            
        
        
            
            Compares two  objects.
            
            true if the  key1  and  key2  values are equal; otherwise, false.
            
            A  to compare.
            
            
            A  to compare.
            
        
        
            
            Compares two  objects.
            
            true if the  key1  and  key2  values are not equal; otherwise, false.
            
            A  to compare.
            
            
            A  to compare.
            
        
        
            
            Internal function to compare two keys by their values.
            
             a key to compare 
             a key to compare 
             Entity sets are not significant for conceptual null keys 
             true if the two keys are equal, false otherwise 
        
        
            
            Returns an array of string/ pairs, one for each key value in this EntityKey,
            where the string is the key member name and the DbExpression is the value in this EntityKey
            for that key member, represented as a  with the same result
            type as the key member.
            
             The entity set to which this EntityKey refers; used to verify that this key has the required key members 
             The name -> expression mappings for the key member values represented by this EntityKey 
        
        
            
            Returns a string representation of this EntityKey, for use in debugging.
            Note that the returned string contains potentially sensitive information
            (i.e., key values), and thus shouldn't be publicly exposed.
            
        
        
            
            Returns the appropriate value for the given key name.
            
        
        
            
            Validates the record parameter passed to the EntityKey constructor,
            and converts the data into the form required by EntityKey.  For singleton keys,
            this is a single object.  For composite keys, this is an object array.
            
             the entity set metadata object which this key refers to 
             the parameter to validate 
        
        
            
            Verify that the types of the objects passed in to be used as keys actually match the types from the model.
            This error is also caught when the entity is materialized and when the key value is set, at which time it
            also throws ThrowSetInvalidValue().
            SQLBUDT 513838. This error is possible and should be caught at run time, not in an assertion.
            
             MetadataWorkspace used to resolve and validate types of enum keys. 
             The EntitySet to validate against 
        
        
            
            Verify that the types of the objects passed in to be used as keys actually match the types from the model.
            This error is also caught when the entity is materialized and when the key value is set, at which time it
            also throws ThrowSetInvalidValue().
            SQLBUDT 513838. This error is possible and should be caught at run time, not in an assertion.
            
             MetadataWorkspace used to resolve and validate types of enum keys. 
             The EntitySet to validate against 
             Wether to throw ArgumentException or InvalidOperationException. 
             Name of the argument in case of ArgumentException. 
        
        
            
            Validates whether type of the key matches the type of the key value.
            
             MetadataWorkspace used to resolve and validate types of enum keys. 
             Edm key member. 
             The value of the key. 
             Whether to throw ArgumentException or InvalidOperation exception if validation fails. 
             Name of the argument to be used for ArgumentExceptions. 
        
        
            
            Asserts that the "state" of the EntityKey is correct, by validating assumptions
            based on whether the key is a singleton, composite, or temporary.
            
             
             whether we expect this EntityKey to be marked temporary 
        
        
            
            Helper method that is used to deserialize an .
            
            Describes the source and destination of a given serialized stream, and provides an additional caller-defined context.
        
        
            
            Helper method that is used to deserialize an .
            
            Describes the source and destination of a given serialized stream and provides an additional caller-defined context.
        
        
            
            Dev Note: this must be called from within a _lock block on _nameLookup
            
        
        
            
            Gets a singleton EntityKey by which a read-only entity is identified.
            
        
        
            
            Gets a singleton EntityKey identifying an entity resulted from a failed TREAT.
            
        
        
            Gets or sets the name of the entity set.
            
            A  value that is the name of the entity set for the entity to which the
            
            belongs.
            
        
        
            Gets or sets the name of the entity container.
            
            A  value that is the name of the entity container for the entity to which the
            
            belongs.
            
        
        
            
            Gets or sets the key values associated with this .
            
            
            A  of key values for this
            
            .
            
        
        
            
            Gets a value that indicates whether the  is temporary.
            
            
            true if the  is temporary; otherwise, false.
            
        
        
            
            Information about a key that is part of an EntityKey.
            A key member contains the key name and value.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class with the specified entity key pair.
            
            The name of the key.
            The key value.
        
        
            Returns a string representation of the entity key.
            A string representation of the entity key.
        
        
            
            Ensures that the instance can be written to (value must be null)
            
        
        
            Gets or sets the name of the entity key.
            The key name.
        
        
            Gets or sets the value of the entity key.
            The key value.
        
        
            
            Valid actions in an On<Operation> element
            
        
        
            
            no action
            
        
        
            
            Cascade to other ends
            
        
        
            
            Summary description for SchemaElement.
            
        
        
            
            Validates this element and its children
            
        
        
            
            Set the current line number and position for an XmlReader
            
             the reader whose position is desired 
        
        
            
            Get the current line number and position for an XmlReader
            
             the reader whose position is desired 
             the line number 
             the line position 
        
        
            
            Use to handle an attribute with an int data type
            
             the reader positioned at the int attribute 
             The int field to be given the value found 
             true if an int value was successfuly extracted from the attribute, false otherwise. 
        
        
            
            Use to handle an attribute with an int data type
            
             the reader positioned at the int attribute 
             The int field to be given the value found 
             true if an int value was successfuly extracted from the attribute, false otherwise. 
        
        
            
            Use this to jump through an element that doesn't need any processing
            
             xml reader currently positioned at an element 
        
        
            
            Call handler for the current attribute
            
             XmlReader positioned at the attribute 
        
        
            
            This overload assumes the default namespace
            
        
        
            
            Call handler for the current element
            
             XmlReader positioned at the element 
             true if element content should be skipped 
        
        
            
            Handle text data.
            
             XmlReader positioned at Text, CData, or SignificantWhitespace 
        
        
            
            Handler for the Minimum attribute
            
             xml reader currently positioned at Minimum attribute 
        
        
            
            Handler for the Maximum attribute
            
             xml reader currently positioned at Maximum attribute 
        
        
            
            Handler for the Default attribute
            
             xml reader currently positioned at Default attribute 
        
        
            
            Handler for the Constant attribute
            
             xml reader currently positioned at Constant attribute 
        
        
            
            Handler for the Default attribute
            
             xml reader currently positioned at Default attribute 
        
        
            
            Handler for the Default attribute
            
             xml reader currently positioned at Default attribute 
        
        
            
            Kind of collection (applied to Properties)
            
        
        
            
            Property is not a Collection
            
        
        
            
            Collection has Bag semantics( unordered and duplicates ok)
            
        
        
            
            Collection has List semantics
            (Order is deterministic and duplicates ok)
            
        
        
            
            class representing the Schema element in the schema
            
        
        
            
            The concurrency mode for properties.
            
        
        
            
            Default concurrency mode: the property is never validated
            at write time
            
        
        
            
            Fixed concurrency mode: the property is always validated at
            write time
            
        
        
            
            Summary description for Documentation.
            
        
        
            
            Returns the wrapped metaDocumentation instance
            
        
        
            
            Represents an EntityContainer element.
            
        
        
            
            Summary description for SchemaType.
            
        
        
            
            Gets the Namespace that this type is in.
            
        
        
            
            Constructs an EntityContainer
            
             Reference to the schema element. 
        
        
            
            Resolves the names to element references.
            
        
        
            
            Do all validation for this element here, and delegate to all sub elements
            
        
        
            
            Find the EntityContainerEntitySet in the same EntityContainer with the name from the extent
            attribute
            
             the name of the EntityContainerProperty to find 
             The EntityContainerProperty it found or null if it fails to find it 
        
        
            
            Validates that if there are more than one relationship set referring to the same type, each role of the relationship type
            never refers to the same entity set
            
        
        
            
            Adds a child EntitySet's tableKey (Schema/Table combination) to the validation collection
            This is used to validate that no child EntitySets share a Schema.Table combination
            
        
        
            
            Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same
            and the entity set refered by the ends are same and they have the same role name
            
        
        
            
            Return the fully qualified name for entity container. Since EntityContainer no longer lives in a schema,
            the FQName should be same as that of the Name
            
        
        
            
            Represents an AssociationSet element.
            
        
        
            
            Represents an RelationshipSet element.
            
        
        
            
            Constructs an EntityContainerRelationshipSet
            
             Reference to the schema element. 
        
        
            
            The method that is called when an Association attribute is encountered.
            
             An XmlReader positioned at the Association attribute. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            Do all validation for this element here, and delegate to all sub elements
            
        
        
            
            Adds any ends that need to be infered
            
        
        
            
            For the given relationship end, find the EntityContainer Property that will work for the extent
            
             The relationship end of the RelationshipSet that needs and extent 
             Null is none could be found, or the EntityContainerProperty that is the valid extent 
        
        
            
            The parent element as an EntityContainer
            
        
        
            
            Constructs an EntityContainerAssociationSet
            
             Reference to the schema element. 
        
        
            
            The method that is called when an End element is encountered.
            
             The XmlReader positioned at the EndElement. 
        
        
            
            Create and add a EntityContainerEnd from the IRelationshipEnd provided
            
             The relationship end of the end to add. 
             The entitySet to associate with the relationship end. 
        
        
            
            The ends defined and infered for this AssociationSet
            
        
        
            
            Represents an  element.
            
        
        
            
            Represents an RelationshipSetEnd element.
            
        
        
            
            Constructs an EntityContainerRelationshipSetEnd
            
             Reference to the schema element. 
        
        
            
            This is the method that is called when an EntitySet Attribute is encountered.
            
             The XmlRead positned at the extent attribute. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            Do all validation for this element here, and delegate to all sub elements
            
        
        
            
            the End in the parent’s Association that this element refers to
            
        
        
            
            The parent element as an EntityContainerProperty
            
        
        
            
            Constructs an EntityContainerAssociationSetEnd
            
             Reference to the schema element. 
        
        
            
            This is the method that is called when an Role Attribute is encountered.
            
             The XmlRead positned at the extent attribute. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            If the role name is missing but an entity set is given, figure out what the
            relationship end should be
            
             The given EntitySet 
             The appropriate relationship end 
        
        
            
            Represents an EntitySet element.
            
        
        
            
            Constructs an EntityContainerEntitySet
            
             Reference to the schema element. 
        
        
            
            The method that is called when a Type attribute is encountered.
            
             An XmlReader positioned at the Type attribute. 
        
        
            
            The method that is called when a DbSchema attribute is encountered.
            
             An XmlReader positioned at the Type attribute. 
        
        
            
            The method that is called when a DbTable attribute is encountered.
            
             An XmlReader positioned at the Type attribute. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            Represents an DefiningQuery element.
            
        
        
            
            Constructs an EntityContainerEntitySet
            
             Reference to the schema element. 
        
        
            
            Represents an Key element in an EntityType element.
            
        
        
            
            Constructs an EntityContainerAssociationSetEnd
            
             Reference to the schema element. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            Validate all the key properties
            
        
        
            
            Summary description for ErrorCode.
            
        
        
            
            Namespace attribute must be specified.
            
        
        
            
            Precision out of range
            
        
        
            
            Scale out of range
            
        
        
            
            One of the required facets is missing
            
        
        
            
            The facet isn't allow by the property type.
            
        
        
            
            This facet value is constant and is specified in the schema
            
        
        
            
            Multiplicity value was malformed
            
        
        
            
            The value for the Action attribute is invalid or not allowed in the current context
            
        
        
            
            An error occured processing the On<Operation>  elements
            
        
        
            
            Ends were given for the Property element of a EntityContainer that is not a RelationshipSet
            
        
        
            
            The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer
            
        
        
            
            An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities.
            
        
        
            
            An end element was not given, and cannot be infered because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet.
            
        
        
            
            Not a valid parameter direction for the parameter in a function
            
        
        
            
            Unable to infer an optional schema part, to resolve this, be more explicit
            
        
        
            
            Invalid facet attribute(s) specified in provider manifest
            
        
        
            
            Invalid role value in the relationship constraint
            
        
        
            
            Invalid Property in relationship constraint
            
        
        
            
            Type mismatch between ToProperty and FromProperty in the relationship constraint
            
        
        
            
            Invalid multiplicty in FromRole in the relationship constraint
            
        
        
            
            The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical
            
        
        
            
            No Properties defined in either FromProperty or ToProperty in the relationship constraint
            
        
        
            
            Missing constraint in relationship type in ssdl
            
        
        
            
            Same role referred in the ToRole and FromRole of a referential constraint
            
        
        
            
            Invalid value for attribute ParameterTypeSemantics
            
        
        
            
            Invalid type used for a Relationship End Type
            
        
        
            
            Invalid PrimitiveTypeKind
            
        
        
            
            Invalid TypeConversion DestinationType
            
        
        
            
            Expected a integer value between 0 - 255
            
        
        
            
            Invalid Type specified in function
            
        
        
            
            Precision must not be greater than 28
            
        
        
            
            Properties that are part of entity key must be of scalar type
            
        
        
            
            Binary and spatial type properties which are part of entity key are currently not supported
            
        
        
            
            The primitive type kind does not have a prefered mapping
            
        
        
            
            More than one PreferredMapping for a PrimitiveTypeKind
            
        
        
            
            End with * multiplicity cannot have operations specified
            
        
        
            
            EntitySet type has no keys
            
        
        
            
            InvalidNumberOfParametersForAggregateFunction
            
        
        
            
            InvalidParameterTypeForAggregateFunction
            
        
        
            
            Composable functions and function imports must declare a return type.
            
        
        
            
            Non-composable functions must not declare a return type.
            
        
        
            
            Non-composable functions do not permit the aggregate, niladic, or built-in attributes.
            
        
        
            
            Composable functions can not include command text attribute.
            
        
        
            
            Functions should not declare both a store name and command text (only one or the other
            can be used).
            
        
        
            
            SystemNamespace
            
        
        
            
            Empty DefiningQuery text
            
        
        
            
            Schema, Table and DefiningQuery are all specified, and are mutualy exlusive
            
        
        
            
            Conurency can't change for any sub types of an EntitySet type.
            
        
        
            
            Function import return type must be either empty, a collection of entities, or a singleton scalar.
            
        
        
            
            Function import specifies a non-existent entity set.
            
        
        
            
            Function import specifies entity type return but no entity set.
            
        
        
            
            Function import specifies entity type that does not derive from element type of entity set.
            
        
        
            
            Function import specifies a binding to an entity set but does not return entities.
            
        
        
            
            InternalError
            
        
        
            
            Same Entity Set Taking part in the same role of the relationship set in two different relationship sets
            
        
        
            
            Entity key refers to the same property twice
            
        
        
            
            Function declares a ReturnType attribute and element
            
        
        
            
            Nullable Complex Type not supported in Edm V1
            
        
        
            
            Only Complex Collections supported in Edm V1.1
            
        
        
            
            No Key defined on Entity Type
            
        
        
            
            Invalid namespace specified in using element
            
        
        
            
            Need not specify system namespace in using
            
        
        
            
            Cannot use a reserved/system namespace as alias
            
        
        
            
            Invalid qualification specified for type
            
        
        
            
            Invalid Entity Container Name in extends attribute
            
        
        
            
            Must specify namespace or alias of the schema in which this type is defined
            
        
        
            
            Entity Container cannot extend itself
            
        
        
            
            Failed to retrieve provider manifest
            
        
        
            
            Mismatched Provider Manifest token values in SSDL artifacts
            
        
        
            
            Missing Provider Manifest token value in SSDL artifact(s)
            
        
        
            
            Empty CommandText element
            
        
        
            
            Inconsistent Provider values in SSDL artifacts
            
        
        
            
            Inconsistent Provider Manifest token values in SSDL artifacts
            
        
        
            
            Duplicated Function overloads
            
        
        
            
            InvalidProvider
            
        
        
            
            FunctionWithNonEdmTypeNotSupported
            
        
        
            
            ComplexTypeAsReturnTypeAndDefinedEntitySet
            
        
        
            
            ComplexTypeAsReturnTypeAndDefinedEntitySet
            
        
        
            
            A function import can be either composable or side-effecting, but not both.
            
        
        
            
            A function import can specify an entity set or an entity set path, but not both.
            
        
        
            
            In model functions facet attribute is allowed only on ScalarTypes
            
        
        
            
            Captures several conditions where facets are placed on element where it should not exist.
            
        
        
            
            Return type has not been declared
            
        
        
            
            Collection and reference type parameters are not allowed in function imports.
            
        
        
            
            The structural annotation cannot use codegen namespaces
            
        
        
            
            Function and type cannot have the same fully qualified name
            
        
        
            
            Cannot load different version of schema in the same ItemCollection
            
        
        
            
            Expected bool value
            
        
        
            
            End without Multiplicity specified
            
        
        
            
            In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types.
            
        
        
            
            Only nullable parameters are supported in function imports.
            
        
        
            
            Defining expression and entity set can not be specified at the same time.
            
        
        
            
            Function specifies return type that does not derive from element type of entity set.
            
        
        
            
            The specified type cannot be used as the underlying type of Enum type.
            
        
        
            
            Duplicate enumeration member.
            
        
        
            
            The calculated value for an enum member is ouf of Int64 range.
            
        
        
            
            The enumeration value for an enum member is out of its underlying type range.
            
        
        
            
            The Srid value is out of range.
            
        
        
            
            A CSDL spatial type in a file without the UseSpatialUnionType annotation
            
        
        
            
            Summary description for FilteredSchemaTypes.
            
        
        
            
            Summary description for ISchemaElementLookUpTable.
            
        
        
            
            Look up a name case insensitively
            
             the key to look up 
             the element or null 
        
        
            
            class representing the Schema element in the schema
            
        
        
            
            ctor for a schema function
            
        
        
            
            Perform local validation on function definition.
            
        
        
            
            The method that is called when a DbSchema attribute is encountered.
            
             An XmlReader positioned at the Type attribute. 
        
        
            
            Handler for the Version attribute
            
             xml reader currently positioned at Version attribute 
        
        
            
            Handler for the Namespace attribute
            
             xml reader currently positioned at Namespace attribute 
        
        
            
            Handler for the Alias attribute
            
             xml reader currently positioned at Alias attribute 
        
        
            
            Handler for the NiladicFunctionAttribute attribute
            
             xml reader currently positioned at Namespace attribute 
        
        
            
            Handler for the IsComposableAttribute attribute
            
             xml reader currently positioned at Namespace attribute 
        
        
            
            Handler for the Parameter Element
            
             xml reader currently positioned at Parameter Element 
        
        
            
            Handler for the ReturnType element
            
             xml reader currently positioned at ReturnType element 
        
        
            
            Handles ParameterTypeSemantics attribute
            
        
        
            
            Represents an CommandText element.
            
        
        
            
            Constructs an FunctionCommandText
            
             Reference to the schema element. 
        
        
            
            validate the following negative scenarios:
            ReturnType="Collection(EntityTypeA)"
            ReturnType="Collection(EntityTypeA)" EntitySet="ESet.EType is not oftype EntityTypeA"
            EntitySet="A"
            ReturnType="Collection(ComplexTypeA)" EntitySet="something"
            ReturnType="Collection(ComplexTypeA)", but the ComplexTypeA has a nested complexType property, this scenario will be handle in the runtime
            
        
        
            
            Handler for the Default attribute
            
             xml reader currently positioned at Default attribute 
        
        
            
            Abstracts the properties of a relationship element
            
        
        
            
            Finds an end given the roleName
            
             The role name of the end you want to find 
             The relationship end reference to set if the end is found 
             True if the end was found, and the passed in reference was set, False otherwise. 
        
        
            
            Name of the Relationship
            
        
        
            
            The list of ends defined in the Relationship.
            
        
        
            
            Returns the list of constraints on this relation
            
        
        
            
            Is this an Association, or ...
            
        
        
            
            Is this a foreign key (FK) relationship?
            
        
        
            
            Abstracts the properties of an End element in a relationship
            
        
        
            
            Name of the End
            
        
        
            
            Type of the End
            
        
        
            
            Multiplicity of the End
            
        
        
            
            The On<Operation>s defined for the End
            
        
        
            
            Summary description for Item.
            
        
        
            
            Summary description for StructuredType.
            
        
        
            
            Find a property by name in the type hierarchy
            
             simple property name 
             the StructuredProperty object if name exists, null otherwise 
        
        
            
            Determines whether this type is of the same type as baseType,
            or is derived from baseType.
            
             true if this type is of the baseType, false otherwise 
        
        
            
            Add a member to the type
            
             the member being added 
        
        
            
            See if a name is a member in a type or any of its base types
            
             name to look for 
             if defined, the type that defines it 
             if defined, the member that defines it 
             how name was defined 
        
        
            
            Determine if a cycle exists in the type hierarchy: use two pointers to
            walk the chain, if one catches up with the other, we have a cycle.
            
             true if a cycle exists in the type hierarchy, false otherwise 
        
        
            
            Represents PropertyRef Element for Entity keys and referential constraints
            
        
        
            
            construct a KeyProperty object
            
        
        
            
            Since this method can be used in different context, this method does not add any errors
            Please make sure that the caller of this methods handles the error case and add errors
            appropriately
            
        
        
            
            property chain from KeyedType to Leaf property
            
        
        
            
            class representing the Schema element in the schema
            
        
        
            
            ctor for a schema function
            
        
        
            
            Summary description for Association.
            
        
        
            
            Creates a Property object
            
             The parent element 
        
        
            
            Gets the Type of the property
            
        
        
            
            Gets the Type of the property
            
        
        
            
            Represents an OnDelete, OnCopy, OnSecure, OnLock or OnSerialize element
            
        
        
            
            Handle the Action attribute
            
             reader positioned at Action attribute 
        
        
            
            The operation
            
        
        
            
            The action
            
        
        
            
            the parent element.
            
        
        
            
            The possible operations for an On<Operation> element
            
        
        
            
            the delete operation
            
        
        
            
            Summary description for StructuredProperty.
            
        
        
            
            The virtual schema for primitive data types
            
        
        
            
            class representing the Schema element in the schema
            
        
        
            
            Populate the schema object from a schema
            
             TextReader containing the schema xml definition 
             Uri containing path to a schema file (may be null) 
             list of errors 
        
        
            
            Populate the schema object from a schema
            
             TextReader containing the schema xml definition 
             Uri containing path to a schema file (may be null) 
             list of errors 
        
        
            
            Called by the validating reader when the schema is xsd invalid
            
             the validating reader 
             information about the validation error 
        
        
            
            Vaidate the schema.
            
        
        
            
            Called when all attributes for the schema element have been handled
            
        
        
            
            Look up a fully qualified type name reference.
            
             element containing the reference 
             the fully qualified type name 
             the referenced schema type 
             false if there was an error 
        
        
            
            Handler for the Namespace attribute
            
             xml reader currently positioned at Namespace attribute 
        
        
            
            Handler for the Alias attribute
            
             xml reader currently positioned at Alias attribute 
        
        
            
            Handler for the Provider attribute
            
             xml reader currently positioned at Provider attribute 
        
        
            
            Handler for the ProviderManifestToken attribute
            
             xml reader currently positioned at ProviderManifestToken attribute 
        
        
            
            Handler for the using element
            
        
        
            
            Handler for the EnumType element.
            
             Source xml reader currently positioned on the EnumType element. 
        
        
            
            Handler for the top level element
            
             xml reader currently positioned at top level element 
        
        
            
            Handler for the EntityType element
            
             xml reader currently positioned at EntityType element 
        
        
            
            Handler for the TypeInformation element
            
             xml reader currently positioned at EntityType element 
        
        
            
            Handler for the Function element
            
             xml reader currently positioned at EntityType element 
        
        
            
            Handler for the Association element
            
             xml reader currently positioned at Association element 
        
        
            
            Handler for the InlineType element
            
             xml reader currently positioned at InlineType element 
        
        
            
            Handler for the EntityContainer element
            
             xml reader currently positioned at EntityContainer element 
        
        
            
            reset the error collection
            
             old error list 
        
        
            
            The namespaceUri of the winfs xml namespace
            
        
        
            
            Version of the EDM that this schema represents.
            
        
        
            
            Alias for the schema (null if none)
            
        
        
            
            Namespace of the schema
            
        
        
            
            Uri containing the file that defines the schema
            
        
        
            
            List of all types defined in the schema
            
        
        
            
            Fully qualified name of the schema (same as the namespace name)
            
        
        
            
            List containing the current schema and all referenced schemas. Used for alias and namespace lookup.
            
        
        
            
            The schema data model
            
        
        
            
            The schema data model
            
        
        
            
            Returns the alias that can be used for type in this
            Namespace instead of the entire namespace name
            
        
        
            
            Returns the TypeAuthority that is driving this schema
            
        
        
            
            Summary description for UsingElement.
            
        
        
            
            Represents an referential constraint on a relationship
            
        
        
            
            construct a Referential constraint
            
        
        
            
            Validate this referential constraint
            
        
        
            
            Resolves the given property names to the property in the item
            Also checks whether the properties form the key for the given type and whether all the properties are nullable or not
            
        
        
            
            The parent element as an IRelationship
            
        
        
            
            Represents an role element in referential constraint element.
            
        
        
            
            Constructs an EntityContainerAssociationSetEnd
            
             Reference to the schema element. 
        
        
            
            Used during the resolve phase to resolve the type name to the object that represents that type
            
        
        
            
            Represents an Association element
            
        
        
            
            Construct a Relationship object
            
             the parent 
             the kind of relationship 
        
        
            
            do whole element validation
            
        
        
            
            do whole element resolution
            
        
        
            
            handle the End child element
            
             XmlReader positioned at the end element 
        
        
            
            handle the constraint element
            
             XmlReader positioned at the constraint element 
        
        
            
            List of Ends defined for this Association
            
        
        
            
            Returns the list of constraints on this relation
            
        
        
            
            Is this an Association
            
        
        
            
            Is this a foreign key (aka foreign key) relationship?
            
        
        
            
            Represents an End element in a relationship
            
        
        
            
            construct a Relationship End
            
        
        
            
            do whole element resolution
            
        
        
            
            Do simple validation across attributes
            
        
        
            
            Handle the Type attribute
            
             reader positioned at Type attribute 
        
        
            
            Handle the Multiplicity attribute
            
             reader positioned at Type attribute 
        
        
            
            Handle an OnDelete element
            
             reader positioned at the element 
        
        
            
            Handle an On<Operation> element
            
             reader positioned at the element 
             the kind of operation being handled 
        
        
            
            Type of the End
            
        
        
            
            Multiplicity of the End
            
        
        
            
            The On<Operation>s defined for the End
            
        
        
            
            The parent element as an IRelationship
            
        
        
            
            A collection of RelationshipEnds
            
        
        
            
            Add a relationship end
            
             the end to add 
        
        
            
            See if an end can be added to the collection
            
             the end to add 
             true if the end is valid, false otherwise 
        
        
            
            Remove a relationship end
            
             the end to remove 
             true if item was in list 
        
        
            
            See if a relationship end is in the collection
            
             the name of the end 
             true if the end name is in the collection 
        
        
            
            See if a relationship end is in the collection
            
             the name of the end 
             true if the end is in the collection 
        
        
            
            get a typed enumerator for the collection
            
             the enumerator 
        
        
            
            get an un-typed enumerator for the collection
            
             the enumerator 
        
        
            
            remove all elements from the collection
            
        
        
            
            Not supported
            
             the end 
             nothing 
        
        
            
            Not supported
            
             the index 
             the end 
        
        
            
            Not supported
            
             the index 
        
        
            
            copy all elements to an array
            
             array to copy to 
             The zero-based index in array at which copying begins. 
        
        
            
            How many RelationshipEnds are in the collection
            
        
        
            
            The data for the collection
            
        
        
            
            the definition order collection
            
        
        
            
            can the collection be modified
            
        
        
            
            enumerator for the RelationshipEnd collection
            the ends as traversed in the order in which they were added
            
        
        
            
            construct the enumerator
            
             the real data 
             the keys to the real data in inserted order 
        
        
            
            reset the enumerator
            
        
        
            
            move to the next element in the collection
            
             true if there is a next, false if not 
        
        
            
            dispose of the enumerator
            
        
        
            
            get current relationship end from the enumerator
            
        
        
            
            get current relationship end from the enumerator
            
        
        
            
            Summary description for ReturnValue.
            
        
        
            
            True is property is scalar, otherwise false.
            During validation (after all types have been resolved).
            
        
        
            
            This is an adapter to make PrimitiveTypeKindData fit in the Schema Object Model tree
            
        
        
            
            Construct an internal (not from schema) CDM scalar type
            
             the owning schema 
             the naem of the type 
             the PrimitiveTypeKind of the type 
        
        
            
            try to parse a string
            
             the string to parse 
             the value of the string 
             true if the value is a valid value, false otherwise 
        
        
            
            Parses the default value for Edm Type Time based on the DateTime format "HH:mm:ss.fffffffz".
            The value is first converted to DateTime value and then converted to TimeSpan.
            
        
        
            
            The type kind of this type.
            
        
        
            
            Returns the PrimitiveType of the scalar type.
            
        
        
            
            Summary description for NestedType.
            
        
        
            
            Which data model to target
            
        
        
            
            Target the CDM data model
            
        
        
            
            Target the data providers - SQL, Oracle, etc
            
        
        
            
            Target the data providers - SQL, Oracle, etc
            
        
        
            
            Summary description for SchemaElementLookUpTable.
            
        
        
            
            Add the given type to the schema look up table. If there is an error, it
            adds the error and returns false. otherwise, it adds the type to the lookuptable
            and returns true
            
        
        
            
            Summary description for SchemaElementLookUpTableEnumerator.
            
        
        
            
            Represents enum Member element from the CSDL.
            
        
        
            
            Value for this member.
            
        
        
            
            Initializes a new instance of the  class.
            
             Parent element. 
        
        
            
            Generic handler for the Member element attributes
            
             Xml reader positioned on an attribute. 
            true
            if the attribute is a known attribute and was handled. Otherwise
            false
        
        
            
            Handler for the Member Value attribute.
            
             XmlReader positioned on the Member Value attribute. 
        
        
            
            Gets the value of this enum member. Possibly null if not specified in the CSDL.
            
        
        
            
            Represents EnumType element from CSDL.
            
        
        
            
            Indicates whether the enum type is defined as flags (i.e. can be treated as a bit field)
            
        
        
            
            Underlying type of this enum type as read from the schema.
            
        
        
            
            Resolved underlying type of this enum type.
            
        
        
            
            Members of this EnumType.
            
        
        
            
            Initializes a new instance of the  class.
            
             Parent element. 
        
        
            
            Generic handler for the EnumType element child elements.
            
             Xml reader positioned on a child element. 
            
            true if the child element is a known element and was handled. Otherwise false
            
        
        
            
            Generic handler for the EnumType element attributes
            
             Xml reader positioned on an attribute. 
            true
            if the attribute is a known attribute and was handled. Otherwise
            false
        
        
            
            Handler for the Member element.
            
             XmlReader positioned on the Member element. 
        
        
            
            Resolves the underlying type.
            
        
        
            
            Validates the specified enumeration type as a whole.
            
        
        
            
            Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field)
            
        
        
            
            Returns underlying type for this enum.
            
        
        
            
            Gets members for this EnumType.
            
        
        
            
            Reponsible for keep map from alias to namespace for a given schema.
            
        
        
            
            Construct the LookUp table
            
        
        
            
            Add a UsingElement to the table
            
             the UsingElement to add 
        
        
            
            Get the Schema(s) a namespace or alias might refer to
            returned schemas may be null is called before or during Schema Resolution
            
        
        
            
            Resolves all the namespace specified in the using elements in this schema
            
        
        
            
            Check if the given name is a reserved keyword. if yes, add appropriate error to the refschema
            
        
        
            
            Kind of Name
            
        
        
            
            It's an Alias
            
        
        
            
            It's a namespace
            
        
        
            
            Class responsible for parsing,validating a collection of schema
            
        
        
            
            Add the namespace of the given schema to the namespace lookup table
            
        
        
            
            Resolve the type - if the type is not found, return appropriate error
            
        
        
            
            Returns true if this is a valid namespace name or else returns false
            
        
        
            
            Checks if the xml reader has base uri. If it doesn't have, it adds error, other
            returns the location from the base uri
            
        
        
            
            Add the given list of newErrors to the error collection. If there is a error in the new errors,
            it sets the errorEncountered to true. Returns true if the number of errors encountered is more
            than max errors
            
        
        
            
            Handler for the Default attribute
            
             xml reader currently positioned at Default attribute 
        
        
            
            The pattern for Server Generated Properties.
            
        
        
            
            Not a Server Generated Property. This is the default.
            
        
        
            
            A value is generated on INSERT, and remains unchanged on update.
            
        
        
            
            A value is generated on both INSERT and UPDATE.
            
        
        
            
            Summary description for StructuredProperty.
            
        
        
            
            Resolve the type string to a SchemaType object
            
        
        
            
            Handles the Multiplicity attribute on the property.
            
        
        
            
            Returns a TypeUsage that represent this property.
            
        
        
            
            The nullablity of this property.
            
        
        
            
            Specifies the type of the Collection.
            By Default this is Single( i.e. not a Collection.
            And in case of Collections, will be either Bag or List
            
        
        
            
            Summary description for Documentation.
            
        
        
            
            Responsible for parsing Type ProviderManifest
            xml elements
            
        
        
            
            Handler for the Precision element
            
             xml reader currently positioned at Precision element 
        
        
            
            Handler for the Scale element
            
             xml reader currently positioned at Scale element 
        
        
            
            Handler for the MaxLength element
            
             xml reader currently positioned at MaxLength element 
        
        
            
            Handler for the Unicode element
            
             xml reader currently positioned at Unicode element 
        
        
            
            Handler for the FixedLength element
            
             xml reader currently positioned at FixedLength element 
        
        
            
            Handler for the SRID element
            
             xml reader currently positioned at SRID element 
        
        
            
            Handler for the IsStrict element
            
             xml reader currently positioned at SRID element 
        
        
            
            Handler for the PrimitiveTypeKind attribute
            
             xml reader currently positioned at Version attribute 
        
        
            
            Return value from StructuredProperty RemoveTypeModifier
            
        
        
            
            Type string has no modifier
            
        
        
            
            Type string was of form Array(...)
            
        
        
            
            Type string was of form Set(...)
            
        
        
            
            Type string was of form Table(...)
            
        
        
            
            Supports the construction of a type usage instance for a Scalar/Primitive
            Type.
            
        
        
            
            Element generating the TypeUsage (e.g. StructuredProperty)
            
        
        
            
            effects: adds errors to _element if there are any; creates a TypeUsage instance using the
            facet values aggregated by this builder and the given scalar type
            
             Scalar type for the type usage 
        
        
            
            Handles concurrency attributes.
            
        
        
            
            Validates the Precision value for DateTime family of types since the Min and Max allowed values for Precision for these types are same.
            
        
        
            
            Gets the TypeUsage generated by this builder.
            
        
        
            
            Gets the nullability of the type usage.
            
        
        
            
            Gets default.
            
        
        
            
            Gets parsed default value.
            
        
        
            
            Indicates whether this usage has any user defined facets.
            
        
        
            
            Summary description for Utils.
            
        
        
            
            Helper methods used for Schema Object Model (validation) validation.
            
        
        
            
            Validates whether facets are declared correctly.
            
             Schema element being validated. Must not be null. 
             Resolved type (from declaration on the element). Possibly null. 
             TypeUsageBuilder for the current element. Must not be null. 
        
        
            
            Validated whether a type is declared correctly.
            
             Schema element being validated. Must not be null. 
             Resolved type (from declaration on the element). Possibly null. 
             Child schema element. Possibly null. 
            
            For some elements (e.g. ReturnType) we allow the type to be defined inline in an attribute on the element itself or
            by using nested elements. These definitions are mutually exclusive.
            
        
        
            
            Validate that reference type is an entity type.
            
             Schema element being validated. Must not be null. 
             Resolved type (from declaration on the element). Possibly null. 
        
        
            
            Builds a dictionary from XmlNamespace to XmlSchemaResource of both C and S space schemas
            
             The built XmlNamespace to XmlSchemaResource dictionary. 
        
        
            
            Adds Store schema resource entries to the given XmlNamespace to XmlSchemaResoure map
            
             The XmlNamespace to XmlSchemaResource map to add entries to. 
        
        
            
            Adds Mapping schema resource entries to the given XmlNamespace to XmlSchemaResoure map
            
             The XmlNamespace to XmlSchemaResource map to add entries to. 
        
        
            
            Adds Edm schema resource entries to the given XmlNamespace to XmlSchemaResoure map,
            when calling from SomSchemaSetHelper.ComputeSchemaSet(), all the imported xsd will be included
            
             The XmlNamespace to XmlSchemaResource map to add entries to. 
        
        
            
            Represents an eSQL Query compilation exception;
            The class of exceptional conditions that may cause this exception to be raised are mainly:
            1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar;
            2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information
            not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc.
            For more information, see eSQL Language Spec.
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of the  class that uses a specified error message and a reference to the inner exception that is the cause of this exception.
            
            The error message that explains the reason for the exception.
            The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance EntityException with an ErrorContext instance and a given error message.
            
        
        
            
            Initializes a new instance EntityException with contextual information to allow detailed error feedback.
            
        
        
            
            core constructor
            
        
        
            
            Returns error context in the format [[errorContextInfo, ]line ddd, column ddd].
            Returns empty string if errorPosition is less than 0 and errorContextInfo is not specified.
            
        
        
            
            Returns error message in the format: "error such and such[, near errorContext]."
            
        
        
            Gets a description of the error.
            A string that describes the error.
        
        
            Gets the approximate context where the error occurred, if available.
            A string that describes the approximate context where the error occurred, if available.
        
        
            Gets the approximate line number where the error occurred.
            An integer that describes the line number where the error occurred.
        
        
            Gets the approximate column number where the error occurred.
            An integer that describes the column number where the error occurred.
        
        
            
            This is the interface to a particular entry in an IEntityStateManager.  It provides
            information about the state of the entity in question and the ability to modify that state
            as appropriate for an entity adapter to function in performing updates to a backing store.
            
        
        
            
            Interface allowing an IEntityAdapter to analyze state/change tracking information maintained
            by a state manager in order to perform updates on a backing store (and push back the results
            of those updates).
            
        
        
            
            Mapping exception class. Note that this class has state - so if you change even
            its internals, it can be a breaking change
            
        
        
            
            default constructor
            
        
        
            
            default constructor
            
             localized error message 
        
        
            
            constructor
            
             localized error message 
             inner exception 
        
        
            
            constructor
            
        
        
            
            Returns the inner exceptions stored in this
            
        
        
            
            Thrown to indicate that a command tree is invalid.
            
        
        
            
            Initializes a new instance of the  class  with a default message.
            
        
        
            
            Initializes a new instance of the  class with the specified message.
            
            The exception message.
        
        
            
            Initializes a new instance of the  class  with the specified message and inner exception.
            
            The exception message.
            
            The exception that is the cause of this .
            
        
        
            
            Constructs a new InvalidCommandTreeException from the specified serialization info and streaming context.
            
        
        
            
            Mapping exception class. Note that this class has state - so if you change even
            its internals, it can be a breaking change
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of  that uses a specified error message and a reference to the inner exception.
            
            The message that describes the error.
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            constructor for deserialization
            
        
        
            
            This class keeps recomputing the hash and adding it to the front of the
            builder when the length of the string gets too long
            
        
        
            
            this class collects several strings together, and allows you to (
            
        
        
            
            add string like "typename Instance#1"
            
        
        
            
            The class creates a default OCMapping between a TypeMetadata in O space
            and an TypeMetadata in Edm space. The loader expects that for each member in
            C space type there exists a member in O space type that has the same name. The member maps will be stored in
            C space member order.
            
        
        
            
            Class for representing a collection of mapping items in Edm space.
            
        
        
            
            The default constructor for ItemCollection
            
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
            Thrown if mapping space is not valid
        
        
            
            Constructor to create an instance of DefaultObjectMappingItemCollection.
            To start with we will create a Schema under which maps will be created.
            
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             Returns false if no match found. 
        
        
            
            The method creates a default mapping between two TypeMetadatas - one in
            C space and one in O space. The precondition for calling this method is that
            the type in Object space contains the members with the same name as those of defined in
            C space. It is not required the otherway.
            
        
        
            
            Convert CSpace TypeMetadata into OSpace TypeMetadata
            
             OSpace type metadata 
        
        
            
            Convert CSpace TypeMetadata into OSpace TypeMetadata
            
             OSpace type metadata 
        
        
            
            The method fills up the children of ObjectMapping. It goes through the
            members in CDM type and finds the member in Object space with the same name
            and creates a member map between them. These member maps are added
            as children of the object mapping.
            
        
        
            
            Tries and get the mapping ospace member for the given edmMember and the ospace type
            
        
        
            
            Validates the scalar property on the cspace side and ospace side and creates a new
            ObjectPropertyMapping, if everything maps property
            
        
        
            
            Load the entity type or complex type mapping
            
        
        
            
            Validates whether CSpace enum type and OSpace enum type match.
            
             CSpace enum type. 
             OSpace enum type. 
        
        
            
            Loads Association Type Mapping
            
        
        
            
            The method loads the EdmMember mapping for complex members.
            It goes through the CDM members of the Complex Cdm type and
            tries to find the corresponding members in Complex Clr type.
            
        
        
            
            Base class for the type created at design time to store the generated views.
            
        
        
            Returns the key/value pair at the specified index, which contains the view and its key.
            The key/value pair at  index , which contains the view and its key.
            The index of the view.
        
        
            
            Returns the cached dictionary of (ExtentName,EsqlView)
            
        
        
            
            Gets or sets the name of .
            
            The container name.
        
        
            
            Gets or sets  in storage schema.
            
            Container name.
        
        
            Hash value.
            Hash value.
        
        
            Hash value of views.
            Hash value.
        
        
            Gets or sets view count.
            View count.
        
        
            
            Attribute to mark the assemblies that contain the generated views type.
            
        
        
            
            Initializes a new instance of the  class.
            
            The view type.
        
        
            Gets the T:System.Type of the view.
            The T:System.Type of the view.
        
        
            
            Gets all (concrete) entity types implied by this type mapping.
            
        
        
            
            Represents a mapping from a model function import to a store composable or non-composable function.
            
        
        
            
            Gets model function (or source of the mapping)
            
        
        
            
            Gets store function (or target of the mapping)
            
        
        
            
            Null if default mapping is not allowed.
            
        
        
            
             for more info.
            
        
        
            
            A default mapping (property "Foo" maps by convention to column "Foo"), if allowed, has the lowest precedence.
            A mapping for a specific type (EntityType="Bar") takes precedence over a mapping for a hierarchy (EntityType="IsTypeOf(Bar)"))
            If there are two hierarchy mappings, the most specific mapping takes precedence.
            For instance, given the types Base, Derived1 : Base, and Derived2 : Derived1,
            w.r.t. Derived1 "IsTypeOf(Derived1)" takes precedence over "IsTypeOf(Base)" when you ask for the rename of Derived1
            
             
             Empty for default rename mapping. 
        
        
            
            Represents a mapping from a model function import to a store composable function.
            
        
        
            
            Command parameter refs created from m_edmFunction parameters.
            Used as arguments to target (s-space) function calls in the generated command tree.
            
        
        
            
            Result mapping as entity type hierarchy.
            
        
        
            
            Keys inside the result set of the target function. Inferred based on the mapping (using c-space entity type keys).
            
        
        
            
            ITree template. Requires function argument substitution during function view expansion.
            
        
        
            
            Handles copying of operators
            
        
        
            
            A visitor implementation that allows subtrees to be modified (in a bottom-up
            fashion)
            
        
        
            
            Simple implementation of the BasicOpVisitorOfT interface"/>
            
             type parameter 
        
        
            
            Simply iterates over all children, and manages any updates
            
             The current node 
        
        
            
            Simply iterates over all children, and manages any updates, but in reverse order
            
             The current node 
        
        
            
            Simple wrapper to invoke the appropriate action on a node
            
             the node to process 
        
        
            
            A default processor for any node. Visits the children and returns itself unmodified.
            
             the node to process 
             a potentially new node 
        
        
            
            No processing yet for this node - raises an exception
            
        
        
            
            Catch-all processor - raises an exception
            
        
        
            
            A default processor for all AncillaryOps.
            Allows new visitors to just override this to handle all AncillaryOps
            
             the AncillaryOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            VarDefOp
            
        
        
            
            VarDefListOp
            
        
        
            
            A default processor for all PhysicalOps.
            Allows new visitors to just override this to handle all PhysicalOps
            
             the PhysicalOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            PhysicalProjectOp
            
        
        
            
            A default processor for all NestOps.
            Allows new visitors to just override this to handle all NestOps
            
             the NestOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            SingleStreamNestOp
            
        
        
            
            MultiStreamNestOp
            
        
        
            
            A default processor for all RelOps.
            Allows new visitors to just override this to handle all RelOps
            
             the RelOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            Common handling for all ApplyOps
            
             the ApplyOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            CrossApply
            
        
        
            
            OuterApply
            
        
        
            
            A default processor for all JoinOps.
            Allows new visitors to just override this to handle all JoinOps.
            
             the JoinOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            CrossJoin
            
        
        
            
            FullOuterJoin
            
        
        
            
            LeftOuterJoin
            
        
        
            
            InnerJoin
            
        
        
            
            A default processor for all SetOps.
            Allows new visitors to just override this to handle all SetOps.
            
             the SetOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            Except
            
        
        
            
            Intersect
            
        
        
            
            UnionAll
            
        
        
            
            Distinct
            
        
        
            
            FilterOp
            
        
        
            
            GroupByBaseOp
            
        
        
            
            GroupByOp
            
        
        
            
            GroupByIntoOp
            
        
        
            
            ProjectOp
            
        
        
            
            Default handler for all TableOps
            
        
        
            
            ScanTableOp
            
        
        
            
            ScanViewOp
            
        
        
            
            Visitor pattern method for SingleRowOp
            
             The SingleRowOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for SingleRowTableOp
            
             The SingleRowTableOp being visited 
             The Node that references the Op 
        
        
            
            A default processor for all SortOps.
            Allows new visitors to just override this to handle ConstrainedSortOp/SortOp.
            
             the SetOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            SortOp
            
        
        
            
            ConstrainedSortOp
            
        
        
            
            UnnestOp
            
        
        
            
            A default processor for all ScalarOps.
            Allows new visitors to just override this to handle all ScalarOps
            
             the ScalarOp 
             the node to process 
             a potentially new node 
        
        
            
            Default handler for all constant Ops
            
        
        
            
            AggregateOp
            
        
        
            
            ArithmeticOp
            
        
        
            
            CaseOp
            
        
        
            
            CastOp
            
        
        
            
            SoftCastOp
            
        
        
            
            NestOp
            
        
        
            
            ComparisonOp
            
        
        
            
            ConditionalOp
            
        
        
            
            ConstantOp
            
        
        
            
            ConstantPredicateOp
            
        
        
            
            ElementOp
            
        
        
            
            ExistsOp
            
        
        
            
            FunctionOp
            
        
        
            
            GetEntityRefOp
            
        
        
            
            GetRefKeyOp
            
        
        
            
            InternalConstantOp
            
        
        
            
            IsOfOp
            
        
        
            
            LikeOp
            
        
        
            
            NewEntityOp
            
        
        
            
            NewInstanceOp
            
        
        
            
            DiscriminatedNewInstanceOp
            
        
        
            
            NewMultisetOp
            
        
        
            
            NewRecordOp
            
        
        
            
            NullOp
            
        
        
            
            NullSentinelOp
            
        
        
            
            PropertyOp
            
        
        
            
            RelPropertyOp
            
        
        
            
            RefOp
            
        
        
            
            TreatOp
            
        
        
            
            VarRefOp
            
        
        
            
            Simply iterates over all children, and manages any updates
            
             The current node 
        
        
            
            Simply iterates over all children, and manages any updates, but in reverse order
            
             The current node 
        
        
            
            A default processor for any node. Visits the children and returns itself unmodified.
            
             the node to process 
             a potentially new node 
        
        
            
            A default processor for all AncillaryOps.
            Allows new visitors to just override this to handle all AncillaryOps
            
             the AncillaryOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            A default processor for all PhysicalOps.
            Allows new visitors to just override this to handle all PhysicalOps
            
             the PhysicalOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            A default processor for all RelOps.
            Allows new visitors to just override this to handle all RelOps
            
             the RelOp 
             the node to process 
             a potentially modified subtree 
        
        
            
            A default processor for all ScalarOps.
            Allows new visitors to just override this to handle all ScalarOps
            
             the ScalarOp 
             the node to process 
             a potentially new node 
        
        
            
            Make a copy of the current node. Also return an ordered list of the new
            Vars corresponding to the vars in "varList"
            
             current command 
             the node to clone 
             list of Vars 
             list of "new" Vars 
             the cloned node 
        
        
            
            Constructor. Allows for cloning of nodes within the same command
            
             The command 
        
        
            
            Constructor. Allows for cloning of nodes across commands
            
             The Command to which Nodes to be cloned must belong 
             The Command to which cloned Nodes will belong 
        
        
            
            Get the "cloned" var for a given Var.
            If no cloned var exists, return the input Var itself
            
             The Var for which the cloned Var should be retrieved 
             The cloned Var that corresponds to the specified Var if this OpCopier is cloning across two different Commands; otherwise it is safe to return the specified Var itself 
        
        
            
            Set the "cloned" var for a given Var
            WARNING: If a mapping already exists, an exception is raised
            
             The original Var 
             The cloned Var 
        
        
            
            Maps columns of an existing table to those of the cloned table
            
             The original Table 
             The cloned Table 
        
        
            
            Produce the "mapped" Vars for each Var in the input sequence, while
            preserving the original order
            
             input var sequence 
             output mapped vars 
        
        
            
            Create a mapped varvec. A new varvec that "maps" all the Vars from
            the original Varvec
            
             the varvec to clone 
             a mapped varvec 
        
        
            
            Create a mapped copy of the input VarList - each var from the input varlist
            is represented by its mapped var (and in exactly the same order) in the output
            varlist
            
             varList to map 
             mapped varlist 
        
        
            
            Copies a sortkey
            
             The SortKey to clone 
             A new SortKey that is a clone of sortKey 
        
        
            
            Copies a list of Sortkeys
            
             The list of SortKeys 
             A new list containing clones of the specified SortKeys 
        
        
            
            Simple wrapper for all copy operations
            
             The Node to copy 
             A new Node that is a copy of the specified Node 
        
        
            
            Copies all the Child Nodes of the specified Node
            
             The Node for which the child Nodes should be copied 
             A new list containing copies of the specified Node's children 
        
        
            
            Creates a new Node with the specified Op as its Op and the result of visiting the specified Node's children as its children
            
             The Op that the new Node should reference 
             The Node for which the children should be visited and the resulting cloned Nodes used as the children of the new Node returned by this method 
             A new Node with the specified Op as its Op and the cloned child Nodes as its children 
        
        
            
            Default Visitor pattern method for unrecognized Ops
            
             The unrecognized Op 
             The Node that references the Op 
             This method always throws NotSupportedException 
            By design to indicate that the Op was not recognized and is therefore unsupported
        
        
            
            Copies a ConstantOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a NullOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ConstantPredicateOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies an InternalConstantOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a NullSentinelOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a FunctionOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a PropertyOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a RelPropertyOp
            
             the RelPropertyOp to copy 
             node tree corresponding to 'op' 
             a copy of the node tree 
        
        
            
            Copies a CaseOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ComparisonOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a like-op
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Clone an aggregateop
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a type constructor
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a NewEntityOp
            
             the NewEntityOp to copy 
             node tree corresponding to the NewEntityOp 
             a copy of the node tree 
        
        
            
            Copies a discriminated type constructor
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a multiset constructor
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a record constructor
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a RefOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a VarRefOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ConditionalOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies an ArithmeticOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a TreatOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a CastOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a SoftCastOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a DerefOp
            
             the derefOp to copy 
             the subtree 
             a copy of the subtree 
        
        
            
            Copies a NavigateOp
            
             the NavigateOp 
             the subtree 
             a copy of the subtree 
        
        
            
            Clone an IsOfOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Clone an ExistsOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Clone an ElementOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a GetRefKeyOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a GetEntityRefOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a CollectOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ScanTableOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ScanViewOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Clone an UnnestOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a ProjectOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a filterOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a sort node
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a constrained sort node
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a group-by node
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a group by into node
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a CrossJoinOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies an InnerJoinOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a LeftOuterJoinOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a FullOuterJoinOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a crossApplyOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Clone an OuterApplyOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Common copy path for all SetOps
            
             The SetOp to Copy (must be one of ExceptOp, IntersectOp, UnionAllOp) 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a UnionAllOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies an IntersectOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies an ExceptOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a DistinctOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a VarDefOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a VarDefListOp
            
             The Op to Copy 
             The Node that references the Op 
             A copy of the original Node that references a copy of the original Op 
        
        
            
            Copies a PhysicalProjectOp
            
        
        
            
            Copies a singleStreamNestOp
            
        
        
            
            Copies a multiStreamNestOp
            
        
        
            
            Represents a mapping from a model function import to a store non-composable function.
            
        
        
            
            Gets function import return type mapping knowledge bases.
            
        
        
            
            If no return mappings were specified in the MSL return an empty return type mapping knowledge base.
            Otherwise return the resultSetIndexth return type mapping knowledge base, or throw if resultSetIndex is out of range
            
        
        
            
            Gets the disctriminator columns resultSetIndexth result set, or an empty array if the index is not in range
            
        
        
            
            Given discriminator values (ordinally aligned with DiscriminatorColumns), determines
            the entity type to return. Throws a CommandExecutionException if the type is ambiguous.
            
        
        
            
            Determines the expected shape of store results. We expect a column for every property
            of the mapped type (or types) and a column for every discriminator column. We make no
            assumptions about the order of columns: the provider is expected to determine appropriate
            types by looking at the names of the result columns, not the order of columns, which is
            different from the typical handling of row types in the EF.
            
            
            Requires that the given function import mapping refers to a Collection(Entity) or Collection(ComplexType) CSDL
            function.
            
             Row type. 
        
        
            
            Gets discriminator values aligned with DiscriminatorColumns of the parent FunctionImportMapping.
            A null ValueCondition indicates 'anything goes'.
            
        
        
            
            Gets bit array with 'true' indicating the corresponding MappedEntityType of the parent
            FunctionImportMapping is implied by this fragment.
            
        
        
            
            Gets the complement of the ImpliedEntityTypes BitArray.
            
        
        
            
            extract the column rename info from polymorphic entity type mappings
            
        
        
            
            CMember -> SMember*
            
        
        
            
            Set the column mappings for each defaultMemberName.
            
        
        
            
            Gets all types in scope for this mapping.
            
        
        
            
            Gets a list of all discriminator columns used in this mapping.
            
        
        
            
            Gets normalized representation of all EntityTypeMapping fragments for this
            function import mapping.
            
        
        
            
            Get the columns rename mapping for return type, the first string is the member name
            the second one is column names for different types that mentioned in the mapping.
            
        
        
            
            Determines which explicitly mapped types in the function import mapping cannot be generated.
            For IsTypeOf declarations, reports if no type in hierarchy can be produced.
            Works by:
            - Converting type mapping conditions into vertices
            - Checking that some assignment satisfies
            
        
        
            
            Determines which types are produced by this mapping.
            
        
        
            
            Determines which types are produced by this mapping.
            
        
        
            
            Represents the base item class for all the mapping metadata
            
        
        
            
            Represents the base item class for all the metadata
            
        
        
            
            Implementing this internal constructor so that this class can't be derived
            outside this assembly
            
        
        
            
            Returns the DataSpace in which this type belongs to
            
        
        
            
            Returns the Item that is being mapped either for ES or OE spaces.
            The EDM type will be an EntityContainer type in ES mapping case.
            In the OE mapping case it could be any type.
            
        
        
            
            Represents the various kind of member mapping
            
        
        
            
            if already seen, then out the object instance index, return false;
            if haven't seen, then add it to the m_itemAlreadySeen, out the current index, return true
            
        
        
            
            if the object has seen, then add the seen object style to the hash source, return false;
            if not, then add it to the seen list, and append the object start dump to the hash source, return true
            
        
        
            
            Add V2 schema properties and attributes to the hash builder
            
        
        
            
            Describes modification function mappings for an association set.
            
        
        
            
            Association set these functions handles.
            
        
        
            
            Delete function for this association set.
            
        
        
            
            Insert function for this association set.
            
        
        
            
            Describes modification function mappings for an entity type within an entity set.
            
        
        
            
            Gets (specific) entity type these functions handle.
            
        
        
            
            Gets delete function for the current entity type.
            
        
        
            
            Gets insert function for the current entity type.
            
        
        
            
            Gets update function for the current entity type.
            
        
        
            
            Describes the location of a member within an entity or association type structure.
            
        
        
            
            Gets the members in the path from the leaf (the member being bound)
            to the Root of the structure.
            
        
        
            
            Gets the association set to which we are navigating via this member. If the value
            is null, this is not a navigation member path.
            
        
        
            
            Binds a modification function parameter to a member of the entity or association being modified.
            
        
        
            
            Gets the parameter taking the value.
            
        
        
            
            Gets the path to the entity or association member defining the value.
            
        
        
            
            Gets a value indicating whether the current or original
            member value is being bound.
            
        
        
            
            Defines a binding from a named result set column to a member taking the value.
            
        
        
            
            Gets the name of the column to bind from the function result set. We use a string
            value rather than EdmMember, since there is no metadata for function result sets.
            
        
        
            
            Gets the property to be set on the entity.
            
        
        
            
            Mapping metadata for all OC member maps.
            
        
        
            
            Mapping metadata for all OC member maps.
            
        
        
            
            Constrcut a new member mapping metadata object
            
        
        
            
            The PropertyMetadata object that represents the Cdm member for which mapping is being specified
            
        
        
            
            The PropertyMetadata object that represents the Clr member for which mapping is being specified
            
        
        
            
            Returns the member mapping kind
            
        
        
            
            Constrcut a new AssociationEnd member mapping metadata object
            
        
        
            
            return the member mapping kind
            
        
        
            
            Mapping metadata for complex member maps.
            
        
        
            
            Mapping metadata for all OC member maps.
            
        
        
            
            Constrcut a new member mapping metadata object
            
        
        
            
            The PropertyMetadata object that represents the Clr member for which mapping is being specified
            
        
        
            
            return the member mapping kind
            
        
        
            
            Constrcut a new member mapping metadata object
            
        
        
            
            return the member mapping kind
            
        
        
            
            Defines all the string constrcuts defined in OC MSL specification
            
        
        
            
            Mapping metadata for all OC member maps.
            
        
        
            
            Constrcut a new member mapping metadata object
            
        
        
            
            return the member mapping kind
            
        
        
            
            Represents the metadata for OCObjectMapping.
            
        
        
            
            Construct a new ObjectTypeMapping object
            
        
        
            
            get a MemberMap for the member name specified
            
             the name of the CDM member for which map needs to be retrieved 
        
        
            
            Add a member mapping as a child of this object mapping
            
             child property mapping to be added 
        
        
            
            Returns the member map for the given clr member
            
        
        
            
            returns the member mapping for the given member
            
        
        
            
            Overriding System.Object.ToString to provide better String representation
            for this type.
            
        
        
            
            Gets the type kind for this item
            
        
        
            
            The reference to the Clr type in Metadata
            that participates in this mapping instance
            
        
        
            
            The reference to the Cdm type in Metadata
            that participates in this mapping instance
            
        
        
            
            The reference to the Cdm type in Metadata
            that participates in this mapping instance
            
        
        
            
            Returns the Identity of ObjectTypeMapping.
            The identity for an Object Type Map is the concatenation of
            CLR Type Idntity + ':' + CDM Type Identity
            
        
        
            
            Represents the Mapping metadata for an AssociationSet in CS space.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityTypeMapping
            --MappingFragment
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            This class represents the metadata for the AssociationSetMapping elements in the
            above example. And it is possible to access the AssociationTypeMap underneath it.
            There will be only one TypeMap under AssociationSetMap.
            
        
        
            
            Represents the Mapping metadata for an Extent in CS space.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityTypeMapping
            --MappingFragment
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            This class represents the metadata for all the extent map elements in the
            above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping.
            The SetMapping elements that are children of the EntityContainerMapping element
            can be accessed through the properties on this type.
            
        
        
            
            Construct the new StorageSetMapping object.
            
             Extent metadata object 
             The EntityContainer mapping that contains this extent mapping 
        
        
            
            The EntityContainer mapping that contains this extent mapping.
            
        
        
            
            The extent for which this mapping represents.
            
        
        
            
            Set of type mappings that make up the Set Mapping.
            Unless this is a EntitySetMapping with inheritance,
            you would have a single type mapping per set.
            
        
        
            
            Stores type-Specific user-defined QueryViews.
            
        
        
            
            Add type mapping as a child under this SetMapping
            
        
        
            
            Stores a type-specific user-defiend QueryView so that it can be loaded
            into StorageMappingItemCollection's view cache.
            
        
        
            
            The set for which this mapping is for
            
        
        
            
            Whether the SetMapping has empty content
            Returns true if there no table Mapping fragments
            
        
        
            
            Line Number in MSL file where the Set Mapping Element's Start Tag is present.
            
        
        
            
            Line Position in MSL file where the Set Mapping Element's Start Tag is present.
            
        
        
            
            Construct a new AssociationSetMapping object
            
             Represents the Association Set Metadata object. Will change this to Extent instead of MemberMetadata. 
             The entityContainerMapping mapping that contains this Set mapping 
        
        
            
            Gets or sets function mapping information for this association set. May be null.
            
        
        
            
            Represents the Mapping metadata for an association type map in CS space.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ScalarPropertyMap
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ComplexPropertyMap
            --ComplexTypeMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --ScalarPropertyMap
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --EndPropertyMap
            --ScalarPropertyMap
            This class represents the metadata for all association Type map elements in the
            above example. Users can access the table mapping fragments under the
            association type mapping through this class.
            
        
        
            
            Represents the Mapping metadata for a type map in CS space.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ScalarPropertyMap
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ComplexPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --ScalarPropertyMap
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --EndPropertyMap
            --ScalarPropertyMap
            This class represents the metadata for all the Type map elements in the
            above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping.
            The TypeMapping elements contain TableMappingFragments which in turn contain the property maps.
            
        
        
            
            Construct the new StorageTypeMapping object.
            
             SetMapping that contains this type mapping 
        
        
            
            ExtentMap that contains this type mapping.
            
        
        
            
            Set of fragments that make up the type Mapping.
            
        
        
            
            Add a fragment mapping as child of this type mapping
            
        
        
            
            Mapping fragments that make up this set type
            
        
        
            
            a list of TypeMetadata that this mapping holds true for.
            
        
        
            
            a list of TypeMetadatas for which the mapping holds true for
            not only the type specified but the sub-types of that type as well.
            
        
        
            
            Construct the new AssociationTypeMapping object.
            
             Represents the Association Type metadata object 
             Set Mapping that contains this Type mapping 
        
        
            
            Type for which the mapping is represented.
            
        
        
            
            The AssociationTypeType Metadata object for which the mapping is represented.
            
        
        
            
            a list of TypeMetadata that this mapping holds true for.
            Since Association types dont participate in Inheritance, This can only
            be one type.
            
        
        
            
            a list of TypeMetadatas for which the mapping holds true for
            not only the type specified but the sub-types of that type as well.
            Since Association types dont participate in Inheritance, an Empty list
            is returned here.
            
        
        
            
            Mapping metadata for Complex properties.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            This class represents the metadata for all the complex property map elements in the
            above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based
            on the type of the ComplexProperty in case of inheritance.
            
        
        
            
            Mapping metadata for all types of property mappings.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ScalarPropertyMap
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ComplexPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --ScalarPropertyMap
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --EndPropertyMap
            --ScalarPropertyMap
            This class represents the metadata for all property map elements in the
            above example. This includes the scalar property maps, complex property maps
            and end property maps.
            
        
        
            
            Construct a new EdmProperty mapping object
            
             The PropertyMetadata object that represents the member for which mapping is being specified 
        
        
            
            EdmProperty metadata representing the Cdm member for which the mapping is specified.
            
        
        
            
            The PropertyMetadata object that represents the member for which mapping is being specified
            
        
        
            
            Construct a new Complex Property mapping object
            
             The MemberMetadata object that represents this Complex member 
        
        
            
            Set of type mappings that make up the EdmProperty mapping.
            
        
        
            
            Add type mapping as a child under this Property Mapping
            
        
        
            
            TypeMappings that make up this property.
            
        
        
            
            Mapping metadata for Complex Types.
            
        
        
            
            Construct a new Complex Property mapping object
            
             Whether the property mapping representation is totally represented in this table mapping fragment or not. 
        
        
            
            Add a Type to the list of types that this mapping is valid for
            
        
        
            
            Add a Type to the list of Is-Of types that this mapping is valid for
            
        
        
            
            Add a property mapping as a child of this complex property mapping
            
             The mapping that needs to be added 
        
        
            
            Add a condition property mapping as a child of this complex property mapping
            Condition Property Mapping specifies a Condition either on the C side property or S side property.
            
             The Condition Property mapping that needs to be added 
        
        
            
            The method finds the type in which the member with the given name exists
            form the list of IsOfTypes and Type.
            
        
        
            
            a list of TypeMetadata that this mapping holds true for.
            
        
        
            
            a list of TypeMetadatas for which the mapping holds true for
            not only the type specified but the sub-types of that type as well.
            
        
        
            
            List of child properties that make up this complex property
            
        
        
            
            Returns all the property mappings defined in the complex type mapping
            including Properties and Condition Properties
            
        
        
            
            Mapping metadata for Conditional property mapping on a type.
            Condition Property Mapping specifies a Condition either on the C side property or S side property.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ConditionProperyMap ( constant value-->SMemberMetadata )
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ComplexTypeMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --ConditionProperyMap ( constant value-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            This class represents the metadata for all the condition property map elements in the
            above example.
            
        
        
            
            Construct a new condition Property mapping object
            
        
        
            
            Column EdmMember for which the condition is specified.
            
        
        
            
            Value for the condition thats being mapped.
            
        
        
            
            Value for the condition
            
        
        
            
            Whether the property is being mapped to Null or NotNull
            
        
        
            
            ColumnMember for which the Condition Map is being specified
            
        
        
            
            Mapping metadata for End property of an association.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            This class represents the metadata for all the end property map elements in the
            above example. EndPropertyMaps provide mapping for each end of the association.
            
        
        
            
            Construct a new End Property mapping object
            
        
        
            
            List of property mappings that make up the End.
            
        
        
            
            Add a property mapping as a child of End property mapping
            
        
        
            
            return ReadOnlyCollection of property mappings that are children of this End mapping
            
        
        
            
            The relation end property Metadata object for which the mapping is represented.
            
        
        
            
            Returns all store properties that are mapped under this mapping fragment
            
        
        
            
            Represents the Mapping metadata for the EntityContainer map in CS space.
            Only one EntityContainerMapping element is allowed in the MSL file for CS mapping.
            
            
                For Example if conceptually you could represent the CS MSL file as following
                ---Mapping
                --EntityContainerMapping ( CNorthwind-->SNorthwind )
                --EntitySetMapping
                --AssociationSetMapping
                The type represents the metadata for EntityContainerMapping element in the above example.
                The SetMapping elements that are children of the EntityContainerMapping element
                can be accessed through the properties on this type.
            
            
                We currently assume that an Entity Container on the C side
                is mapped to a single Entity Container in the S - space.
            
        
        
            
            Construct a new EntityContainer mapping object
            passing in the C-space EntityContainer  and
            the s-space Entity container metadata objects.
            
             Entity Continer type that is being mapped on the C-side 
             Entity Continer type that is being mapped on the S-side 
        
        
            
            get an EntitySet mapping based upon the name of the entity set.
            
            ///
             the name of the entity set 
        
        
            
            Get a RelationShip set mapping based upon the name of the relationship set
            
             the name of the relationship set 
             the mapping for the entity set if it exists, null if it does not exist 
        
        
            
            Get a RelationShipSet mapping that has the passed in EntitySet as one of the ends and is mapped to the
            table.
            
        
        
            
            Get a set mapping based upon the name of the set
            
        
        
            
            Adds an entity set mapping to the list of EntitySetMaps
            under this entity container mapping. The method will be called
            by the Mapping loader.
            
        
        
            
            Adds a association set mapping to the list of AssociationSetMaps
            under this entity container mapping. The method will be called
            by the Mapping loader.
            
        
        
            
            check whether the EntityContainerMapping contains
            the map for the given AssociationSet
            
        
        
            
            Returns whether the Set Map for the given set has a query view or not
            
        
        
            
            Gets the type kind for this item
            
        
        
            
            The Entity Container Metadata object on the C-side
            for which the mapping is being represented.
            
        
        
            
            Indicates whether there are no Set mappings
            in the container mapping.
            
        
        
            
            Determine whether the container includes any views.
            Returns true if there is at least one query or update view specified by the mapping.
            
        
        
            
            The Entity Container Metadata object on the C-side
            for which the mapping is being represented.
            
        
        
            
            The Entity Container Metadata object on the C-side
            for which the mapping is being represented.
            
        
        
            
            a list of all the  entity set maps under this
            container. In CS mapping, the mapping is done
            at the extent level as opposed to the type level.
            
        
        
            
            a list of all the  entity set maps under this
            container. In CS mapping, the mapping is done
            at the extent level as opposed to the type level.
            RelationshipSetMaps will be CompositionSetMaps and
            AssociationSetMaps put together.
            
            
            The reason we have RelationshipSetMaps is to be consistent with CDM metadata
            which treats both associations and compositions as Relationships.
            
        
        
            
            a list of all the  set maps under this
            container.
            
        
        
            
            Line Number in MSL file where the EntityContainer Mapping Element's Start Tag is present.
            
        
        
            
            Line Position in MSL file where the EntityContainer Mapping Element's Start Tag is present.
            
        
        
            
            Indicates whether to validate the mapping or not.
            
        
        
            
            Indicates whether to generate the update views or not.
            
        
        
            
            Represents the Mapping metadata for an EnitytSet in CS space.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityTypeMapping
            --MappingFragment
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            This class represents the metadata for the EntitySetMapping elements in the
            above example. And it is possible to access the EntityTypeMaps underneath it.
            
        
        
            
            Construct a EntitySet mapping object
            
             EntitySet metadata object 
             The entity Container Mapping that contains this Set mapping 
        
        
            
            Requires:
            - Function mapping refers to a sub-type of this entity set's element type
            - Function mappings for types are not redundantly specified
            Adds a new function mapping for this class.
            
             Function mapping to add. May not be null. 
        
        
            
            Gets all function mappings for this entity set.
            
        
        
            
            Gets all association sets that are implicitly "covered" through function mappings.
            
        
        
            
            Whether the EntitySetMapping has empty content
            Returns true if there are no Function Maps and no table Mapping fragments
            
        
        
            
            Mapping metadata for Entity type.
            If an EntitySet represents entities of more than one type, than we will have
            more than one EntityTypeMapping for an EntitySet( For ex : if
            PersonSet Entity extent represents entities of types Person and Customer,
            than we will have two EntityType Mappings under mapping for PersonSet).
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ScalarPropertyMap
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap
            --ComplexPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --ScalarPropertyMap
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap
            --ScalarProperyMap
            --EndPropertyMap
            --ScalarPropertyMap
            This class represents the metadata for all entity Type map elements in the
            above example. Users can access the table mapping fragments under the
            entity type mapping through this class.
            
        
        
            
            Construct the new EntityTypeMapping object.
            
             Set Mapping that contains this Type mapping 
        
        
            
            Types for which the mapping holds true for.
            
        
        
            
            Types for which the mapping holds true for not only the type specified but the sub-types of that type as well.
            
        
        
            
            Add a Type to the list of types that this mapping is valid for
            
        
        
            
            Add a Type to the list of Is-Of types that this mapping is valid for
            
        
        
            
            a list of TypeMetadata that this mapping holds true for.
            
        
        
            
            a list of TypeMetadatas for which the mapping holds true for
            not only the type specified but the sub-types of that type as well.
            
        
        
            
            StorageMappingErrorBase
            
        
        
            
            Invalid Content
            
        
        
            
            Unresolvable Entity Container Name
            
        
        
            
            Unresolvable Entity Set Name
            
        
        
            
            Unresolvable Entity Type Name
            
        
        
            
            Unresolvable Association Set Name
            
        
        
            
            Unresolvable Association Type Name
            
        
        
            
            Unresolvable Table Name
            
        
        
            
            Unresolvable Complex Type Name
            
        
        
            
            Unresolvable Edm Member Name
            
        
        
            
            Unresolvable Storage Member Name
            
        
        
            
            TableMappingFragment element expected
            
        
        
            
            SetMappingFragment element expected
            
        
        
            
            Duplicate Set Map
            
        
        
            
            Duplicate Type Map
            
        
        
            
            Condition Error
            
        
        
            
            Root Mapping Element missing
            
        
        
            
            Incompatible member map
            
        
        
            
            Invalid Enum Value
            
        
        
            
            Xml Schema Validation error
            
        
        
            
            Xml Schema Validation error
            
        
        
            
            Ambiguous Modification Function Mapping For AssociationSet
            
        
        
            
            Missing Set Closure In Modification Function Mapping
            
        
        
            
            Missing Modification Function Mapping For Entity Type
            
        
        
            
            Invalid Table Name Attribute With Modification Function Mapping
            
        
        
            
            Invalid Modification Function Mapping For Multiple Types
            
        
        
            
            Ambiguous Result Binding In Modification Function Mapping
            
        
        
            
            Invalid Association Set Role In Modification Function Mapping
            
        
        
            
            Invalid Association Set Cardinality In Modification Function Mapping
            
        
        
            
            Redundant Entity Type Mapping In Modification Function Mapping
            
        
        
            
            Missing Version In Modification Function Mapping
            
        
        
            
            Invalid Version In Modification Function Mapping
            
        
        
            
            Invalid Parameter In Modification Function Mapping
            
        
        
            
            Parameter Bound Twice In Modification Function Mapping
            
        
        
            
            Same CSpace member mapped to multiple SSpace members with different types
            
        
        
            
            No store type found for the given CSpace type (these error message is for primitive type with no facets)
            
        
        
            
            No Store type found for the given CSpace type with the given set of facets
            
        
        
            
            While mapping functions, if the property type is not compatible with the function parameter
            
        
        
            
            While mapping functions, if more than one end of association is mapped
            
        
        
            
            While mapping functions, if we find an unknown function
            
        
        
            
            While mapping functions, if we find an ambiguous function
            
        
        
            
            While mapping functions, if we find an invalid function
            
        
        
            
            While mapping functions, if we find an invalid function parameter
            
        
        
            
            Association set function mappings are not consistently defined for different operations
            
        
        
            
            Entity type function mapping includes association end but the type is not part of the association
            
        
        
            
            Function import mapping references non-existent store function
            
        
        
            
            Function import mapping references store function with overloads (overload resolution is not possible)
            
        
        
            
            Function import mapping reference non-existent import
            
        
        
            
            Function import mapping is mapped in several locations
            
        
        
            
            Attempting to map non-composable function import to a composable function.
            
        
        
            
            No parameter on import side corresponding to target parameter
            
        
        
            
            No parameter on target side corresponding to import parameter
            
        
        
            
            Parameter directions are different
            
        
        
            
            Parameter types are different
            
        
        
            
            Rows affected parameter does not exist on mapped function
            
        
        
            
            Rows affected parameter does not Int32
            
        
        
            
            Rows affected does not have 'out' mode
            
        
        
            
            Empty Container Mapping
            
        
        
            
            Empty Set Mapping
            
        
        
            
            Both TableName Attribute on Set Mapping and QueryView specified
            
        
        
            
            Empty Query View
            
        
        
            
            Both Query View and Property Maps specified for EntitySet
            
        
        
            
            Some sets in the graph missing Query Views
            
        
        
            
            Invalid Query View
            
        
        
            
            Invalid result type  for query view
            
        
        
            
            Item with same name exists both in CSpace and SSpace
            
        
        
            
            Unsupported expression kind in query view
            
        
        
            
            Non S-space target in query view
            
        
        
            
            Non structural property referenced in query view
            
        
        
            
            Initialization non-target type in query view
            
        
        
            
            EntityType mapping for non-entity set function
            
        
        
            
            FunctionImport ambiguous type mappings
            
        
        
            
            Abstract type being mapped explicitly  - not supported.
            
        
        
            
            Storage EntityContainer Name mismatch while specifying partial mapping
            
        
        
            
            TypeName attribute specified for First QueryView
            
        
        
            
            No TypeName attribute is specified for type-specific QueryViews
            
        
        
            
            Multiple (optype/oftypeonly) QueryViews have been defined for the same EntitySet/EntityType
            
        
        
            
            TypeName Contains Multiple Types For QueryView
            
        
        
            
            IsTypeOf QueryView is specified for base type
            
        
        
            
            ScalarProperty Element contains invalid type
            
        
        
            
            Already Mapped Storage Container
            
        
        
            
            No query view is allowed at compile time in EntityContainerMapping
            
        
        
            
            EntityContainerMapping only contains query view
            
        
        
            
            No views can be generated since all of the EntityContainerMapping contain query view
            
        
        
            
            The store provider returns null EdmType for the given targetParameter's type
            
        
        
            
            Multiple mappings of the same Member or Property inside the same mapping fragment.
            
        
        
            
            Entity type mapping for a function import that does not return a collection of entity type.
            
        
        
            
            Complex type mapping for a function import that does not return a collection of complex type.
            
        
        
            
            Distinct flag can only be placed in a container that is not read-write
            
        
        
            
            The EntitySet used in creating the Ref and the EntitySet declared in AssociationSetEnd do not match
            
        
        
            
            FKs not permitted for function association ends.
            
        
        
            
            Cannot load different version of schemas in the same ItemCollection
            
        
        
            
            All function imports must be mapped.
            
        
        
            
            Invalid function import result mapping: return type property not mapped.
            
        
        
            
            Unresolvable Type Name
            
        
        
            
            TVF expected on the store side.
            
        
        
            
            Collection(Scalar) function import return type is not compatible with the TVF column type.
            
        
        
            
            Collection(Scalar) function import must be mapped to a TVF returning a single column.
            
        
        
            
            Attempting to map composable function import to a non-composable function.
            
        
        
            
            Non-s-space function call in query view.
            
        
        
            
            Invalid function result mapping: result mapping count doesn't match result type count.
            
        
        
            
            The key properties of all entity types returned by the function import must be mapped to the same non-nullable columns returned by the storage function.
            
        
        
            
            Represents the metadata for mapping fragment.
            A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet )
            Each MappingFragment provides mapping for those properties of a type that map to a single table.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ComplexTypeMapping
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            This class represents the metadata for all the mapping fragment elements in the
            above example. Users can access all the top level constructs of
            MappingFragment element like EntityKey map, Property Maps, Discriminator
            property through this mapping fragment class.
            
        
        
            
            Construct a new Mapping Fragment object
            
        
        
            
            Table extent from which the properties are mapped under this fragment.
            
        
        
            
            Type mapping under which this mapping fragment exists.
            
        
        
            
            Condition property mappings for this mapping fragment.
            
        
        
            
            All the other properties .
            
        
        
            
            Add a property mapping as a child of this mapping fragment
            
             child property mapping to be added 
        
        
            
            Add a condition property mapping as a child of this complex property mapping
            Condition Property Mapping specifies a Condition either on the C side property or S side property.
            
             The mapping that needs to be added 
        
        
            
            The table from which the properties are mapped in this fragment
            
        
        
            
            Returns all the property mappings defined in the complex type mapping
            including Properties and Condition Properties
            
        
        
            
            Returns all the property mappings defined in the complex type mapping
            including Properties and Condition Properties
            
        
        
            
            Line Number in MSL file where the Mapping Fragment Element's Start Tag is present.
            
        
        
            
            Line Position in MSL file where the Mapping Fragment Element's Start Tag is present.
            
        
        
            
            File URI of the MSL file
            
        
        
            
            Represents a collection of items in Storage Mapping (CS Mapping) space.
            
        
        
            
            For testing.
            
        
        
            Initializes a new instance of the  class using the specified ,  and a collection of string indicating the metadata file paths.
            The  that this mapping is to use.
            The  that this mapping is to use.
            The file paths that this mapping is to use.
        
        
            Initializes a new instance of the  class using the specified ,  and XML readers.
            The  that this mapping is to use.
            The  that this mapping is to use.
            The XML readers that this mapping is to use.
        
        
            
            constructor that takes in a list of XmlReaders and creates metadata for mapping
            in all the files.
            
             The edm metadata collection that this mapping is to use 
             The store metadata collection that this mapping is to use 
             The XmlReaders to load mapping from 
             Mapping URIs 
             a list of errors for each file loaded 
        
        
            
            constructor that takes in a list of XmlReaders and creates metadata for mapping
            in all the files.
            
             The edm metadata collection that this mapping is to use 
             The store metadata collection that this mapping is to use 
             The XmlReaders to load mapping from 
             Mapping URIs 
        
        
            
            Initializer that takes in a list of XmlReaders and creates metadata for mapping
            in all the files.
            
             The edm metadata collection that this mapping is to use 
             The store metadata collection that this mapping is to use 
             The XmlReaders to load mapping from 
             Mapping URIs 
             
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             identity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             Returns false if no match found. 
        
        
            
            Return members for MetdataWorkspace.GetRequiredOriginalValueMembers() and MetdataWorkspace.GetRelevantMembersForUpdate() methods.
            
             An EntitySet belonging to the C-Space. Must not be null. 
             An EntityType that participates in the given EntitySet. Must not be null. 
             Scenario the members should be returned for. 
            
            ReadOnlyCollection of interesting members for the requested scenario (
            
            ).
            
        
        
            
            Finds interesting members for MetdataWorkspace.GetRequiredOriginalValueMembers() and MetdataWorkspace.GetRelevantMembersForUpdate() methods
            for the given  and .
            
             An EntitySet belonging to the C-Space. Must not be null. 
             An EntityType that participates in the given EntitySet. Must not be null. 
             Scenario the members should be returned for. 
            
            ReadOnlyCollection of interesting members for the requested scenario (
            
            ).
            
        
        
            
            Finds members participating in the assocciation and adds them to the .
            
             Association type mapping. Must not be null. 
             The list the interesting members (if any) will be added to. Must not be null. 
        
        
            
            Finds interesting entity properties - primary keys (if requested), properties (including complex properties and nested properties)
            with concurrency mode set to fixed and C-Side condition members and adds them to the
            
            .
            
             Entity type mapping. Must not be null. 
             Scenario the members should be returned for. 
             The list the interesting members (if any) will be added to. Must not be null. 
        
        
            
            Recurses down the complex property to find whether any of the nseted properties has concurrency mode set to "Fixed"
            
             Complex property mapping. Must not be null. 
            
            true if any of the descendant properties has concurrency mode set to "Fixed". Otherwise false .
            
        
        
            
            Finds foreign key properties and adds them to the .
            
            
            Entity set  relates to. Must not be null.
            
             Entity type for which to find foreign key properties. Must not be null. 
             The list the interesting members (if any) will be added to. Must not be null. 
        
        
            
            Finds interesting members for modification functions mapped to stored procedures and adds them to the
            
            .
            
             Modification function mapping. Must not be null. 
             Update scenario the members will be used in (in general - partial update vs. full update). 
             
        
        
            
            Calls the view dictionary to load the view, see detailed comments in the view dictionary class.
            
        
        
            
            This helper method loads items based on contents of in-memory XmlReader instances.
            Assumption: This method is called only from the constructor because m_extentMappingViews is not thread safe.
            
             A list of XmlReader instances 
             A list of URIs 
             A list of schema errors 
        
        
            
            This method compiles all the user defined query views in the .
            
        
        
            
            Return the update view loader
            
        
        
            
            this method will be called in metadatworkspace, the signature is the same as the one in ViewDictionary
            
        
        
            
            Computes a hash value for the container mapping specified by the names of the mapped containers.
            
            The name of a container in the conceptual model.
            The name of a container in the store model.
            A string that specifies the computed hash value.
        
        
            
            Computes a hash value for the single container mapping in the collection.
            
            A string that specifies the computed hash value.
        
        
            
            Creates a dictionary of (extent, generated view) for a container mapping specified by
            the names of the mapped containers.
            
            The name of a container in the conceptual model.
            The name of a container in the store model.
            A list that accumulates potential errors.
            
            A dictionary of (, ) that specifies the generated views.
            
        
        
            
            Creates a dictionary of (extent, generated view) for the single container mapping
            in the collection.
            
            A list that accumulates potential errors.
            
            A dictionary of (, ) that specifies the generated views.
            
        
        
            
            Factory method that creates a .
            
            
            The edm metadata collection to map. Must not be null.
            
            
            The store metadata collection to map. Must not be null.
            
            
            MSL artifacts to load. Must not be null.
            
            
            Paths to MSL artifacts. Used in error messages. Can be null in which case
            the base Uri of the XmlReader will be used as a path.
            
            
            The collection of errors encountered while loading.
            
            
             instance if no errors encountered. Otherwise null.
            
        
        
            
            Gets or sets a  for creating  instances
            that are used to retrieve pre-generated mapping views.
            
        
        
            
            Return the EdmItemCollection associated with the Mapping Collection
            
        
        
            Gets the version of this  represents.
            The version of this  represents.
        
        
            
            Return the StoreItemCollection associated with the Mapping Collection
            
        
        
            
            Caches computation of view generation per . Cached value contains both query and update views.
            
        
        
            
            Caches computation of getting Type-specific Query Views - either by view gen or user-defined input.
            
        
        
            
            Call the View Generator's Generate view method
            and collect the Views and store it in a local dictionary.
            
        
        
            
            Generates a single query view for a given Extent and type. It is used to generate OfType and OfTypeOnly views.
            
             
             
             
             Whether the view should include extents that are subtypes of the given entity 
             
        
        
            
            Tries to generate the Oftype or OfTypeOnly query view for a given entity set and type.
            Returns false if the view could not be generated.
            Possible reasons for failing are
            1) Passing in OfTypeOnly on an abstract type
            2) In user-specified query views mode a query for the given type is absent
            
        
        
            
            Note: Null return value implies QV was not generated.
            
        
        
            
            Returns the update or query view for an Extent as a
            string.
            There are a series of steps that we go through for discovering a view for an extent.
            To start with we assume that we are working with Generated Views. To find out the
            generated view we go to the ObjectItemCollection and see if it is not-null. If the ObjectItemCollection
            is non-null, we get the view generation assemblies that it might have cached during the
            Object metadata discovery.If there are no view generation assemblies we switch to the
            runtime view generation strategy. If there are view generation assemblies, we get the list and
            go through them and see if there are any assemblies that are there from which we have not already loaded
            the views. We collect the views from assemblies that we have not already collected from earlier.
            If the ObjectItemCollection is null and we are in the view generation mode, that means that
            the query or update is issued from the Value layer and this is the first time view has been asked for.
            The compile time view gen for value layer queries will work for very simple scenarios.
            If the users wants to get the performance benefit, they should call MetadataWorkspace.LoadFromAssembly.
            At this point we go through the referenced assemblies of the entry assembly( this wont work for Asp.net
            or if the viewgen assembly was not referenced by the executing application).
            and try to see if there were any view gen assemblies. If there are, we collect the views for all extents.
            Once we have all the generated views gathered, we try to get the view for the extent passed in.
            If we find one we will return it. If we can't find one an exception will be thrown.
            If there were no view gen assemblies either in the ObjectItemCollection or in the list of referenced
            assemblies of calling assembly, we change the mode to runtime view generation and will continue to
            be in that mode for the rest of the lifetime of the mapping item collection.
            
        
        
            
            The class loads an MSL file into memory and exposes CSMappingMetadata interfaces.
            The primary consumers of the interfaces are view genration and tools.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --TableMappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --EntityTypeMapping
            --TableMappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ComplexTypeMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --TableMappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityContainerMapping ( CMyDatabase-->SMyDatabase )
            --CompositionSetMapping
            --CompositionTypeMapping
            --TableMappingFragment
            --ParentEntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->Constant value )
            --ComplexPropertyMap
            --ComplexTypeMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --DiscriminatorProperyMap ( constant value-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->Constant value )
            The CCMappingSchemaLoader loads an Xml file that has a conceptual structure
            equivalent to the above example into in-memory data structure in a
            top-dwon approach.
            
            
            The loader uses XPathNavigator to parse the XML. The advantage of using XPathNavigator
            over DOM is that it exposes the line number of the current xml content.
            This is really helpful when throwing exceptions. Another advantage is
            
        
        
            
            Public constructor.
            For Beta2 we wont support delay loading Mapping information and we would also support
            only one mapping file for workspace.
            
             
             
             
             Dictionary to keep the list of all scalar member mappings 
        
        
            
            The LoadMappingSchema method loads the mapping file and initializes the
            MappingSchema that represents this mapping file.
            For Beta2 atleast, we will support only one EntityContainerMapping per mapping file.
            
        
        
            
            The method loads the child nodes for the root Mapping node
            into the internal datastructures.
            
        
        
            
            The method loads and returns the EntityContainer Mapping node.
            
        
        
            
            The method loads the child nodes for the EntityContainer Mapping node
            into the internal datastructures.
            
        
        
            
            Validates that collocated association sets are consistently mapped for each entity set (all operations or none). In the case
            of relationships between sub-types of an entity set, ensures the relationship mapping is legal.
            
        
        
            
            Validates that association sets are only mapped once.
            
             
             Container to validate 
        
        
            
            Validates that all or no related extents have function mappings. If an EntitySet or an AssociationSet has a function mapping,
            then all the sets that touched the same store tableSet must also have function mappings.
            
             
             Container to validate. 
        
        
            
            Validates that all or no related extents have query views defined. If an extent has a query view defined, then
            all related extents must also have query views.
            
             
             Container to validate. 
        
        
            
            The method loads the child nodes for the EntitySet Mapping node
            into the internal datastructures.
            
        
        
            
            The method loads the child nodes for the EntityType Mapping node
            into the internal datastructures.
            
        
        
            
            Loads modification function mappings for entity type.
            
        
        
            
            The method loads the query view for the Set Mapping node
            into the internal datastructures.
            
        
        
            
            The method loads the child nodes for the AssociationSet Mapping node
            into the internal datastructures.
            
        
        
            
            The method loads a function import mapping element
            
        
        
            
            Attempts to infer key columns of the target function based on the function import mapping.
            
        
        
            
            The method loads the child nodes for the AssociationType Mapping node
            into the internal datastructures.
            
        
        
            
            Loads function mappings for the entity type.
            
        
        
            
            The method loads the child nodes for the TableMappingFragment under the EntityType node
            into the internal datastructures.
            
        
        
            
            The method loads the child nodes for the TableMappingFragment under the AssociationType node
            into the internal datastructures.
            
        
        
            
            The method loads the ScalarProperty mapping
            into the internal datastructures.
            
        
        
            
            The method loads the ComplexProperty mapping into the internal datastructures.
            
        
        
            
            The method loads the EndProperty mapping
            into the internal datastructures.
            
        
        
            
            The method loads the ConditionProperty mapping
            into the internal datastructures.
            
        
        
            
            Throws a new MappingException giving out the line number and
            File Name where the error in Mapping specification is present.
            
             
             
             
             
             Error Collection where the parsing errors are collected 
        
        
            
            Resolve the attribute value based on the aliases provided as part of MSL file.
            
        
        
            
            The method simply calls the helper method on Helper class with the
            namespaceURI that is default for CSMapping.
            
        
        
            
            The method simply calls the helper method on Helper class with the
            namespaceURI that is default for CSMapping.
            
             
             
             
             
             Error Collection where the parsing errors are collected 
             
        
        
            
            Returns the enum EdmMember corresponding to attribute name in enumType.
            
             
             
             
             
             Error Collection where the parsing errors are collected 
        
        
            
            Resolve the string value based on the aliases provided as part of MSL file.
            
        
        
            
            Creates Xml Reader with settings required for
            XSD validation.
            
        
        
            
            The method is called by the XSD validation event handler when
            ever there are warnings or errors.
            We ignore the warnings but the errors will result in exception.
            
        
        
            
            Validate the scalar property mapping - makes sure that the cspace type is promotable to the store side and updates
            the store type usage
            
        
        
            
            Checks whether the  represents a type usage for an enumeration type and if
            this is the case creates a new type usage built using the underlying type of the enumeration type.
            
             TypeUsage to resolve. 
            
            If  represents a TypeUsage for enumeration type the method returns a new TypeUsage instance created using the underlying type of the enumeration type. Otherwise the method returns
            
            .
            
        
        
            
            Encapsulates state and functionality for loading a modification function mapping.
            
        
        
            
            Loads function metadata and ensures the function is supportable for function mapping.
            
        
        
            
            Describes modification function binding for change processing of entities or associations.
            
        
        
            
            Gets bindings for function parameters.
            
        
        
            
            Gets all association set ends collocated in this mapping.
            
        
        
            
            Gets bindings for the results of function evaluation.
            
        
        
            
            Gets output parameter producing number of rows affected. May be null.
            
        
        
            
            Gets Metadata of function to which we should bind.
            
        
        
            
            Defines all the string constrcuts defined in CS MSL specification
            
        
        
            
            Mapping metadata for scalar properties.
            
            
            For Example if conceptually you could represent the CS MSL file as following
            --Mapping
            --EntityContainerMapping ( CNorthwind-->SNorthwind )
            --EntitySetMapping
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --EntityTypeMapping
            --MappingFragment
            --EntityKey
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ComplexPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --AssociationSetMapping
            --AssociationTypeMapping
            --MappingFragment
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            --ScalarProperyMap ( CMemberMetadata-->SMemberMetadata )
            --EndPropertyMap
            --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
            This class represents the metadata for all the scalar property map elements in the
            above example.
            
        
        
            
            Construct a new Scalar EdmProperty mapping object
            
        
        
            
            S-side member for which the scalar property is being mapped.
            This will be interpreted by the view generation algorithm based on the context.
            
        
        
            
            column name from which the sclar property is being mapped
            
        
        
            
            Encapsulates information about ends of an association set needed to correctly
            interpret updates.
            
        
        
            
            Gets association ends that must be modified if the association
            is changed (e.g. the mapping of the association is conditioned
            on some property of the end)
            
        
        
            
            Gets association ends that may be implicitly modified as a result
            of changes to the association (e.g. collocated entity with server
            generated value)
            
        
        
            
            Gets association ends whose values may influence the association
            (e.g. where there is a ReferentialIntegrity or "foreign key" constraint)
            
        
        
            
            Initialize Metadata for an AssociationSet
            
        
        
            
            Initialize given required ends.
            
        
        
            
            true iff. there are interesting ends for this association set.
            
        
        
            
            This class encapsulates changes propagated to a node in an update mapping view.
            It contains lists of deleted and inserted rows. Key intersections betweens rows
            in the two sets are treated as updates in the store.
            
            
            
                Additional tags indicating the roles of particular values (e.g., concurrency, undefined, etc.) are stored within each row: where appropriate, constants appearing within a row are associated with a
                
                through the  .
            
             The 'leaves' of an update mapping view (UMV) are extent expressions. A change node associated with an extent expression is simply the list of changes to the C-Space requested by a caller. As changes propagate 'up' the UMV expression tree, we recursively apply transformations such that the change node associated with the root of the UMV represents changes to apply in the S-Space. 
            
        
        
            
            Constructs a change node containing changes belonging to the specified collection
            schema definition.
            
            
            Sets  property.
            
        
        
            
            Gets the type of the rows contained in this node. This type corresponds (not coincidentally)
            to the type of an expression in an update mapping view.
            
        
        
            
            Gets a list of rows to be inserted.
            
        
        
            
            Gets a list of rows to be deleted.
            
        
        
            
            Gets or sets a version of a record at this node with default record. The record has the type
            of the node we are visiting.
            
        
        
            
            Represents a key composed of multiple parts.
            
        
        
            
            Gets components of this composite key.
            
        
        
            
            Initialize a new composite key using the given constant values. Order is important.
            
             Key values. 
        
        
            
            Creates a key comparer operating in the context of the given translator.
            
        
        
            
            Creates a merged key instance where each key component contains both elements.
            
             
             Must be a non-null compatible key (same number of components). 
             Merged key. 
        
        
            
            Equality and comparison implementation for composite keys.
            
        
        
            
            Class storing the result of compiling an instance DML command.
            
        
        
            
            Yields all state entries contributing to this command. Used for error reporting.
            
             Translator context. 
             Related state entries. 
        
        
            
            Determines model level dependencies for the current command. Dependencies are based
            on the model operations performed by the command (adding or deleting entities or relationships).
            
        
        
            
            Executes the current update command.
            All server-generated values are added to the generatedValues list. If those values are identifiers, they are
            also added to the identifierValues dictionary, which associates proxy identifiers for keys in the session
            with their actual values, permitting fix-up of identifiers across relationships.
            
             Aggregator for identifier values (read for InputIdentifiers; write for OutputIdentifiers 
             Aggregator for server generated values. 
             Number of rows affected by the command. 
        
        
            
            Implementation of CompareTo for concrete subclass of UpdateCommand.
            
        
        
            
            Provides a suggested ordering between two commands. Ensuring a consistent ordering is important to avoid deadlocks
            between two clients because it means locks are acquired in the same order where possible. The ordering criteria are as
            follows (and are partly implemented in the CompareToType method). In some cases there are specific secondary
            reasons for the order (e.g. operator kind), but for the most case we just care that a consistent ordering
            is applied:
            - The kind of command (dynamic or function). This is an arbitrary criteria.
            - The kind of operator (insert, update, delete). See  for details of the ordering.
            - The target of the modification (table for dynamic, set for function).
            - Primary key for the modification (table key for dynamic, entity keys for function).
            If it is not possible to differentiate between two commands (e.g., where the user is inserting entities with server-generated
            primary keys and has not given explicit values), arbitrary ordering identifiers are assigned to the commands to
            ensure CompareTo is well-behaved (doesn't return 0 for different commands and suggests consistent ordering).
            
        
        
            
            Gets all identifiers (key values basically) generated by this command. For instance,
            @@IDENTITY values.
            
        
        
            
            Gets all identifiers required by this command.
            
        
        
            
            Gets table (if any) associated with the current command. FunctionUpdateCommand has no table.
            
        
        
            
            Gets type of command.
            
        
        
            
            Gets original values of row/entity handled by this command.
            
        
        
            
            Gets current values of row/entity handled by this command.
            
        
        
            
            Gets the  used to create this command.
            
        
        
            
            See comments in .
            
        
        
            
            Gets DB command definition encapsulating store logic for this command.
            
        
        
            
            Creates a new list of modification clauses with the specified remapped clauses replaced.
            
        
        
            
            Represents the data contained in a StateEntry using internal data structures
            of the UpdatePipeline.
            
        
        
            
            Encapsulates metadata information relevant to update for records extracted from
            the entity state manager, such as concurrency flags and key information.
            
        
        
            
            Requires: record must have correct type for this metadata instance.
            Populates a new  object representing a member of a record matching the
            type of this extractor. Given a record and a member, this method wraps the value of the member
            in a PropagatorResult. This operation can be performed efficiently by this class, which knows
            important stuff about the type being extracted.
            
             state manager entry containing value (used for error reporting) 
             Record containing value (used to find the actual value) 
             Indicates whether we are reading current or original values. 
             Entity key for the state entry. Must be set for entity records. 
             Ordinal of Member for which to retrieve a value. 
             Indicates how to determine whether a property is modified. 
             Propagator result describing this member value. 
        
        
            
            Converts a record to a propagator result
            
             state manager entry containing the record 
             Indicates whether the root element is modified (i.e., whether the type has changed) 
             Record to convert 
             Indicates whether we are retrieving current or original values. 
             Translator for session context; registers new metadata for the record type if none exists 
             Indicates how to determine whether a property is modified. 
             Result corresponding to the given record 
        
        
            
            Gets ordinal of the member.
            
        
        
            
            Gets key ordinal for primary key member (null if not a primary key).
            
        
        
            
            Gets propagator flags for the member, excluding the 'Preserve' flag
            which can only be set in context.
            
        
        
            
            Indicates whether this value is server generated.
            
        
        
            
            Indicates whether non-null values are supported for this member.
            
        
        
            
            Gets the member described by this wrapper.
            
        
        
            
            Indicates whether this is a key member.
            
        
        
            
            Indicates whether this is a foreign key member.
            
        
        
            
            Modification function mapping translators are defined per extent (entity set
            or association set) and manage the creation of function commands.
            
        
        
            
            Requires: this translator must be registered to handle the entity set
            for the given state entry.
            Translates the given state entry to a command.
            
             Parent update translator (global state for the workload) 
             State entry to translate. Must belong to the entity/association set handled by this translator 
             Command corresponding to the given state entry 
        
        
            
            Initialize a translator for the given entity set mapping.
            
             Entity set mapping. 
             Translator. 
        
        
            
            Initialize a translator for the given association set mapping.
            
             Association set mapping. 
             Translator. 
        
        
            
            Aggregates information about a modification command delegated to a store function.
            
        
        
            
            Initialize a new function command. Initializes the command object.
            
             Function mapping metadata 
             Translator 
             State entries handled by this operation. 
             'Root' state entry being handled by this function. 
        
        
            
            Gets the store command wrapped by this command.
            
        
        
            
            Gets map from identifiers (key component proxies) to parameters holding the actual
            key values. Supports propagation of identifier values (fixup for server-gen keys)
            
        
        
            
            Gets map from identifiers (key component proxies) to column names producing the actual
            key values. Supports propagation of identifier values (fixup for server-gen keys)
            
        
        
            
            Gets a reference to the rows affected output parameter for the stored procedure. May be null.
            
        
        
            
            Gets state entries contributing to this function. Supports error reporting.
            
        
        
            
            Sets all identifier input values (to support propagation of identifier values across relationship
            boundaries).
            
             Input values to set. 
        
        
            
            See comments in .
            
        
        
            
            Gets modification operator corresponding to the given entity state.
            
        
        
            
            Pairs for column names and propagator results (so that we can associate reader results with
            the source records for server generated values).
            
        
        
            
            A directed graph class.
            
            
            Notes on language (in case you're familiar with one or the other convention):
            node == vertex
            arc == edge
            predecessor == incoming
            successor == outgoing
            
             Type of nodes in the graph 
        
        
            
            Initialize a new graph
            
             Comparer used to determine if two node references are equivalent 
        
        
            
            Gets successors of the node (outgoing edges).
            
        
        
            
            Gets number of predecessors of the node.
            
        
        
            
            Gets the vertices that exist in the graph.
            
        
        
            
            Adds a new node to the graph. Does nothing if the vertex already exists.
            
             New node 
        
        
            
            Adds a new edge to the graph. NOTE: only adds edges for existing vertices.
            
             Source node 
             Target node 
        
        
            
            DESTRUCTIVE OPERATION: performing a sort modifies the graph
            Performs topological sort on graph. Nodes with no remaining incoming edges are removed
            in sort order (assumes elements implement IComparable(Of TVertex))
            
             true if the sort succeeds; false if it fails and there is a remainder 
        
        
            
            For debugging purposes.
            
        
        
            
            Returns the vertices of the graph.
            
        
        
            
            Returns the edges of the graph in the form: [from, to]
            
        
        
            
            Manages interactions between keys in the update pipeline (e.g. via referential constraints)
            
        
        
            
            Given an identifier, returns the canonical identifier for the clique including all identifiers
            with the same value (via referential integrity constraints).
            
        
        
            
            Indicate that the principal identifier controls the value for the dependent identifier.
            
        
        
            
            Given an 'identifier' result, register it as the owner (for purposes of error reporting,
            since foreign key results can sometimes get projected out after a join)
            
        
        
            
            Checks if the given identifier has a registered 'owner'
            
        
        
            
            Gets identifier for an entity key member at the given offset (ordinal of the property
            in the key properties for the relevant entity set)
            
        
        
            
            Creates identifier for a (non-key) entity member (or return existing identifier).
            
        
        
            
            Gets all relationship entries constrained by the given identifier. If there is a referential constraint
            where the identifier is the principal, returns results corresponding to the constrained
            dependent relationships.
            
        
        
            
            Given a value, returns the value for its principal owner.
            
        
        
            
            Gives all principals affecting the given identifier.
            
        
        
            
            Gives all direct references of the given identifier
            
        
        
            
            Gets all dependents affected by the given identifier.
            
        
        
            
            Checks whether the given identifier has any contributing principals.
            
        
        
            
            Checks whether there is a cycle in the identifier graph.
            
        
        
            
            Registers an added entity so that it can be matched by a foreign key lookup.
            
        
        
            
            There are three states:
            - No temp keys with the given value exists (return false, out null)
            - A single temp key exists with the given value (return true, out non null)
            - Multiple temp keys exist with the given value (return true, out null)
            
        
        
            
            Ensures firstId and secondId belong to the same partition
            
        
        
            
            Simple linked list class.
            
        
        
            
            Collects information relevant to a particular identifier.
            
        
        
            
            Enumeration of possible operators.
            
            
            The values are used to determine the order of operations (in the absence of any strong dependencies).
            The chosen order is based on the observation that hidden dependencies (e.g. due to temporary keys in
            the state manager or unknown FKs) favor deletes before inserts and updates before deletes. For instance,
            a deleted entity may have the same real key value as an inserted entity. Similarly, a self-reference
            may require a new dependent row to be updated before the prinpical row is inserted. Obviously, the actual
            constraints are required to make reliable decisions so this ordering is merely a heuristic.
            
        
        
            
            Indicates that all properties are modified. Used for added and deleted entities and for
            modified complex type sub-records.
            
        
        
            
            Indicates that no properties are modified. Used for unmodified complex type sub-records.
            
        
        
            
            Indicates that some properties are modified. Used for modified entities.
            
        
        
            
             Comments assume there is a map between the CDM and store. Other maps are possible, but for simplicity, we discuss the 'from' portion of the map as the C-Space and the 'to' portion of the map as the S-Space. 
            
                This class translates C-Space change requests into S-Space change requests given a C-Space change request, an update view loader, and a target table. It has precisely one entry point, the static
                
                method. It performs the translation by evaluating an update mapping view w.r.t. change requests (propagating a change request through the view).
            
            
            
             This class implements propagation rules for the following relational operators in the update mapping view: 
            
                - Projection
- Selection (filter)
- Union all
- Inner equijoin
- Left outer equijoin
Abstract implementation of node visitor that allows the specification of visit methods
            for different node types (VisitPre virtual methods) and evaluation of nodes with respect
            to the typed (TReturn) return values of their children.
            
            
            This is not a general purpose class. It is tailored to the needs of the update pipeline.
            All virtual methods throw NotSupportedException (must be explicitly overridden by each visitor).
            
             Return type for the visitor 
        
        
            
            Utility method to generate an exception when unsupported node types are encountered.
            
             Unsupported node 
             Not supported exception 
        
        
            
            Gets the name of this visitor for debugging and tracing purposes.
            
        
        
            
            Construct a new propagator.
            
             UpdateTranslator supporting retrieval of changes for C-Space extents referenced in the update mapping view. 
             Table for which updates are being produced. 
        
        
            
            Propagate changes from C-Space (contained in  to the S-Space.
            
            
            See Walker class for an explanation of this coding pattern.
            
             Grouper supporting retrieval of changes for C-Space extents referenced in the update mapping view. 
             Table for which updates are being produced. 
             Update mapping view to propagate. 
             Changes in S-Space. 
        
        
            
            Utility method constructs a new empty change node.
            
             Update mapping view node associated with the change. 
             Empty change node with the appropriate type for the view node. 
        
        
            
            Propagates changes across a join expression node by implementing progation rules w.r.t. inputs
            from the left- and right- hand sides of the join. The work is actually performed
            by the .
            
             A join expression node. 
             Results propagated to the given join expression node. 
        
        
            
            Given the results returned for the left and right inputs to a union, propagates changes
            through the union.
            Propagation rule (U = union node, L = left input, R = right input, D(x) = deleted rows
            in x, I(x) = inserted rows in x)
            U = L union R
            D(U) = D(L) union D(R)
            I(U) = I(L) union I(R)
            
             Union expression node in the update mapping view. 
             Result of propagating changes to this union all node. 
        
        
            
            Propagate projection.
            Propagation rule (P = projection node, S = projection input, D(x) = deleted rows in x,
            I(x) = inserted rows in x)
            P = Proj_f S
            D(P) = Proj_f D(S)
            I(P) = Proj_f I(S)
            
             Projection expression node. 
             Result of propagating changes to the projection expression node. 
        
        
            
            Performs projection for a single row. Evaluates each projection argument against the specified
            row, returning a result with the specified type.
            
             Projection expression. 
             Row to project. 
             Type of the projected row. 
             Projected row. 
        
        
            
            Propagation rule (F = filter node, S = input to filter, I(x) = rows inserted
            into x, D(x) = rows deleted from x, Sigma_p = filter predicate)
            F = Sigma_p S
            D(F) = Sigma_p D(S)
            I(F) = Sigma_p I(S)
            
        
        
            
            Handles extent expressions (these are the terminal nodes in update mapping views). This handler
            retrieves the changes from the grouper.
            
             Extent expression node 
        
        
            
            Gets context for updates performed by this propagator.
            
        
        
            
            Helper class supporting the evaluation of highly constrained expressions of the following
            form:
            P := P AND P | P OR P | NOT P | V is of type | V eq V | V
            V := P
            V := Property(V) | Constant | CASE WHEN P THEN V ... ELSE V | Row | new Instance | Null
            The evaluator supports SQL style ternary logic for unknown results (bool? is used, where
            null --> unknown, true --> TRUE and false --> FALSE
            
            
            Assumptions:
            - The node and the row passed in must be type compatible.
            Any var refs in the node must have the same type as the input row. This is a natural
            requirement given the usage of this method in the propagator, since each propagator handler
            produces rows of the correct type for its parent. Keep in mind that every var ref in a CQT is
            bound specifically to the direct child.
            - Equality comparisons are CLR culture invariant. Practically, this introduces the following
            differences from SQL comparisons:
            - String comparisons are not collation sensitive
            - The constants we compare come from a fixed repertoire of scalar types implementing IComparable
            For the purposes of update mapping view evaluation, these assumptions are safe because we
            only support mapping of non-null constants to fields (these constants are non-null discriminators)
            and key comparisons (where the key values are replicated across a reference).
            
        
        
            
            Constructs an evaluator for evaluating expressions for the given row.
            
             Row to match 
        
        
            
            Utility method filtering out a set of rows given a predicate.
            
             Match criteria. 
             Input rows. 
             Input rows matching criteria. 
        
        
            
            Utility method determining whether a row matches a predicate.
            
            
            See Walker class for an explanation of this coding pattern.
            
             Match criteria. 
             Input row. 
            
            true if the row matches the criteria; false otherwise
            
        
        
            
            Evaluates scalar node.
            
             Sub-query returning a scalar value. 
             Row to evaluate. 
             Scalar result. 
        
        
            
            Given an expression, converts to a (nullable) bool. Only boolean constant and null are
            supported.
            
             Result to convert 
             true if true constant; false if false constant; null is null constant 
        
        
            
            Converts a (nullable) bool to an expression.
            
             Result 
             Inputs contributing to the result 
             DbExpression 
        
        
            
            Determines whether the argument being evaluated has a given type (declared in the IsOfOnly predicate).
            
             IsOfOnly predicate. 
             True if the row being evaluated is of the requested type; false otherwise. 
        
        
            
            Determines whether the row being evaluated has the given type (declared in the IsOf predicate).
            
             Equals predicate. 
             True if the values being compared are equivalent; false otherwise. 
        
        
            
            Evaluates an 'and' expression given results of evalating its children.
            
             And predicate 
             True if both child predicates are satisfied; false otherwise. 
        
        
            
            Evaluates an 'or' expression given results of evaluating its children.
            
             'Or' predicate 
             True if either child predicate is satisfied; false otherwise. 
        
        
            
            Evalutes a 'not' expression given results
            
             'Not' predicate 
             True of the argument to the 'not' predicate evaluator to false; false otherwise 
        
        
            
            Returns the result of evaluating a case expression.
            
             Case expression node. 
             Result of evaluating case expression over the input row for this visitor. 
        
        
            
            Evaluates a var ref. In practice, this corresponds to the input row for the visitor (the row is
            a member of the referenced input for a projection or filter).
            We assert that types are consistent here.
            
             Var ref expression node 
             Input row for the visitor. 
        
        
            
            Evaluates a property expression given the result of evaluating the property's instance.
            
             Property expression node. 
             DbExpression resulting from the evaluation of property. 
        
        
            
            Evaluates a constant expression (trivial: the result is the constant expression)
            
             Constant expression node. 
             Constant expression 
        
        
            
            Evaluates a ref key expression based on the result of evaluating the argument to the ref.
            
             Ref key expression node. 
             The structural key of the ref as a new instance (record). 
        
        
            
            Evaluates a null expression (trivial: the result is the null expression)
            
             Null expression node. 
             Null expression 
        
        
            
            Evaluates treat expression given a result for the argument to the treat.
            
             Treat expression 
             Null if the argument is of the given type, the argument otherwise 
        
        
            
            Casts argument to expression.
            
             Cast expression node 
             Result of casting argument 
        
        
            
            Casts an object instance to the specified model type.
            
             Value to cast 
             clr type to which the value is casted to 
             Cast value 
        
        
            
            Evaluate a null expression.
            
             Is null expression 
             A boolean expression describing the result of evaluating the Is Null predicate 
        
        
            
            Supports propagation of preserve and unknown values when evaluating expressions. If any input
            to an expression is marked as unknown, the same is true of the result of evaluating
            that expression. If all inputs to an expression are marked 'preserve', then the result is also
            marked preserve.
            
             Result to markup 
             Expressions contributing to the result 
             Marked up result. 
        
        
            
            Class generating default records for extents. Has a single external entry point, the
             static method.
            
        
        
            
            Initializes a map from primitive scalar types in the C-Space to default values
            used within the placeholder.
            
        
        
            
            Initializes a map from primitive spatial types in the C-Space to default values
            used within the placeholder.
            
        
        
            
            Attempts to retrieve the the default value for the specified primitive type.
            
            A primitive type.
            The default value for the primitive type.
            true if a default value was found, false otherwise.
        
        
            
            Creates a record for an extent containing default values. Assumes the extent is either
            a relationship set or an entity set.
            
            
            Each scalar value appearing in the record is a . A placeholder is created by recursively
            building a record, so an entity record type will return a new record ()
            consisting of some recursively built record for each column in the type.
            
             Extent 
             A default record for the 
        
        
            
            Specialization of  for an entity set extent.
            
        
        
            
            Specialization of  for a relationship set extent.
            
        
        
            
            Returns a placeholder for a specific metadata member.
            
             EdmMember for which to produce a placeholder. 
             Placeholder element for the given member. 
        
        
            
            Given default values for children members, produces a new default expression for the requested (parent) member.
            
             Parent member 
             Default value for parent member 
        
        
            
            Performs join propagation. The basic strategy is to identify changes (inserts, deletes)
            on either side of the join that are related according to the join criteria. Support is restricted
            to conjunctions of equality predicates of the form left property == right property.
            When a group of related changes is identified, rules are applied based on the existence of
            different components (e.g., a left insert + right insert).
            
            
            The joins handled by this class are degenerate in the sense that a row in the 'left' input always
            joins with at most one row in the 'right' input. The restrictions that allow for this assumption
            are described in the update design spec (see 'Level 5 Optimization').
            
            
            Propagation rules for joins are stored in static fields of the class (initialized in the static
            constructor for the class).
            
        
        
            
            Constructs a join propagator.
            
             Result of propagating changes in the left input to the join 
             Result of propagating changes in the right input to the join 
             Join operator in update mapping view over which to propagate changes 
             Handler of propagation for the entire update mapping view 
        
        
            These static dictionaries are initialized by the static constructor for this class.
            They describe for each combination of input elements (the key) propagation rules, which
            are expressions over the input expressions.
            
        
        
            
            Initialize rules.
            
        
        
            
            Initializes propagation rules for a specific input combination.
            
             Describes the elements available in the input 
             Describes the rule for inserts when the operator is an inner join 
             Describes the rule for deletes when the operator is an inner join 
             Describes the rule for inserts when the operator is a left outer join 
             Describes the rule for deletes when the operator is a left outer join 
        
        
            
            Performs join propagation.
            
             Changes propagated to the current join node in the update mapping view. 
        
        
            
            Propagate all changes associated with a particular join key.
            
             Key. 
             Resulting changes are added to this result. 
        
        
            
            Produce a tuple containing joined rows.
            
             Left row. 
             Right row. 
             Result change node; used for type information. 
             Result of joining the input rows. 
        
        
            
            Constructs a new placeholder record for the left hand side of the join. Values taken
            from the join key are injected into the record.
            
             Key producing the left hand side. 
             Mode used to populate the placeholder 
            
            Record corresponding to the type of the left input to the join. Each value in the record is flagged as
            
            except when it is a component of the key.
            
        
        
            
            See 
            
        
        
            
            Produces a hash table of all instances and processes join keys, adding them to the list
            of keys handled by this node.
            
             List of instances (whether delete or insert) for this node. 
             Selectors for key components. 
             A map from join keys to instances. 
        
        
            
            Flags indicating which change elements are available (0-4) and propagation
            rules (0, 5-512)
            
        
        
            
            Extracts equi-join properties from a join condition.
            
            
            Assumptions:
                - Only conjunctions of equality predicates are supported
- 
                    Each equality predicate is of the form (left property == right property). The order
                    is important.
                
Initializes a join predicate visitor. The visitor will populate the given property
            lists with expressions describing the left and right hand side of equi-join
            sub-clauses.
            
        
        
            
            Determine properties from the left and right inputs to an equi-join participating
            in predicate.
            
            
            The property definitions returned are 'aligned'. If the join predicate reads:a = b AND c = d AND e = f
            then the output is as follows:
            leftProperties = {a, c, e}
                rightProperties = {b, d, f}
            See Walker class for an explanation of this coding pattern.
            
        
        
            
            Visit and node after its children have visited. There is nothing to do here
            because only leaf equality nodes contain properties extracted by this visitor.
            
             And expression node 
             Results ignored by this visitor implementation. 
        
        
            
            Perform work for an equality expression node.
            
             Equality expresion node 
             Results ignored by this visitor implementation. 
        
        
            
            Describes the mode of behavior for the .
            
        
        
            
            Produce a null extension record (for outer joins) marked as modified
            
        
        
            
            Produce a null extension record (for outer joins) marked as preserve
            
        
        
            
            Produce a placeholder for a record that is known to exist but whose specific
            values are unknown.
            
        
        
            
            Fills in a placeholder with join key data (also performs a clone so that the
            placeholder can be reused).
            
            
            Clones of placeholder nodes are created when either the structure of the node
            needs to change or the record markup for the node needs to change.
            
        
        
            
            Construct a new placeholder with the shape of the given placeholder. Key values are
            injected into the resulting place holder and default values are substituted with
            either propagator constants or progagator nulls depending on the mode established
            by the  flag.
            
            
            The key is essentially an array of values. The key map indicates that for a particular
            placeholder an expression (keyMap.Keys) corresponds to some ordinal in the key array.
            
             Placeholder to clone 
             Key to substitute 
             Key elements in the placeholder (ordinally aligned with 'key') 
             Mode of operation. 
             Cloned placeholder with key values 
        
        
            
            Tracks roles played by a record as it propagates
            w.r.t. an update mapping view.
            
        
        
            
            No role.
            
        
        
            
            Value is unchanged. Used only for attributes that appear in updates (in other words,
            in both delete and insert set).
            
        
        
            
            Value is a concurrency token. Placeholder for post Beta 2 work.
            
        
        
            
            Value is unknown. Used only for attributes that appear in updates (in other words,
            in both delete and insert set).
            
        
        
            
            Value is a key, and therefore a concurrency value, but it is shared so it
            only needs to be checked in a single table (in the case of entity splitting)
            
        
        
            
            Value is a foreign key.
            
        
        
            
            requires: for structural types, member values are ordinally aligned with the members of the
            structural type.
            Stores a 'row' (or element within a row) being propagated through the update pipeline, including
            markup information and metadata. Internally, we maintain several different classes so that we only
            store the necessary state.
            - StructuralValue (complex types, entities, and association end keys): type and member values,
            one version for modified structural values and one version for unmodified structural values
            (a structural type is modified if its _type_ is changed, not its values
            - SimpleValue (scalar value): flags to describe the state of the value (is it a concurrency value,
            is it modified) and the value itself
            - ServerGenSimpleValue: adds back-prop information to the above (record and position in record
            so that we can set the value on back-prop)
            - KeyValue: the originating IEntityStateEntry also travels with keys. These entries are used purely for
            error reporting. We send them with keys so that every row containing an entity (which must also
            contain the key) has enough context to recover the state entry.
            
            
            Not all memebers of a PropagatorResult are available for all specializations. For instance, GetSimpleValue
            is available only on simple types
            
        
        
            
            Returns simple value stored in this result. Only valid when  is
            true.
            
             Concrete value. 
        
        
            
            Returns nested value. Only valid when  is false.
            
             Ordinal of value to return (ordinal based on type definition) 
             Nested result. 
        
        
            
            Returns nested value. Only valid when  is false.
            
             Member for which to return a value 
             Nested result. 
        
        
            
            Returns all structural values. Only valid when  is false.
            
             Values of all structural members. 
        
        
            
            Produces a replica of this propagator result with different flags.
            
             New flags for the result. 
             This result with the given flags. 
        
        
            
            Copies this result replacing its value. Used for cast. Requires a simple result.
            
             New value for result 
             Copy of this result with new value. 
        
        
            
            Replaces parts of the structured result.
            
             A replace-with map applied to simple (i.e. not structural) values. 
             Result with requested elements replaced. 
        
        
            
            A result is merged with another when it is merged as part of an equi-join.
            
            
            In theory, this should only ever be called on two keys (since we only join on
            keys). We throw in the base implementation, and override in KeyResult. By convention
            the principal key is always the first result in the chain (in case of an RIC). In
            addition, entity entries always appear before relationship entries.
            
             
             Result to merge with. 
             Merged result. 
        
        
            
            Aligns a value returned from the store with the expected type for the member.
            
             Value to convert. 
             Metadata for the member being set. 
             Converted return value 
        
        
            
            Gets a value indicating whether this result is null.
            
        
        
            
            Gets a value indicating whether this is a simple (scalar) or complex
            structural) result.
            
        
        
            
            Gets flags describing the behaviors for this element.
            
        
        
            
            Gets all state entries from which this result originated. Only set for key
            values (to ensure every row knows all of its source entries)
            
        
        
            
            Gets record from which this result originated. Only set for server generated
            results (where the record needs to be synchronized).
            
        
        
            
            Gets structural type for non simple results. Only available for entity and complex type
            results.
            
        
        
            
            Gets the ordinal within the originating record for this result. Only set
            for server generated results (otherwise, returns -1)
            
        
        
            
            Gets the identifier for this entry if it is a server-gen key value (otherwise
            returns -1)
            
        
        
            
            Where a single result corresponds to multiple key inputs, they are chained using this linked list.
            By convention, the first entry in the chain is the 'dominant' entry (the principal key).
            
        
        
            
            Converts records to new instance expressions. Assumes that all inputs come from a single data reader (because
            it caches record layout). If multiple readers are used, multiple converters must be constructed in case
            the different readers return different layouts for types.
            
            
            Conventions for modifiedProperties enumeration: null means all properties are modified, empty means none,
            non-empty means some.
            
        
        
            
            Initializes a new converter given a command tree context. Initializes a new record layout cache.
            
            
            Sets 
            
        
        
            
            Context used to produce expressions.
            
        
        
            
            Converts original values in a state entry to a DbNewInstanceExpression. The record must be either an entity or
            a relationship set instance.
            
            
            This method is not thread safe.
            
             Gets state entry this record is associated with. 
             Indicates how to determine whether a property is modified. 
             New instance expression. 
        
        
            
            Converts current values in a state entry to a DbNewInstanceExpression. The record must be either an entity or
            a relationship set instance.
            
            
            This method is not thread safe.
            
             Gets state entry this record is associated with. 
             Indicates how to determine whether a property is modified. 
             New instance expression. 
        
        
            
            This class determines the state entries contributing to an expression
            propagated through an update mapping view (values in propagated expressions
            remember where they come from)
            
        
        
            
            Finds all markup associated with the given source.
            
             Source expression. Must not be null. 
             Translator containing session information. 
             Table from which the exception was thrown (must not be null). 
             Markup. 
        
        
            
            Processes changes applying to a table by merging inserts and deletes into updates
            where appropriate.
            
            
            This class is essentially responsible for identifying inserts, deletes
            and updates in a particular table based on the 
            produced by value propagation w.r.t. the update mapping view for that table.
            Assumes the change node includes at most a single insert and at most a single delete
            for a given key (where we have both, the change is treated as an update).
            
        
        
            
            Constructs processor based on the contents of a change node.
            
             Table for which changes are being processed. 
        
        
            
            For testing purposes only
            
        
        
            
            Gets metadata for the table being modified.
            
        
        
            
            Gets a map from column ordinal to property descriptions for columns that are components of the table's
            primary key.
            
        
        
            
            Returns the edges of the graph
            
        
        
            
            Gets comparer used to resolve identifiers to actual 'owning' key values (e.g. across referential constraints)
            
        
        
            
            Maps from tables to all "source" referential constraints (where the table declares
            foreign keys)
            
        
        
            
            Maps from tables to all "target" referential constraints (where the table is
            referenced by a foreign key)
            
        
        
            
            Tracks whether any function commands exist in the current payload.
            
        
        
            
            Gets translator producing this graph.
            
        
        
            
            For function commands, we infer constraints based on relationships and entities. For instance,
            we always insert an entity before inserting a relationship referencing that entity. When dynamic
            and function UpdateCommands are mixed, we also fall back on this same interpretation.
            
        
        
            
            Describes an update command's foreign key (source or target)
            
        
        
            
            Constructor
            
             Sets Metadata 
             Record containing key value 
             Indicates whether the source or target end of the constraint is being pulled 
             Indicates whether this is an insert dependency or a delete dependency 
        
        
            
            Initialize foreign key object for the target of a foreign key.
            
             Sets Metadata 
             Record containing key value 
             Indicates whether the key value is being inserted or deleted 
             Outputs key object 
             true if the record contains key values for this constraint; false otherwise 
        
        
            
            Initialize foreign key object for the source of a foreign key.
            
             Sets Metadata 
             Record containing key value 
             Indicates whether the key value is being inserted or deleted 
             Outputs key object 
             true if the record contains key values for this constraint; false otherwise 
        
        
            
            Foreign key metadata.
            
        
        
            
            Foreign key value.
            
        
        
            
            Indicates whether this is an inserted or deleted key value.
            
        
        
            
            Equality comparer for ForeignKey class.
            
        
        
            
            This class implements compilation of DML operation requests to some
            format (e.g. canonical query tree or T-SQL)
            
        
        
            
            Initialize an update compiler.
            
             Update context. 
        
        
            
            Builds a delete command.
            
             Value of the row being deleted. 
             Context for the table containing row. 
             Delete command. 
        
        
            
            Builds an update command.
            
             Old value of the row being updated. 
             New value for the row being updated. 
             Context for the table containing row. 
             Update command. 
        
        
            
            Builds insert command.
            
             Row to insert. 
             Context for the table we're inserting into. 
             Insert command. 
        
        
            
            Determines column/value used to set values for a row.
            
            
            The following columns are not included in the result:
            
                - Keys in non-insert operations (keys are only set for inserts).
- Values flagged 'preserve' (these are values the propagator claims are untouched).
- Server generated values.
Expression binding representing the table. 
             Row containing values to set. 
             
             Context for table. 
             Determines whether key columns and 'preserve' columns are omitted from the list. 
             Dictionary listing server generated identifiers. 
             DbExpression describing result projection for server generated values. 
             Indicates whether the row must be touched because it produces a value (e.g. computed) 
             Column value pairs. 
        
        
            
            Determines predicate used to identify a row in a table.
            
            
            Columns are included in the list when:
                - They are keys for the table
- They are concurrency values
Expression binding representing the table containing the row 
             Values for the row being located. 
             Values being updated (may be null). 
             Context for the table containing the row. 
             Output parameter indicating whether a row must be touched (whether it's being modified or not) because it contains a concurrency value 
             Column/value pairs. 
        
        
            
            This class performs to following tasks to persist C-Space changes to the store:
                - Extract changes from the entity state manager
- Group changes by C-Space extent
- For each affected S-Space table, perform propagation (get changes in S-Space terms)
- Merge S-Space inserts and deletes into updates where appropriate
- Produce S-Space commands implementing the modifications (insert, delete and update SQL statements)
For testing purposes only
            
        
        
            
            Registers any referential constraints contained in the state entry (so that
            constrained members have the same identifier values). Only processes relationships
            with referential constraints defined.
            
             State entry 
        
        
            
            Yields all relationship state entries with the given key as an end.
            
        
        
            
            Persists state manager changes to the store.
            
             Total number of state entries affected. 
        
        
            
            Accept changes to entities and relationships processed by this translator instance.
            
             Number of state entries affected. 
        
        
            
            Gets extents for which this translator has identified changes to be handled
            by the standard update pipeline.
            
             Enumeration of modified C-Space extents. 
        
        
            
            Gets extents for which this translator has identified changes to be handled
            by function mappings.
            
             Enumreation of modified C-Space extents. 
        
        
            
            Produce dynamic store commands for this translator's changes.
            
             Database commands in a safe order 
        
        
            
            Gets a metadata wrapper for the given type. The wrapper makes
            certain tasks in the update pipeline more efficient.
            
             
             Structural type 
             Metadata wrapper 
        
        
            
            Returns error when it is not possible to order update commands. Argument is the 'remainder', or commands
            that could not be ordered due to a cycle.
            
        
        
            
            Creates a command in the current context.
            
             DbCommand tree 
             DbCommand produced by the current provider. 
        
        
            
            Helper method to allow the setting of parameter values to update stored procedures.
            Allows the DbProvider an opportunity to rewrite the parameter to suit provider specific needs.
            
             Parameter to set. 
             The type of the parameter. 
             The value to which to set the parameter. 
        
        
            
            Retrieve all modified entries from the state manager.
            
        
        
            
            Retrieve all required/optional/value entries into the state manager. These are entries that --
            although unmodified -- affect or are affected by updates.
            
        
        
            
            Validates and tracks a state entry being processed by this translator.
            
        
        
            
            effects: given an entity key and a set, adds key to the set iff. the corresponding entity
            is:
            not a stub (or 'key') entry, and;
            not a core element in the update pipeline (it's not being directly modified)
            
        
        
            
            Retrieve a change node for an extent. If none exists, creates and registers a new one.
            
             Extent for which to return a change node. 
             Change node for requested extent. 
        
        
            
            Retrieve a list of state entries being processed by custom user functions.
            
             Extent for which to return entries. 
             List storing the entries. 
        
        
            
            Gets workspace used in this session.
            
        
        
            
            Gets key manager that handles interpretation of keys (including resolution of
            referential-integrity/foreign key constraints)
            
        
        
            
            Gets the view loader metadata wrapper for the current workspace.
            
        
        
            
            Gets record converter which translates state entry records into propagator results.
            
        
        
            
            Get the connection used for update commands.
            
        
        
            
            Gets command timeout for update commands. If null, use default.
            
        
        
            
            Class validating relationship cardinality constraints. Only reasons about constraints that can be inferred
            by examining change requests from the store.
            (no attempt is made to ensure consistency of the store subsequently, since this would require pulling in all
            values from the store).
            
        
        
            
            Relationships registered in the validator.
            
        
        
            
            Relationships the validator determines are required based on registered entities.
            
        
        
            
            Cache used to store relationship sets with ends bound to entity sets.
            
        
        
            
            Add an entity to be tracked by the validator. Requires that the input describes an entity.
            
             State entry for the entity being tracked. 
        
        
            
            Add a relationship to be tracked by the validator.
            
             Relationship set to which the given record belongs. 
             Relationship record. Must conform to the type of the relationship set. 
             State entry for the relationship being tracked 
        
        
            
            Validates cardinality constraints for all added entities/relationships.
            
        
        
            
            Determines the net change in relationship count.
            For instance, if the directional relationship is added 2 times and deleted 3, the return value is -1.
            
        
        
            
            Determine which relationship sets reference the given entity set.
            
             Entity set for which to identify relationships 
             Relationship sets referencing the given entity set 
        
        
            
            An instance of an actual or expected relationship. This class describes one direction
            of the relationship.
            
        
        
            
            Entity key for the entity being referenced by the relationship.
            
        
        
            
            Name of the end referencing the entity key.
            
        
        
            
            Name of the end the entity key references.
            
        
        
            
            State entry containing this relationship.
            
        
        
            
            Reference to the relationship set.
            
        
        
            
            Reference to next 'equivalent' relationship in circular linked list.
            
        
        
            
            Requires: 'other' must refer to the same relationship metadata and the same target entity and
            must not already be a part of an equivalent set.
            Adds the given relationship to linked list containing all equivalent relationship instances
            for this relationship (e.g. all orders associated with a specific customer)
            
        
        
            
            Returns all relationships in equivalence set.
            
        
        
            
            Determines the number of add and delete operations contained in this equivalence set.
            
        
        
            
            Retrieves update mapping views and dependency information for update mapping views. Acts as a wrapper around
            the metadata workspace (and allows direct definition of update mapping views for test purposes).
            
        
        
            
            Constructor specifying a metadata workspace to use for mapping views.
            
        
        
            
            For a given extent, returns the function mapping translator.
            
             Association set or entity set for which to retrieve a translator 
             Function translator or null if none exists for this extent 
        
        
            
            Returns store tables affected by modifications to a particular C-layer extent. Although this
            information can be inferred from the update view, we want to avoid compiling or loading
            views when not required. This information can be directly determined from mapping metadata.
            
             C-layer extent. 
             Affected store tables. 
        
        
            
            Gets information relevant to the processing of an AssociationSet in the update pipeline.
            Caches information on first retrieval.
            
        
        
            
            Determines whether the given member maps to a server-generated column in the store.
            Requires: InitializeExtentInformation has been called for the extent being persisted.
            
             Entity set containing member. 
             
             Member to lookup 
             Whether the member is server generated in some context 
        
        
            
            Determines whether the given member maps to a column participating in an isnull
            condition. Useful to determine if a nullability constraint violation is going to
            cause roundtripping problems (e.g. if type is based on nullability of a 'non-nullable'
            property of a derived entity type)
            
        
        
            
            Utility method reading value from dictionary within read lock.
            
        
        
            
            Utility method checking for membership of element in set within read lock.
            
        
        
            
            Initializes all information relevant to the entity set.
            
             Association set or entity set to load. 
             
             Function to evaluate to produce a result. 
             
        
        
            
            Yields all members appearing in function mapping result bindings.
            
             Set mapping to examine 
             All result bindings 
        
        
            
            Gets all model properties mapped to server generated columns.
            
        
        
            
            Gets all store columns participating in is null conditions.
            
        
        
            
            Gets all model properties mapped to given columns.
            
        
        
            
            Enumerates all mapping fragments in given set mapping.
            
        
        
            
            Returns all bottom-level mappings (e.g. conditions and scalar property mappings but not complex property mappings
            whose components are returned)
            
        
        
            
            Represents a simple value condition of the form (value IS NULL), (value IS NOT NULL)
            or (value EQ X). Supports IEquatable(Of ValueCondition) so that equivalent conditions
            can be identified.
            
        
        
            
            Traverse the tree and perform the following rewrites:
            1. Flatten unions contained as left children of LOJs: LOJ(A, Union(B, C)) -> LOJ(A, B, C).
            2. Rewrite flat LOJs into nested LOJs. The nesting is determined by FKs between right cell table PKs.
            Example: if we have an LOJ(A, B, C, D) and we know there are FKs from C.PK and D.PK to B.PK,
            we want to rewrite into this - LOJ(A, LOJ(B, C, D)).
            3. As a special case we also look into LOJ driving node (left most child in LOJ) and if it is an IJ,
            then we consider attaching LOJ children to nodes inside IJ based on the same principle as above.
            Example: LOJ(IJ(A, B, C), D, E, F) -> LOJ(IJ(LOJ(A, D), B, LOJ(C, E)), F) iff D has FK to A and E has FK to C.
            This normalization enables FK-based join elimination in plan compiler, so for a query such as
            "select e.ID from ABCDSet" we want plan compiler to produce "select a.ID from A" instead of
            "select a.ID from A LOJ B LOJ C LOJ D".
            
        
        
            
            A class that handles creation of cells from the meta data information.
            
        
        
            
            Boolean members have a closed domain and are enumerated when domains are established i.e. (T, F) instead of (notNull).
            Query Rewriting is exercised over every domain of the condition member. If the member contains not_null condition
            for example, it cannot generate a view for partitions (member=T), (Member=F). For this reason we need to expand the cells
            in a predefined situation (below) to include sub-fragments mapping individual elements of the closed domain.
            Enums (a planned feature) need to be handled in a similar fashion.
            Find booleans that are projected with a not_null condition
            Expand ALL cells where they are projected. Why? See Unit Test case NullabilityConditionOnBoolean5.es
            Validation will fail because it will not be able to validate rewritings for partitions on the 'other' cells.
            
        
        
            
            Given a cell, a member and a boolean condition on that member, creates additional cell
            which with the specified restriction on the member in addition to original condition.
            e.i conjunction of original condition AND member in newCondition
            Creation fails when the original condition contradicts new boolean condition
            ViewTarget tells whether MemberPath is in Cquery or SQuery
            
        
        
            
            Takes in a JoinTreeNode and a Contition Property Map and creates an BoolExpression
            for the Condition Map.
            
        
        
            
            This class holds some configuration information for the view generation code.
            
        
        
            
            To measure a single thing at a time.
            
        
        
            
            Perf op being measured.
            
        
        
            
            Sets time for  for the individual timer.
            
        
        
            
            Sets time for  since the last call to .
            
        
        
            
            If true then view generation will produce eSQL, otherwise CQTs only.
            
        
        
            
            Callers can set elements in this list.
            
        
        
            
            Encapsulates a slot in a particular cql block.
            
        
        
            
            This class represents the constants or members that that can be referenced in a C or S Cell query.
            In addition to fields, may represent constants such as types of fields, booleans, etc.
            
        
        
            
            Returns true if this is semantically equivalent to .
            
        
        
            
            Creates new  that is qualified with .CqlAlias.
            If current slot is composite (such as , then this method recursively qualifies all parts
            and returns a new deeply qualified slot (as opposed to ).
            
        
        
            
            Returns the alias corresponding to the slot based on the , e.g., "CPerson1_pid".
            Derived classes may override this behavior and produce aliases that don't depend on .
            
        
        
            
            Given the slot and the , generates eSQL corresponding to the slot.
            If slot is a qualified slot,  is ignored. Returns the modified
            
            .
            
             
             outputMember is non-null if this slot is not a constant slot 
             
             indicates the appropriate indentation level (method can ignore it) 
        
        
            
            Given the slot and the input , generates CQT corresponding to the slot.
            
        
        
            
            Given fields in  and , remap and merge them.
            
        
        
            
            Given two lists  and , merge them and returnthe resulting slots,
            i.e., empty slots from one are overridden by the slots from the other.
            
        
        
            
            A class that can compare slots based on their contents.
            
        
        
            
            Returns true if  and  are semantically equivalent.
            
        
        
            
            Creates a qualified slot "block_alias.slot_alias"
            
        
        
            
            Creates new  that is qualified with .CqlAlias.
            If current slot is composite (such as , then this method recursively qualifies all parts
            and returns a new deeply qualified slot (as opposed to ).
            
        
        
            
            Delegates alias generation to the leaf slot in the qualified chain.
            
        
        
            
            Walks the chain of s starting from the current one and returns the original slot.
            
        
        
            
            This class represents slots for expressions over boolean variables, e.g., _from0, _from1, etc
            
        
        
            
            Creates a boolean slot for expression that comes from originalCellNum, i.e.,
            the value of the slot is  and the name is "_from{}", e.g., _from2
            
        
        
            
            The actual value of the slot - could be !
            
        
        
            
            A boolean corresponding to the original cell number (_from0)
            
        
        
            
            Returns "_from0", "_from1" etc.  is ignored.
            
        
        
            
            A class to capture cql blocks responsible for case statements generating multiconstants, i.e., complex types, entities, discriminators, etc.
            
        
        
            
            A class that holds an expression of the form "(SELECT .. FROM .. WHERE) AS alias".
            Essentially, it allows generating Cql query in a localized manner, i.e., all global decisions about nulls, constants,
            case statements, etc have already been made.
            
        
        
            
            Initializes a  with the SELECT (), FROM (
            
            ),
            WHERE (), AS ().
            
        
        
            
            Essentially, SELECT. May be replaced with another collection after block construction.
            
        
        
            
            FROM inputs.
            
        
        
            
            WHERER.
            
        
        
            
            Alias of the whole block for cql generation.
            
        
        
            
            See  for more info.
            
        
        
            
            Returns a string corresponding to the eSQL representation of this block (and its children below).
            
        
        
            
            Returns a string corresponding to the CQT representation of this block (and its children below).
            
        
        
            
            For the given  creates a  qualified with
            
            of the current block:
            ".slot_alias"
            
        
        
            
            Returns true iff  is being projected by this block.
            
        
        
            
            Generates "A, B, C, ..." for all the slots in the block.
            
        
        
            
            Generates "NewRow(A, B, C, ...)" for all the slots in the block.
            If =true then generates "A" for the only slot that is marked as
            
            .
            
        
        
            
            Initializes context positioning in the join tree that owns the .
            For more info see .
            
        
        
            
            Searches the input  for the property that represents the current .
            In all cases except JOIN, the  is returned as is.
            In case of JOIN, .JoinVarX.JoinVarY...blockVar is returned.
            See  for more info.
            
        
        
            
            Returns all the slots for this block (SELECT).
            
        
        
            
            Returns all the child (input) blocks of this block (FROM).
            
        
        
            
            Returns the where clause of this block (WHERE).
            
        
        
            
            Returns an alias for this block that can be used for "AS".
            
        
        
            
            The class represents a position of a  in a join tree.
            It is expected that the join tree is left-recursive (not balanced) and looks like this:
            ___J___
            /       \
            L3/         \R3
            /           \
            __J__           \
            /     \           \
            L2/       \R2         \
            /         \           \
            _J_          \           \
            /   \          \           \
            L1/     \R1        \           \
            /       \          \           \
            CqlBlock1   CqlBlock2   CqlBlock3   CqlBlock4
            Example of s for the s:
            block#   m_parentQualifiers   m_indexInParentQualifiers   m_leafQualifier    FindInput(row) = ...
            1          (L2, L3)                    0                      L1             row.(L3.L2).L1
            2          (L2, L3)                    0                      R1             row.(L3.L2).R1
            3          (L2, L3)                    1                      R2             row.(L3).R2
            4          (L2, L3)                    2                      R3             row.().R3
            
        
        
            
            Creates a  containing the case statememt for the  and projecting other slots as is from its child (input). CqlBlock with SELECT (slots),
            
             
            
            indicates which slot in  corresponds to the case statement being generated by this block
            
             
             
             
             
        
        
            
            A class that represents leaf s in the  tree.
            
        
        
            
            Creates an cql block representing the  (the FROM part).
            SELECT is given by , WHERE by  and AS by
            
            .
            
        
        
            
            Represents to the various Join nodes in the view: IJ, LOJ, FOJ.
            
        
        
            
            Creates a join block (type given by ) with SELECT (), FROM (
            
            ),
            ON ( - one for each child except 0th), WHERE (true), AS (
            
            ).
            
        
        
            
            Represents a complete ON clause "slot1 == slot2 AND "slot3 == slot4" ... for two s.
            
        
        
            
            Adds an  element for a join of the form  =
            
            .
            
        
        
            
            Generates eSQL string of the form "LeftSlot1 = RightSlot1 AND LeftSlot2 = RightSlot2 AND ...
            
        
        
            
            Generates CQT of the form "LeftSlot1 = RightSlot1 AND LeftSlot2 = RightSlot2 AND ...
            
        
        
            
            Represents an expression between slots of the form: LeftSlot = RightSlot
            
        
        
            
            Generates eSQL string of the form "leftSlot = rightSlot".
            
        
        
            
            Generates CQT of the form "leftSlot = rightSlot".
            
        
        
            
            A class that keeps track of slot information in a .
            
        
        
            
            Creates a  for a  X with information about whether this slot is needed by X's parent
            (), whether X projects it () along with the slot value (
            
            ) and
            the output member path ( (for regular/non-boolean slots) for the slot.
            
        
        
            
            Creates a  for a  X with information about whether this slot is needed by X's parent
            (), whether X projects it () along with the slot value (
            
            ) and
            the output member path ( (for regular/non-boolean slots) for the slot.
            
             
             
             
             
            
            We need to ensure that _from variables are never null since view generation uses 2-valued boolean logic. If
            
            =true, the generated Cql adds a condition (AND  NOT NULL). This flag is used only for boolean slots.
            
        
        
            
            If slot is required by the parent. Can be reset to false in  method.
            
        
        
            
            If the node is capable of projecting this slot.
            
        
        
            
            The slot represented by this .
            
        
        
            
            The output member path of this slot.
            
        
        
            
            Whether to add AND NOT NULL to Cql.
            
        
        
            
            Sets the  to false.
            Note we don't have a setter because we don't want people to set this field to true after the object has been created.
            
        
        
            
            Generates eSQL representation of the slot. For different slots, the result is different, e.g., "_from0", "CPerson1.pid", "TREAT(....)".
            
        
        
            
            Generates CQT representation of the slot.
            
        
        
            
            Returns true iff this slot is required by the 's parent.
            Can be reset to false by calling  method.
            
        
        
            
            Returns true iff this slot is projected by this .
            
        
        
            
            Returns the output memberpath of this slot
            
        
        
            
            Returns the slot value corresponfing to this object.
            
        
        
            
            Returns the Cql alias for this slot, e.g., "CPerson1_Pid", "_from0", etc
            
        
        
            
            Returns true if Cql generated for the slot needs to have an extra AND IS NOT NULL condition.
            
        
        
            
            Represents Union nodes in the  tree.
            
        
        
            
            Creates a union block with SELECT (), FROM (), WHERE (true), AS (
            
            ).
            
        
        
            
            This class is responsible for generation of CQL after the cell merging process has been done.
            
        
        
            
            Given the generated , the  for the multiconstant fields,
            the  that maps different paths of the entityset (for which the view is being generated) to slot indexes in the view,
            creates an object that is capable of generating the Cql for .
            
        
        
            
            The generated view from the cells.
            
        
        
            
            Case statements for the multiconstant fields.
            
        
        
            
            Mapping from member paths to slot indexes.
            
        
        
            
            Number of booleans in the view, one per cell (from0, from1, etc...)
            
        
        
            
            A counter used to generate aliases for blocks.
            
        
        
            
            Identifiers used in the Cql queries.
            
        
        
            
            Returns eSQL query that represents a query/update mapping view for the view information that was supplied in the constructor.
            
        
        
            
            Returns Cqtl query that represents a query/update mapping view for the view information that was supplied in the constructor.
            
        
        
            
            Generates a  tree that is capable of generating the actual Cql strings.
            
        
        
            
            Given the  tree, generates the case statement blocks on top of it (using
            
            ) and returns the resulting tree.
            One block per case statement is generated. Generated blocks are nested, with the  is the innermost input.
            
        
        
            
            Given the  tree generated by the cell merging process and the
            
            ,
            generates the block tree for the case statement at or past the startSlotNum, i.e., only for case statements that are beyond startSlotNum.
            
        
        
            
            Given the slot () and its corresponding case statement (
            
            ),
            generates the slotinfos for the cql block producing the case statement.
            
        
        
            
            Returns the next slot starting at  that is present in the
            
            .
            
        
        
            
            Returns an array of size  which indicates the slots that are needed to constuct value at
            
            ,
            e.g., CPerson may need pid and name (say slots 2 and 5 - then bools[2] and bools[5] will be true.
            
            
            must be part of 
            
        
        
            
            Given the , returns the output member path that this slot contributes/corresponds to in the extent view.
            If the slot corresponds to one of the boolean variables, returns null.
            
        
        
            
            Returns the slot index for the following member path: ., e.g., CPerson1.pid
            
        
        
            
            Describes top-level query mapping view projection of the form:
            SELECT VALUE CASE
            WHEN Discriminator = DiscriminatorValue1 THEN EntityType1(...)
            WHEN Discriminator = DiscriminatorValue2 THEN EntityType2(...)
            ...
            Supports optimizing queries to leverage user supplied discriminator values
            in TPH mappings rather than introducing our own. This avoids the need
            to introduce a CASE statement in the store.
            
        
        
            
            Expression retrieving discriminator value from projection input.
            
        
        
            
            Map from discriminator values to implied entity type.
            
        
        
            
            Map from entity property to expression generating value for that property. Note that
            the expression must be the same for all types in discriminator map.
            
        
        
            
            Map from entity relproperty to expression generating value for that property. Note that
            the expression must be the same for all types in discriminator map.
            
        
        
            
            EntitySet to which the map applies.
            
        
        
            
            Determines whether the given query view matches the discriminator map pattern.
            
        
        
            
            Utility method determining whether two expressions appearing within the same scope
            are equivalent. May return false negatives, but no false positives. In other words,
            x != y --> !ExpressionsCompatible(x, y)
            but does not guarantee
            x == y --> ExpressionsCompatible(x, y)
            
        
        
            
            Holds the view generated for a given OFTYPE(Extent, Type) combination.
            
        
        
            
            Creates generated view object for the combination of the  and the .
            This constructor is used for regular cell-based view generation.
            
        
        
            
            Creates generated view object for the combination of the  and the .
            This constructor is used for FK association sets only.
            
        
        
            
            Creates generated view object for the combination of the .Set and the
            
            .
            This constructor is used for user-defined query views only.
            
        
        
            
            Given an extent and its corresponding view, invokes the parser to check if the view definition is syntactically correct.
            Iff parsing succeeds:  and  are set to the parse result and method returns true,
            otherwise if parser has thrown a catchable exception, it is returned via  parameter,
            otherwise exception is re-thrown.
            
        
        
            
            Uses query rewriting to determine the case statements, top-level WHERE clause, and the "used views"
            for a given type to be generated.
            Step 1: Method "EnsureIsFullyMapped" goes through the (C) schema metadata and checks whether the query for each
            entity shape can be rewritten from the C fragment queries.
            This step tracks the "used views" which will later be passed to "basic view generation" (i.e., creation of the FOJ/LOJ/IJ/Union relational expressions)
            Step 2: GetCaseStatements constructs the required case statements and the top-level WHERE clause.
            This may add some extra views to "used views".
            Now we know what views are used overall.
            Step 3: We remap _from variables to new _from variables that are renumbered for used views.
            This is done to comply with the numbering scheme in the old algorithm - and to produce more readable views.
            Step 4: From the constructed relational expression (OpCellTree), we can tell whether a top-level WHERE clause is needed or not.
            (Usually, it's needed only in certain cases for OfType() views.)
            
        
        
            
            Validates each mapping fragment/cell (Qc = Qs)
            by unfolding update views in Qs and checking query equivalence
            
        
        
            
            Given a LeftCellWrapper for the S-side fragment and a non-nullable colum m, return a CQuery with nullability condition
            appended to Cquery of c-side member that column m is mapped to
            
        
        
            
            Checks whether non nullable S-side members are mapped to nullable C-query.
            It is possible that C-side attribute is nullable but the fragment's C-query is not
            
        
        
            
            Denotes the fact that the key of the current tuple comes from a specific extent, or association role.
            
        
        
            
            A class that ties up all the literals in boolean expressions.
            Conditions represented by s need to be synchronized with s,
            which may be modified upon calling . This is what the method
            
            is used for.
            
        
        
            
            Creates a term expression of the form: " in  with all possible values being
            
            ".
            
        
        
            
            Creates a term expression of the form: " in  with all possible values being
            
            ".
            
        
        
            
            Fixes the range of the literal using the new values provided in  and returns a boolean expression corresponding to the new value.
            
        
        
            
            See .
            
        
        
            
            See .
            
        
        
            
            See .
            
        
        
            
            See .
            
        
        
            
            Checks if the identifier in this is the same as the one in .
            
        
        
            
            Get the hash code based on the identifier.
            
        
        
            
            This class compares boolean expressions.
            
        
        
            
            This class compares just the identifier in boolean expressions.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Given the  for the block in which the expression resides, converts the expression into eSQL.
            
        
        
            
            Given the  for the input, converts the expression into CQT.
            
        
        
            
            Whether the boolean expression contains only OneOFTypeConst variables.
            
        
        
            
            A class to denote a case statement:
            CASE
            WHEN condition1 THEN value1
            WHEN condition2 THEN value2
            ...
            END
            
        
        
            
            Creates a case statement for the  with no clauses.
            
        
        
            
            The field.
            
        
        
            
            All the WHEN THENs.
            
        
        
            
            Value for the else clause.
            
        
        
            
            Recursively qualifies all s and returns a new deeply qualified
            
            .
            
        
        
            
            Adds an expression of the form "WHEN  THEN ".
            This operation is not allowed after the  call.
            
        
        
            
            Simplifies the  so that unnecessary WHEN/THENs for nulls/undefined values are eliminated.
            Also, adds an ELSE clause if possible.
            
        
        
            
            Generates eSQL for the current .
            
        
        
            
            Generates CQT for the current .
            
        
        
            
            Returns true if the  depends on (projects) its slot in THEN value or ELSE value.
            
        
        
            
            A class that stores WHEN condition THEN value.
            
        
        
            
            Creates WHEN condition THEN value.
            
        
        
            
            Returns WHEN condition.
            
        
        
            
            Returns THEN value.
            
        
        
            
            This class is just a wrapper over case statements so that we don't pollute the  class itself.
            
        
        
            
            Creates a slot for .
            
        
        
            
            The actual case statement.
            
        
        
            
            Creates new  that is qualified with .CqlAlias.
            If current slot is composite (such as , then this method recursively qualifies all parts
            and returns a new deeply qualified slot (as opposed to ).
            
        
        
            
            This class contains a pair of cell queries which is essentially a
            constraint that they are equal. A cell is initialized with a C or an
            S Query which it exposes as properties but it also has the notion of
            "Left" and "Right" queries -- left refers to the side for which a
            view is being generated
            For example, to
            specify a mapping for CPerson to an SPerson table, we have
            [(p type Person) in P : SPerson]
            (p.pid, pid)
            (p.name, name)
            This really denotes the equality of two queries:
            (C) SELECT (p type Person) AS D1, p.pid, p.name FROM p in P WHERE D1
            (S) SELECT True AS D1, pid, name FROM SPerson WHERE D1
            For more details, see the design doc
            
        
        
            
            Copy Constructor
            
        
        
            
            Wraps from0, from1, etc. boolean fields that identify the source of tuples (# of respective cell query) in the view statements.
            
        
        
            
            Creates a boolean expression for the variable name specified by , e.g., 0 results in from0, 1 into from1.
            
        
        
            
            e.g., from0, from1.
            
        
        
            
            Returns the slotName corresponding to this, ie., _from0 etc.
            
        
        
            
            Copy Constructor
            
        
        
            
            This class stores the C or S query. For example,
            (C) SELECT (p type Person) AS D1, p.pid, p.name FROM p in P WHERE D1
            (S) SELECT True AS D1, pid, name FROM SPerson WHERE D1
            The cell query is stored in a "factored" manner for ease of
            cell-merging and cell manipulation. It contains:
            * Projection: A sequence of slots and a sequence of boolean slots (one
            for each cell in the extent)
            * A From part represented as a Join tree
            * A where clause
            
        
        
            
            Copy Constructor
            
        
        
            
            [WARNING}
            After cell merging boolean expression can (most likely) have disjunctions (OR node)
            to represent the condition that a tuple came from either of the merged cells.
            In this case original where clause IS MERGED CLAUSE with OR.
            So don't call this after merging. It'll throw or debug assert from within GetConjunctsFromWC()
            
        
        
            
            Whether query has a 'SELECT DISTINCT' on top.
            
        
        
            
            This class denotes a constant that can be stored in multiconstants or projected in fields.
            
        
        
            
            Represents scalar constants within a finite set that are not specified explicitly in the domain.
            Currently only used as a Sentinel node to prevent expression optimization
            
        
        
            
            Returns true if this constant contains not null.
            Implemented in  class, all other implementations return false.
            
        
        
            
            Generates eSQL for the constant expression.
            
             
             The member to which this constant is directed 
             
        
        
            
            Generates CQT for the constant expression.
            
             The input row. 
             The member to which this constant is directed 
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            A constant that can be projected in a cell query.
            
        
        
            
            Creates a slot with constant value being .
            
        
        
            
            The actual value.
            
        
        
            
            Returns the value stored in this constant.
            
        
        
            
            Returns true if the domain contains the given Cell Constant
            
        
        
            
            Yields the set of all values in the domain.
            
        
        
            
            Adds AllOtherConstants element to the domain set given by MemberPath
            
        
        
            
            Removes AllOtherConstant element from the domain set given by MemberPath
            
        
        
            
            A class that corresponds to a path in some extent, e.g., Person, Person.addr, Person.addr.state
            Empty path represents path to the extent.
            
        
        
            
            The base entity set.
            
        
        
            
            List of members in the path.
            
        
        
            
            Creates a member path that corresponds to  in the  (or the extent itself).
            
        
        
            
            Creates a member path that corresponds to the .
            
        
        
            
            Creates a path corresponding to .
            
        
        
            
            Creates a member path corresponding to the path .
            
        
        
            
            Returns false iff the path is
            * A descendant of some nullable property
            * A descendant of an optional composition/collection
            * A descendant of a property that does not belong to the basetype/rootype of its parent.
            
        
        
            
            Determines all the identifiers used in the path and adds them to .
            
        
        
            
            Returns true iff all members are nullable properties, i.e., if even one of them is non-nullable, returns false.
            
        
        
            
            Returns a string that has the list of properties in  (i.e., just the last name) if
            
            is false.
            Else the  is added.
            
        
        
            
            Given a member path and an alias, returns an eSQL string correspondng to the fully-qualified name
            
            .path, e.g., T1.Address.Phone.Zip.
            If a subcomponent belongs to subclass, generates a treat for it, e.g. "TREAT(T1 as Customer).Address".
            Or even "TREAT(TREAT(T1 AS Customer).Address as USAddress).Zip".
            
        
        
            
            Returns true if the member denoted by the path corresponds to a scalar (primitive or enum).
            
        
        
            
            Returns true if this path and  are equivalent on the C-side via a referential constraint.
            
        
        
            
            Returns true if  and  are equivalent via a referential constraint in
            
            .
            Requires:  and  correspond to paths in
            
            .
            
        
        
            
            Returns the member path corresponding to that field in the . E.g., given Address.pid, returns PersonAddress.Address.pid.
            For self-associations, such as ManagerEmployee with referential constraints (and we have
            [ManagerEmployee.Employee.mid, ManagerEmployee.Employee.eid, ManagerEmployee.Manager.mid]), given Employee.mid, returns
            ManagerEmployee.Employee.mid or ManagerEmployee.Manager.mid
            Note: the path need not correspond to a key field of an entity set .
            
        
        
            
            If member path identifies a relationship end, return its scope. Otherwise, returns null.
            
        
        
            
            Returns a string of the form "a.b.c" that corresponds to the items in the path. This string can be used for tests or localization.
            If =true, we return a string that is relevant for Cql aliases, else we return the exact path.
            
        
        
            
            Returns a human-readable string corresponding to the path.
            
        
        
            
            Returns the first path item in a non-empty path, otherwise null.
            
        
        
            
            Returns the last path item in a non-empty path, otherwise null.
            
        
        
            
            For non-empty paths returns name of the last path item, otherwise returns name of .
            
        
        
            
            Tells path represents a computed slot.
            
        
        
            
            Returns the default value the slot represented by the path. If no default value is present, returns null.
            
        
        
            
            Returns true if slot represented by the path is part of a key.
            
        
        
            
            Returns true if slot represented by the path is nullable.
            
        
        
            
            If path corresponds to an entity set (empty path) or an association end ( is as association set, and path length is 1),
            returns  associated with the value of the slot represented by this path, otherwise returns null.
            
        
        
            
            Extent of the path.
            
        
        
            
            Returns the type of attribute denoted by the path.
            For example, member type of Person.addr.zip would be integer. For extent, it is the element type.
            
        
        
            
            Returns Cql field alias generated from the path items.
            
        
        
            
            A wrapper around MemberPath that allows members to be marked as ProjectedSlots.
            
        
        
            
            Creates a projected slot that references the relevant celltree node.
            
        
        
            
            True iff  and  types do not match,
            We assume that the mapping loader has already checked that the casts are ok and emitted warnings.
            
        
        
            
            Given a slot and the new mapping, returns the corresponding new slot.
            
        
        
            
            Given the , determines the slots in  that correspond to the entity key for the entity set or the
            association set end. Returns the list of slots.  Returns null if even one of the key slots is not present in slots.
            
             
             corresponds to an entity set or an association end 
        
        
            
            Searches for members in  and returns the corresponding slots in the same order as present in
            . Returns null if even one member is not present in slots.
            
        
        
            
            Searches for  in  and returns the corresponding slot. If none is found, returns null.
            
        
        
            
            Returns the full metadata path from the root extent to this node, e.g., Person.Adrs.zip
            
        
        
            
            Manages s of the members of the types stored in an extent.
            This is a bi-directional dictionary of s to integer indexes and back.
            
        
        
            
            Recursively generates s for the members of the types stored in the .
            
        
        
            
            Creates an empty index.
            
        
        
            
            Returns a non-negative index of the  if found, otherwise -1.
            
        
        
            
            If an index already exists for member, this is a no-op. Else creates the next index available for member and returns it.
            
        
        
            
            Given the , returns the output member path that this slot contributes/corresponds to in the extent view.
            If the slot corresponds to one of the boolean variables, returns null.
            
        
        
            
            Given the index of a boolean variable (e.g., of from1), returns the slot number for that boolean in this.
            
        
        
            
            Given the  corresponding to a boolean slot, returns the cell number that the cell corresponds to.
            
        
        
            
            Returns true if  corresponds to a key slot in the output extent view.
            
        
        
            
            Returns true if  corresponds to a bool slot and not a regular field.
            
        
        
            
            Starting at the , recursively generates s for the fields embedded in it.
            
             
             
             corresponds to a value of an Entity or Complex or Association type 
             indicates whether we need to only collect members that are keys 
        
        
            
            Given the  and one of its s, determine the attributes that are relevant
            for this  and return a  signature corresponding to the
            
            and the attributes.
            If =true, collect the key fields only.
            
             
             
             
            
            the  's type or one of its subtypes
            
             
        
        
            
            Returns the indexes of the key slots corresponding to fields in this for which IsPartOfKey is true.
            
        
        
            
            Returns an enumeration of all members
            
        
        
            
            An abstract class that denotes the boolean expression: "var in values".
            An object of this type can be complete or incomplete.
            An incomplete object is one whose domain was not created with all possible values.
            Incomplete objects have a limited set of methods that can be called.
            
        
        
            
            Creates an incomplete member restriction with the meaning " = ".
            "Partial" means that the  in this restriction is partial - hence the operations on the restriction are limited.
            
        
        
            
            Creates an incomplete member restriction with the meaning " in ".
            
        
        
            
            Creates a complete member restriction with the meaning " in ".
            
        
        
            
            Creates a complete member restriction with the meaning " in ".
            
             
             
            
            all the values that the  can take
            
        
        
            
            Returns a boolean expression that is domain-aware and ready for optimizations etc.
            
             Maps members to the values that each member can take; it can be null in which case the possible and actual values are the same. 
        
        
            
            Creates a complete member restriction based on the existing restriction with possible values for the domain being given by
            
            .
            
        
        
            
            See .
            
        
        
            
            See . Member restriction can be incomplete for this operation.
            
        
        
            
            Member restriction can be incomplete for this operation.
            
        
        
            
            See . Member restriction can be incomplete for this operation.
            
        
        
            
            See . Member restriction can be incomplete for this operation.
            
        
        
            
            Returns the variable in the member restriction.
            
        
        
            
            Returns the values that  is being checked for.
            
        
        
            
            A class that represents NOT(elements), e.g., NOT(1, 2, NULL), i.e., all values other than null, 1 and 2
            
        
        
            
            Creates a negated constant with the  in it.
            
            
            must have no  items
            
        
        
            
            e.g., NOT(1, 2, Undefined)
            
        
        
            
            Returns true if the negated constant contains .
            
        
        
            
            Returns true if the negated constant contains .
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Given a set of positive  generates a simplified negated constant Cql expression.
            Examples:
            - 7, NOT(7, NULL) means NOT(NULL)
            - 7, 8, NOT(7, 8, 9, 10) means NOT(9, 10)
            
        
        
            
            Given the , returns eSQL string corresponding to the op.
            
        
        
            
            A class that denotes "block_alias.booleanVar", e.g., "T1._from2".
            It is a subclass of  with an added block alias.
            
        
        
            
            Creates a boolean of the form ".".
            
        
        
            
            A class that denotes a constant value that can be stored in a multiconstant or in a projected slot of a
            
            .
            
        
        
            
            Creates a scalar constant corresponding to the .
            
        
        
            
            The actual value of the scalar.
            
        
        
            
            A class that denotes the boolean expression: "scalarVar in values".
            See the comments in  for complete and incomplete restriction objects.
            
        
        
            
            Creates a scalar member restriction with the meaning " = ".
            This constructor is used for creating discriminator type conditions.
            
        
        
            
            Creates a scalar member restriction with the meaning " in ".
            
        
        
            
            Creates a scalar member restriction with the meaning " in ".
            
        
        
            
            Fixes the range of the restriction in accordance with .
            Member restriction must be complete for this operation.
            
        
        
            
            Common code for  and  methods.
            
        
        
            
            A constant for storing type values, e.g., a type constant is used to denote (say) a Person type, Address type, etc.
            It essentially encapsulates an EDM nominal type.
            
        
        
            
            Creates a type constant corresponding to the .
            
        
        
            
            The EDM type denoted by this type constant.
            
        
        
            
            Given the  in the output extent view, generates a constructor expression for
            's type, i.e, an expression of the form "Type(....)"
            If  is an association end then instead of constructing an Entity or Complex type, constructs a reference.
            
        
        
            
            Returns the EDM type corresponding to the type constant.
            
        
        
            
            A class that denotes the boolean expression: "varType in values".
            See the comments in  for complete and incomplete restriction objects.
            
        
        
            
            Creates an incomplete type restriction of the form " in ".
            
        
        
            
            Creates an incomplete type restriction of the form " = ".
            
        
        
            
            Creates a complete type restriction of the form " in ".
            
        
        
            
            Requires:  is true.
            
        
        
            
            Given a list of  (which can contain nulls), returns a corresponding list of
            
            s for those types.
            
        
        
            
            A class to denote a part of the WITH RELATIONSHIP clause.
            
        
        
            
            Not supported in this class.
            
        
        
            
            This class encapsulates "external" calls from view/MDF generation to other System.Data.Entity features.
            
        
        
            
            Compiles eSQL  and returns .
            Guarantees type match of lambda variables and .
            Passes thru all excepions coming from .
            
        
        
            
            Finds Types (possibly without any members) that have no mapping specified
            
        
        
            
            Finds errors related to splitting Conditions
            1. Condition value is repeated across multiple types
            2. A Column/attribute is mapped but also used as a condition
            
        
        
            
            When we are dealing with an update view, this method
            finds out if the given Table is mapped to different EntitySets
            
        
        
            
            Finds out whether fragments (partitions) violate constraints that would produce an invalid mapping.
            We compare equality/disjointness/containment for all 2-combinations of fragments.
            Error is reported if given relationship on S side is not maintained on the C side.
            If we know nothing about S-side then any relationship on C side is valid.
            
        
        
            
            Gets the types on the Edm side mapped in this fragment wrapper.
            It also returns an out parameter indicating whether there were any C side conditions.
            
        
        
            
            Return true if there were any Store conditions on this cell wrapper.
            
        
        
            
            A class representing a set of constraints. It uses generic parameters
            so that we can get strong typing and avoid downcasts
            
        
        
            
            Represents a relation signature that lists all projected
            slots of two cell queries in a cell after projection. So if
            SPerson1.Disc is present in the cellquery (and part of the where
            clause) but not in the projected slots, it is missing from a ViewCellRelation
            
        
        
            
            Represents a slot that is projected by C and S queries in a cell.
            
        
        
            
            Creates a view cell slot that corresponds to  in some cell. The  and
            
            represent the
            slots in the left and right queries of the view cell.
            
        
        
            
            Given a list of , converts the left/right slots (if left is true/false) to a human-readable string.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Not supported in this class.
            
        
        
            
            Returns the slot corresponding to the left cellquery.
            
        
        
            
            Returns the slot corresponding to the right cellquery.
            
        
        
            
            Checks that if a DISTINCT operator exists between some C-Extent and S-Extent, there are no additional
            mapping fragments between that C-Extent and S-Extent.
            We need to enforce this because DISTINCT is not understood by viewgen machinery, and two fragments may be merged
            despite one of them having DISTINCT.
            
        
        
            
            Find the Foreign Key Associations that relate EntitySets used in these left cell wrappers and
            add any equivalence facts between sets implied by 1:1 associations.
            We can collect other implication facts but we don't have a scenario that needs them( yet ).
            
        
        
            
            Checks:
            1) Concurrency token is not defined in this Extent's ElementTypes' derived types
            2) Members with concurrency token should not have conditions specified
            
        
        
            
            Entry point for View Generation
            
             Generated Views for EntitySets 
        
        
            
            Entry point for Type specific generation of Query Views
            
        
        
            
            Verifies that only legal expressions exist in a user-defined query mapping view.
            
        
        
            
            Determines whether the given view is valid.
            
             Query view to validate. 
             Mapping in which view is declared. 
             
             
             Errors in view definition. 
        
        
            
            Retrieves all complex types that can be constructed as part of the view.
            
        
        
            
            Recursively identify complex types.
            
        
        
            
            Gets all entity types in scope for this view.
            
        
        
            
            The visitor validates that the QueryView for an AssociationSet uses the same EntitySets when
            creating the ends that were used in CSDL. Since the Query View is already validated, we can expect to
            see only a very restricted set of expressions in the tree.
            
        
        
            
            metadata exception class
            
        
        
            
            Initializes a new instance of the  class with a default message.
            
        
        
            
            Initializes a new instance of the  class with the specified message.
            
            The exception message.
        
        
            
            Initializes a new instance of the  class with the specified message and inner exception.
            
            The exception message.
            
            The exception that is the cause of this .
            
        
        
            
            constructor for deserialization
            
        
        
            
            Determine whether we are inside an ASP.NET application.
            
             true if we are running inside an ASP.NET application 
        
        
            
            This method accepts a string parameter that represents a path in a Web (specifically,
            an ASP.NET) application -- one that starts with a '~' -- and resolves it to a
            canonical file path.
            
            
            The implementation assumes that you cannot have file names that begin with the '~'
            character. (This is a pretty reasonable assumption.) Additionally, the method does not
            test for the existence of a directory or file resource after resolving the path.
            CONSIDER: Caching the reflection results to satisfy subsequent path resolution requests.
            ISSUE: Need to maintain context for a set of path resolution requests, so that we
            don't run into a situation where an incorrect context is applied to a path resolution
            request.
            
             A path in an ASP.NET application 
             A fully-qualified path 
        
        
            
            Add the given primitive type to the primitive type cache
            
             The primitive type to add 
        
        
            
            Try and get the mapped type for the given primitiveTypeKind in the given dataspace
            
             The primitive type kind of the primitive type to retrieve 
             The facets to use in picking the primitive type 
             The resulting type 
             Whether a type was retrieved or not 
        
        
            
            Get the list of the primitive types for the given dataspace
            
        
        
            
            Internal helper class for query
            
        
        
            
            Internal helper class for query
            
        
        
            
            Creates a new instance of perspective class so that query can work
            ignorant of all spaces
            
             runtime metadata container 
             target dataspace for the perspective 
        
        
            
            Given the type in the target space and the member name in the source space,
            get the corresponding member in the target space
            For e.g.  consider a Conceptual Type 'Foo' with a member 'Bar' and a CLR type
            'XFoo' with a member 'YBar'. If one has a reference to Foo one can
            invoke GetMember(Foo,"YBar") to retrieve the member metadata for bar
            
             The type in the target perspective 
             the name of the member in the source perspective 
             Whether to do case-sensitive member look up or not 
             returns the member in target space, if a match is found 
        
        
            
            Returns the extent in the target space, for the given entity container.
            
             name of the entity container in target space 
             name of the extent 
             Whether to do case-sensitive member look up or not 
             extent in target space, if a match is found 
             returns true, if a match is found otherwise returns false 
        
        
            
            Returns the function import in the target space, for the given entity container.
            
        
        
            
            Get the default entity container
            returns null for any perspective other
            than the CLR perspective
            
             The default container 
        
        
            
            Get an entity container based upon the strong name of the container
            If no entity container is found, returns null, else returns the first one///
            
             name of the entity container 
             true for case-insensitive lookup 
             returns the entity container if a match is found 
             returns true if a match is found, otherwise false 
        
        
            
            Gets a type with the given name in the target space.
            
             full name of the type 
             true for case-insensitive lookup 
             TypeUsage for the type 
             returns true if a match was found, otherwise false 
        
        
            
            Returns overloads of a function with the given name in the target space.
            
             namespace of the function 
             name of the function 
             true for case-insensitive lookup 
             function overloads 
             returns true if a match was found, otherwise false 
        
        
            
            returns the primitive type for a given primitive type kind.
            
        
        
            
            Return the metadata workspace
            
        
        
            
            Returns the target dataspace for this perspective
            
        
        
            
            Creates a new instance of perspective class so that query can work
            ignorant of all spaces
            
        
        
            
            Given a clrType attempt to return the corresponding target type from
            the worksapce
            
             The clr type to resolve 
             an out param for the typeUsage to be resolved to 
             true if a TypeUsage can be found for the target type 
        
        
            
            Given the type in the target space and the member name in the source space,
            get the corresponding member in the target space
            For e.g.  consider a Conceptual Type Foo with a member bar and a CLR type
            XFoo with a member YBar. If one has a reference to Foo one can
            invoke GetMember(Foo,"YBar") to retrieve the member metadata for bar
            
             The type in the target perspective 
             the name of the member in the source perspective 
             true for case-insensitive lookup 
             returns the edmMember if a match is found 
             true if a match is found, otherwise false 
        
        
            
            Look up a type in the target data space based upon the fullName
            
             fullName 
             true for case-insensitive lookup 
             The type usage object to return 
             True if the retrieval succeeded 
        
        
            
            get the default container
            
             The default container 
        
        
            
            Given a map, dereference the EdmItem, ensure that it is
            an EdmType and return a TypeUsage for the type, otherwise
            return null.
            
             The OC map to use to get the EdmType 
             A TypeUsage for the mapped EdmType or null if no EdmType was mapped 
        
        
            
            Helper Class for converting SOM objects to metadata objects
            This class should go away once we have completely integrated SOM and metadata
            
        
        
            
            Static constructor for creating FacetDescription objects that we use
            
        
        
            
            Converts a schema from SOM into Metadata
            
             The SOM schema to convert 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
        
        
            
            Loads a schema element
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The item resulting from the load 
        
        
            
            Converts an entity container from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The entity container object resulting from the convert 
        
        
            
            Converts an entity type from SOM to metadata
            This method should only build the internally contained and vertical part of the EntityType (keys, properties, and base types) but not
            sideways parts (NavigationProperties) that go between types or we risk trying to access and EntityTypes keys, from the referential constraint,
            before the base type, which has the keys, is setup yet.
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The entity type object resulting from the convert 
        
        
            
            Converts an complex type from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The complex type object resulting from the convert 
        
        
            
            Converts an association type from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The association type object resulting from the convert 
        
        
            
            Initialize the end member if its not initialized already
            
        
        
            
            Converts an entity set from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The entity set object resulting from the convert 
        
        
            
            Converts an entity set from SOM to metadata
            
             The SOM element to process 
             
             The entity set object resulting from the convert 
        
        
            
            Converts an association set from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             
             The new GlobalItem objects that are created as a result of this conversion 
             The association set object resulting from the convert 
        
        
            
            Converts a property from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The property object resulting from the convert 
        
        
            
            Converts a navigation property from SOM to metadata
            
             entity type on which this navigation property was declared 
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             The new GlobalItem objects that are created as a result of this conversion 
             The property object resulting from the convert 
        
        
            
            Converts a function from SOM to metadata
            
             The SOM element to process 
             The provider manifest to be used for conversion 
             The item collection for currently existing metadata objects 
             For function imports, the entity container including the function declaration 
             The new GlobalItem objects that are created as a result of this conversion 
             The function object resulting from the convert 
        
        
            
            Converts SchemaEnumType instance to Metadata EnumType.
            
             SchemaEnumType to be covnerted. 
             Global item objects where newly created Metadata EnumType will be added. 
        
        
            
            Converts an SOM Documentation node to a metadata Documentation construct
            
             The SOM element to process 
             The Documentation object resulting from the convert operation 
        
        
            
            Converts the ParameterDirection into a ParameterMode
            
             The ParameterDirection to convert 
             ParameterMode 
        
        
            
            Apply the facet values
            
             The source TypeUsage 
             The primitive or enum type of the target 
        
        
            
            Populate the facets on the TypeUsage object for a property
            
             The property containing the information 
             The type usage object where to populate facet 
        
        
            
            Get a primitive type when converting a CSDL schema
            
             The schema type representing the primitive type 
             The provider manifest for retrieving the store types 
        
        
            
            Cache containing item collection and type usages to support looking up and generating
            metadata types.
            
        
        
            
            Gets type usage for the given type with null facet values. Caches usage to avoid creating
            redundant type usages.
            
        
        
            
            Gets collection type usage for the given type with null facet values. Caches usage to avoid creating
            redundant type usages.
            
        
        
            
            DataSpace
            
        
        
            
            OSpace indicates the item in the clr space
            
        
        
            
            CSpace indicates the item in the CSpace - edm primitive types +
            types defined in csdl
            
        
        
            
            SSpace indicates the item in the SSpace
            
        
        
            
            Mapping between OSpace and CSpace
            
        
        
            
            Mapping between CSpace and SSpace
            
        
        
            
            Return all assemblies loaded in the current AppDomain that are not signed
            with the Microsoft Key.
            
             A list of assemblies 
        
        
            
            This method returns a list of assemblies whose contents depend on whether we
            are running in an ASP.NET environment. If we are indeed in a Web/ASP.NET
            scenario, we pick up the assemblies that all page compilations need to
            reference. If not, then we simply get the list of assemblies referenced by
            the entry assembly.
            
             A list of assemblies 
        
        
            
            if two assemblies have the same full name, we will consider them as the same.
            for example,
            both of x and y have the full name as "{RES, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null}",
            although they are different instances since the ReflectionOnly field in them are different, we sitll
            consider them as the same.
            
        
        
            
            This class encapsulates the error information for a generic EDM error.
            
        
        
            
            Constructs a EdmSchemaError object.
            
             The explanation of the error. 
        
        
            Gets the error message.
            The error message.
        
        
            
            Class for representing a collection of items in Edm space.
            
        
        
            
            constructor that loads the metadata files from the specified xmlReaders
            
             xmlReaders where the CDM schemas are loaded 
             Paths (URIs)to the CSDL files or resources 
        
        
            
            Initializes a new instance of the  class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist.
            
            The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist.
        
        
            Initializes a new instance of the  class.
            The entity data model.
        
        
            
            Initializes a new instance of the  class by using the paths where the conceptual schema definition language (CSDL) files exist.
            
            The paths where the conceptual schema definition language (CSDL) files exist.
        
        
            
            constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
            encountered during load as the out parameter errors.
            
            xmlReaders where the CDM schemas are loaded
            Paths (URIs)to the CSDL files or resources
            An out parameter to return the collection of errors encountered while loading
        
        
            
            Public constructor that loads the metadata files from the specified XmlReaders, and
            returns the list of errors encountered during load as the out parameter 'errors'.
            
             XmlReader objects where the EDM schemas are loaded 
             Paths (URIs) to the CSDL files or resources 
             A flag to indicate whether to throw if LoadItems returns errors 
        
        
            
            Gets canonical versions of InitializerMetadata instances. This avoids repeatedly
            compiling delegates for materialization.
            
        
        
            
            Manages user defined function definitions.
            
        
        
            
            Given an InitializerMetadata instance, returns the canonical version of that instance.
            This allows us to avoid compiling materialization delegates repeatedly for the same
            pattern.
            
        
        
            
            Load stuff from xml readers - this now includes XmlReader instances created over embedded
            resources. See the remarks section below for some useful information.
            
             A list of XmlReader instances 
             
             whether this is a entity data model or provider data model 
             provider manifest from which the primitive type definition comes from 
             item collection to add the item after loading 
             
        
        
            
            Load metadata from a SOM schema directly
            
             The SOM schemas to load from 
             The provider manifest used for loading the type 
             item collection in which primitive types are present 
             The newly created items 
        
        
            
            Returns a collection of the  objects.
            
            
            A ReadOnlyCollection object that represents a collection of the
            
            objects.
            
        
        
            
            Returns a collection of the  objects with the specified conceptual model version.
            
            
            A ReadOnlyCollection object that represents a collection of the
            
            objects.
            
            The conceptual model version.
        
        
            
            Given the canonical primitive type, get the mapping primitive type in the given dataspace
            
             canonical primitive type 
             The mapped scalar type 
        
        
            
            Generates function definition or returns a cached one.
            Guarantees type match of declaration and generated parameters.
            Guarantees return type match.
            Throws internal error for functions without definition.
            Passes thru exceptions occured during definition generation.
            
        
        
            
            Generates function definition or returns a cached one.
            Guarantees type match of declaration and generated parameters.
            Guarantees return type match.
            Throws internal error for functions without definition.
            Passes thru exceptions occured during definition generation.
            
        
        
            
            Factory method that creates an .
            
            
            CSDL artifacts to load. Must not be null.
            
            
            Paths to CSDL artifacts. Used in error messages. Can be null in which case
            the base Uri of the XmlReader will be used as a path.
            
            
            The collection of errors encountered while loading.
            
            
             instance if no errors encountered. Otherwise null.
            
        
        
            Gets the conceptual model version for this collection.
            The conceptual model version for this collection.
        
        
            
            conventional oc mapping cache, the locking mechanism is provided by AsssemblyCache
            
        
        
            
            cache for loaded assembly
            
        
        
            
            Please do NOT call this method outside of AssemblyCache. Since AssemblyCache maintain the lock,
            this method doesn't provide any locking mechanism.
            
        
        
            
            Please do NOT call this method outside of AssemblyCache. Since AssemblyCache maintain the lock,
            this method doesn't provide any locking mechanism.
            
        
        
            
            Class representing Edm error for an inmemory EdmItem
            
        
        
            
            Construct the EdmItemError with an error message
            
             The error message for this validation error 
        
        
            
            This class encapsulates the error information for a schema error that was encountered.
            
        
        
            
            Constructs a EdmSchemaError object.
            
             The explanation of the error. 
             The code associated with this error. 
             The severity of the error. 
        
        
            
            Constructs a EdmSchemaError object.
            
             The explanation of the error. 
             The code associated with this error. 
             The severity of the error. 
             The exception that caused the error to be filed. 
        
        
            
            Constructs a EdmSchemaError object.
            
             The explanation of the error. 
             The code associated with this error. 
             The severity of the error. 
             
             
             
        
        
            
            Constructs a EdmSchemaError object.
            
             The explanation of the error. 
             The code associated with this error. 
             The severity of the error. 
             
             
             
             The exception that caused the error to be filed. 
        
        
            Returns the error message.
            The error message.
        
        
            Gets the error code.
            The error code.
        
        
            Gets the severity level of the error.
            
            One of the  values. The default is
            
            .
            
        
        
            Gets the line number where the error occurred.
            The line number where the error occurred.
        
        
            Gets the column where the error occurred.
            The column where the error occurred.
        
        
            Gets the location of the schema that contains the error. This string also includes the name of the schema at the end.
            The location of the schema that contains the error.
        
        
            Gets the name of the schema that contains the error.
            The name of the schema that contains the error.
        
        
            Gets a string representation of the stack trace at the time the error occurred.
            A string representation of the stack trace at the time the error occurred.
        
        
            
            Defines the different severities of errors that can occur when validating an Entity Framework model.
            
        
        
            
            A warning that does not prevent the model from being used.
            
        
        
            
            An error that prevents the model from being used.
            
        
        
            
            Class for representing the validator
            
        
        
            
            Validate a collection of items in a batch
            
             A collection of items to validate 
             List of validation errors that were previously collected by the caller. if it encounters more errors, it adds them to this list of errors 
        
        
            
            Event hook to perform preprocessing on the validation error before it gets added to a list of errors
            
             The event args for this event 
        
        
            
            Invoke the event hook Add an error to the list
            
             The list of errors to add to 
             The new error to add 
        
        
            
            Allows derived classes to perform additional validation
            
             The item to perform additional validation 
             A collection of errors 
        
        
            
            Validate an item object
            
             The item to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an CollectionType object
            
             The CollectionType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an ComplexType object
            
             The ComplexType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an EdmType object
            
             The EdmType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an EntityType object
            
             The EntityType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an Facet object
            
             The Facet object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an MetadataItem object
            
             The MetadataItem object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an EdmMember object
            
             The item object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an MetadataProperty object
            
             The MetadataProperty object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an NavigationProperty object
            
             The NavigationProperty object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an GetPrimitiveType object
            
             The GetPrimitiveType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an EdmProperty object
            
             The EdmProperty object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an RefType object
            
             The RefType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an SimpleType object
            
             The SimpleType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an StructuralType object
            
             The StructuralType object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Validate an TypeUsage object
            
             The TypeUsage object to validate 
             An error collection for adding validation errors 
             A dictionary keeping track of items that have been validated 
        
        
            
            Gets or Sets whether the validator should skip readonly items
            
        
        
            
            Represents a end of a Association Type
            
        
        
            
            Initializes a new instance of the RelationshipEndMember class
            
        
        
            
            Represents the edm member class
            
        
        
            
            Initializes a new instance of EdmMember class
            
             name of the member 
             type information containing info about member's type and its facet 
        
        
            Returns the name of this member.
            The name of this member.
        
        
            
            Sets the member to read only mode. Once this is done, there are no changes
            that can be done to this class
            
        
        
            
            Change the declaring type without doing fixup in the member collection
            
        
        
            
            Returns the identity of the member
            
        
        
            
            Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database 
            column for this property. In the conceptual model, this should align with the corresponding property from the entity class 
            and should not be changed.
            
            The name of this member.
        
        
            Gets the type on which this member is declared.
            
            A  object that represents the type on which this member is declared.
            
        
        
            
            Gets the instance of the  class that contains both the type of the member and facets for the type.
            
            
            A  object that contains both the type of the member and facets for the type.
            
        
        
            
            Tells whether this member is marked as a Computed member in the EDM definition
            
        
        
            
            Tells whether this member's Store generated pattern is marked as Identity in the EDM definition
            
        
        
            
            Initializes a new instance of RelationshipEndMember
            
             name of the relationship end member 
             Ref type that this end refers to 
             The multiplicity of this relationship end 
            Thrown if name or endRefType arguments is null
            Thrown if name argument is empty string
        
        
            Access the EntityType of the EndMember in an association.
            The EntityType of the EndMember in an association.
        
        
            Gets the operational behavior of this relationship end member.
            
            One of the  values. The default is
            
            .
            
        
        
            Gets the multiplicity of this relationship end member.
            
            One of the  values.
            
        
        
            
            Initializes a new instance of AssociationEndMember
            
             name of the association end member 
             Ref type that this end refers to 
             multiplicity of the end 
        
        
            
            Creates a read-only AssociationEndMember instance.
            
            The name of the association end member.
            The reference type for the end.
            The multiplicity of the end.
            Flag that indicates the delete behavior of the end.
            Metadata properties to be associated with the instance.
            The newly created AssociationEndMember instance.
            The specified name is null or empty.
            The specified reference type is null.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            cached dynamic method to set a CLR property value on a CLR instance
            
        
        
            
            Class for representing an Association set
            
        
        
            
            Class for representing a relationship set
            
        
        
            
            Class for representing a entity set
            
        
        
            
            The constructor for constructing the EntitySet with a given name and an entity type
            
             The name of the EntitySet 
             The db schema 
             The db table 
             The provider specific query that should be used to retrieve the EntitySet 
             The entity type of the entities that this entity set type contains 
            Thrown if the name or entityType argument is null
        
        
            Returns the name of the current entity or relationship set.
            The name of the current entity or relationship set.
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Change the entity container without doing fixup in the entity set collection
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the identity for this item as a string
            
        
        
            
            Gets escaped provider specific SQL describing this entity set.
            
        
        
            
            Gets or sets the name of the current entity or relationship set. 
            If this property is changed from store-space, the mapping layer must also be updated to reflect the new name. 
            To change the table name of a store space  use the Table property. 
            
            The name of the current entity or relationship set.
            Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
        
        
            Gets the entity container of the current entity or relationship set.
            
            An  object that represents the entity container of the current entity or relationship set.
            
            Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state
        
        
            
            Gets the entity type of this .
            
            
            An  object that represents the entity type of this
            
            .
            
            Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
        
        
            
            Gets or sets the database table name for this entity set.
            
            if value passed into setter is null
            Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
        
        
            
            Gets or sets the database schema for this entity set.
            
            if value passed into setter is null
            Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
        
        
            
            The constructor for constructing the RelationshipSet with a given name and an relationship type
            
             The name of the RelationshipSet 
             The db schema 
             The db table 
             The provider specific query that should be used to retrieve the EntitySet 
             The entity type of the entities that this entity set type contains 
            Thrown if the argument name or entityType is null
        
        
            
            Gets the relationship type of this .
            
            
            An  object that represents the relationship type of this
            
            .
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Initializes a new instance of AssocationSet with the given name and the association type
            
             The name of the Assocation set 
             The association type of the entities that this associationship set type contains 
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Adds the given end to the collection of ends
            
        
        
            
            Creates a read-only AssociationSet instance from the specified parameters.
            
            The name of the association set.
            The association type of the elements in the association set.
            The entity set for the source association set end.
            The entity set for the target association set end.
            Metadata properties to be associated with the instance.
            The newly created AssociationSet instance.
            The specified name is null or empty.
            The specified association type is null.
            
            The entity type of one of the ends of the specified
            association type does not match the entity type of the corresponding entity set end.
            
        
        
            
            Gets the association related to this .
            
            
            An  object that represents the association related to this
            
            .
            
        
        
            
            Gets the ends of this .
            
            
            A collection of type  that contains the ends of this
            
            .
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents built-in type kind for this
            
            .
            
        
        
            
            Class representing a AssociationSet End
            
        
        
            
            Initializes a new instance of AssocationSetEnd
            
             Entity set that this end refers to 
             The association set which this belongs to 
             The end member of the association set which this is an instance of 
            Thrown if either the role,entitySet, parentSet or endMember arguments are null
        
        
            
            Returns the name of the End role for this .
            
            
            The name of the End role for this .
            
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the parent association set of this .
            
            
            An  object that represents the parent association set of this
            
            .
            
            Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
        
        
            
            Gets the End member that this  object corresponds to.
            
            
            An  object that represents the End member that this
            
            object corresponds to.
            
            Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
        
        
            
            Gets the name of the End for this .
            
            
            The name of the End for this .
            
        
        
            
            Gets the name of the End role for this .
            
            
            The name of the End role for this .
            
            Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
        
        
            Gets the entity set referenced by this End role. 
            
            An  object that represents the entity set referred by this End role.
            
        
        
            
            Gets the identity of this item
            
        
        
            
            Describes an association/relationship between two entities in the conceptual model or a foreign key relationship 
            between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property.
            If a foreign key is defined the  property will be true and the  property will contain details of the foreign keys
            
        
        
            
            Represents the Relationship type
            
        
        
            
            Represents the Entity Type
            
        
        
            
            Represents the Structural Type
            
        
        
            
            Base EdmType class for all the model types
            
        
        
            
            Initializes a new instance of EdmType
            
        
        
            
            Constructs a new instance of EdmType with the given name, namespace and version
            
             name of the type 
             namespace of the type 
             dataSpace in which this type belongs to 
            Thrown if either the name, namespace or version arguments are null
        
        
            
            Initialize the type. This method must be called since for bootstraping we only call the constructor.
            This method will help us initialize the type
            
             The edm type to initialize with item attributes 
             The name of this type 
             The namespace of this type 
             dataSpace in which this type belongs to 
             If the type is abstract 
             The base type for this type 
        
        
            Returns the full name of this type.
            The full name of this type. 
        
        
            
            Returns an instance of the  whose element type is this type.
            
            
            The  object whose element type is this type.
            
        
        
            
            check to see if otherType is among the base types,
            
             if otherType is among the base types, return true, otherwise returns false. when othertype is same as the current type, return false. 
        
        
            
            check to see if otherType is among the sub-types,
            
             if otherType is among the sub-types, returns true, otherwise returns false. when othertype is same as the current type, return false. 
        
        
            
            Check if this type is assignable from otherType
            
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Returns all facet descriptions associated with this type.
            
             Descriptions for all built-in facets for this type. 
        
        
            
            Direct accessor for the field Identity. The reason we need to do this is that for derived class,
            they want to cache things only when they are readonly. Plus they want to check for null before
            updating the value
            
        
        
            
            Returns the identity of the edm type
            
        
        
            Gets the name of this type.
            The name of this type.
        
        
            Gets the namespace of this type.
            The namespace of this type.
        
        
            Gets a value indicating whether this type is abstract or not. 
            true if this type is abstract; otherwise, false. 
            Thrown if the setter is called on instance that is in ReadOnly state
        
        
            Gets the base type of this type.
            The base type of this type.
            Thrown if the setter is called on instance that is in ReadOnly state
            Thrown if the value passed in for setter will create a loop in the inheritance chain
        
        
            Gets the full name of this type.
            The full name of this type. 
        
        
            
            If OSpace, return the CLR Type else null
            
            Thrown if the setter is called on instance that is in ReadOnly state
        
        
            
            Internal parameterless constructor for bootstrapping edmtypes
            
        
        
            
            Initializes a new instance of Structural Type with the given members
            
             name of the structural type 
             namespace of the structural type 
             dataSpace in which this edmtype belongs to 
            Thrown if either name, namespace or version arguments are null
        
        
            
            Get the declared only members of a particular type
            
        
        
            
            Validates the types and sets the readOnly property to true. Once the type is set to readOnly,
            it can never be changed.
            
        
        
            
            Validates a EdmMember object to determine if it can be added to this type's
            Members collection. If this method returns without throwing, it is assumed
            the member is valid.
            
             The member to validate 
        
        
            
            Adds a member to this type
            
             The member to add 
        
        
            
            Adds a member to this type.
            
            The member to add.
            
            Indicates whether the addition is forced, regardless of
            whether read-only is set.
            
            
            Adding a NavigationProperty to an EntityType introduces a circular dependency between
            EntityType and AssociationEndMember, which is worked around by calling this method.
            This is the case of OneToOneMappingBuilder, in the designer. Must not be used in other context.
            
        
        
            Removes a member from this type.
            The member to remove.
        
        
            Gets the list of members on this type.
            
            A collection of type  that contains a set of members on this type.
            
        
        
            
            Initializes a new instance of Entity Type
            
             name of the entity type 
             namespace of the entity type 
             dataSpace in which this edmtype belongs to 
            Thrown if either name, namespace or version arguments are null
        
        
            
            Adds the specified property to the list of keys for the current entity.  
            
            if member argument is null
            Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type
            If the EntityType instance is in ReadOnly state
        
        
            
            Makes this property readonly
            
        
        
            
            Checks for each property to be non-null and then adds it to the member collection
            
             members for this type 
             the membersCollection to which the members should be added 
        
        
            
            Checks for each key member to be non-null
            also check for it to be present in the members collection
            and then adds it to the KeyMembers collection.
            Throw if the key member is not already in the members
            collection. Cannot do much other than that as the
            Key members is just an Ienumerable of the names
            of the members.
            
             the list of keys (member names) to be added for the given type 
        
        
            Removes the specified key member from the collection.
            The key member to remove.
        
        
            Gets the list of all the key members for the current entity or relationship type.
            
            A  object that represents the list of key members for the current entity or relationship type.
            
        
        
            Gets the list of all the key properties for this entity type.
            The list of all the key properties for this entity type.
        
        
            
            Returns the list of the property names that form the key for this entity type
            Perf Bug #529294: To cache the list of member names that form the key for the entity type
            
        
        
            
            Initializes a new instance of relationship type
            
             name of the relationship type 
             namespace of the relationship type 
             dataSpace in which this edmtype belongs to 
            Thrown if either name, namespace or version arguments are null
        
        
            Gets the list of ends for this relationship type. 
            
            A collection of type  that contains the list of Ends for this relationship type.
            
        
        
            
            Initializes a new instance of Association Type with the given name, namespace, version and ends
            
             name of the association type 
             namespace of the association type 
             is this a foreign key (FK) relationship? 
             dataSpace in which this AssociationType belongs to 
            Thrown if either the name, namespace or version attributes are null
        
        
            
            Validates a EdmMember object to determine if it can be added to this type's
            Members collection. If this method returns without throwing, it is assumed
            the member is valid.
            
             The member to validate 
            Thrown if the member is not an AssociationEndMember
        
        
            
            Sets this item to be read-only, once this is set, the item will never be writable again.
            
        
        
            
            Add the given referential constraint to the collection of referential constraints
            
        
        
            
            Creates a read-only AssociationType instance from the specified parameters.
            
            The name of the association type.
            The namespace of the association type.
            Flag that indicates a foreign key (FK) relationship.
            The data space for the association type.
            The source association end member.
            The target association end member.
            A referential constraint.
            Metadata properties to be associated with the instance.
            The newly created AssociationType instance.
            The specified name is null or empty.
            The specified namespace is null or empty.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the list of ends for this .
            
            
            A collection of type  that contains the list of ends for this
            
            .
            
        
        
            Gets or sets the referential constraint.
            The referential constraint.
        
        
            
            Gets the list of constraints for this .
            
            
            A collection of type  that contains the list of constraints for this
            
            .
            
        
        
            Gets the Boolean property value that specifies whether the column is a foreign key.
            A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key.
        
        
            
            Represents the structure of an . In the conceptual-model this represents the shape and structure 
            of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet.  
            
        
        
            
            Initializes a new instance of Entity Type
            
             name of the entity type 
             namespace of the entity type 
             dataspace in which the EntityType belongs to 
            Thrown if either name, namespace or version arguments are null
        
        
             name of the entity type 
             namespace of the entity type 
             dataspace in which the EntityType belongs to 
             key members for the type 
             members of the entity type [property and navigational property] 
            Thrown if either name, namespace or version arguments are null
        
        
            
            cached dynamic method to construct a CLR instance
            
        
        
            
            Validates a EdmMember object to determine if it can be added to this type's
            Members collection. If this method returns without throwing, it is assumed
            the member is valid.
            
             The member to validate 
            Thrown if the member is not a EdmProperty
        
        
            
            Returns a  object that references this
            
            .
            
            
            A  object that references this
            
            .
            
        
        
            
            Attempts to get the property name for the assoication between the two given end
            names.  Note that this property may not exist if a navigation property is defined
            in one direction but not in the other.
            
             the relationship for which a nav property is required 
             the 'from' end of the association 
             the 'to' end of the association 
             the property name, or null if none was found 
             true if a property was found, false otherwise 
        
        
            
            The factory method for constructing the EntityType object.
            
            The name of the entity type.
            The namespace of the entity type.
            The dataspace in which the EntityType belongs to.
            Name of key members for the type.
            Members of the entity type (primitive and navigation properties).
            Metadata properties to be associated with the instance.
            Thrown if either name, namespace arguments are null.
            The newly created EntityType will be read only.
        
        
            
            Adds the specified navigation property to the members of this type.
            The navigation property is added regardless of the read-only flag.
            
            The navigation property to be added.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            Gets the declared navigation properties associated with the entity type.
            The declared navigation properties associated with the entity type.
        
        
            
            Gets the navigation properties of this .
            
            
            A collection of type  that contains the list of navigation properties on this
            
            .
            
        
        
            Gets the list of declared properties for the entity type.
            The declared properties for the entity type.
        
        
            Gets the collection of declared members for the entity type.
            The collection of declared members for the entity type.
        
        
            
            Gets the list of properties for this .
            
            
            A collection of type  that contains the list of properties for this
            
            .
            
        
        
            
            cached dynamic method to construct a CLR instance
            
        
        
            
            Initializes a new instance of Complex Type with properties from the type.
            
             The CLR type to construct from 
        
        
            
            Creates an SHA256 hash of a description of all the metadata relevant to the creation of a proxy type
            for this entity type.
            
        
        
            
            Creates a description of all the metadata relevant to the creation of a proxy type
            for this entity type.
            
        
        
            
            cached dynamic method to construct a CLR instance
            
        
        
            
            Gets a collision resistent (SHA256) hash of the information used to build
            a proxy for this type.  This hash is very, very unlikely to be the same for two
            proxies generated from the same CLR type but with different metadata, and is
            guarenteed to be the same for proxies generated from the same metadata.  This
            means that when EntityType comparison fails because of metadata eviction,
            the hash can be used to determine whether or not a proxy is of the correct type.
            
        
        
            
            Represents an enumeration type that has a reference to the backing CLR type.
            
        
        
            
            Represents an enumeration type.
            
        
        
            
            Class representing a simple type
            
        
        
            
            The default constructor for SimpleType
            
        
        
            
            The constructor for SimpleType.  It takes the required information to identify this type.
            
             The name of this type 
             The namespace name of this type 
             dataspace in which the simple type belongs to 
            Thrown if either name, namespace or version arguments are null
        
        
            
            A collection of enumeration members for this enumeration type
            
        
        
            
            Underlying type of this enumeration type.
            
        
        
            
            Initializes a new instance of the EnumType class. This default constructor is used for bootstraping
            
        
        
            
            Initializes a new instance of the EnumType class by using the specified ,
             and .
            
             The name of this enum type. 
             The namespace this enum type belongs to. 
             Underlying type of this enumeration type. 
             Indicates whether the enum type is defined as flags (i.e. can be treated as a bit field). 
             DataSpace this enum type lives in. Can be either CSpace or OSpace 
            Thrown if name or namespace arguments are null
            
            Note that enums live only in CSpace.
            
        
        
            
            Initializes a new instance of the EnumType class from CLR enumeration type.
            
             CLR enumeration type to create EnumType from. 
            
            Note that this method expects that the  is a valid CLR enum type
            whose underlying type is a valid EDM primitive type.
            Ideally this constructor should be protected and internal (Family and Assembly modifier) but
            C# does not support this. In order to not expose this constructor to everyone internal is the
            only option.
            
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Adds the specified member to the member collection
            
             Enumeration member to add to the member collection. 
        
        
             Returns the kind of the type 
        
        
             Gets a collection of enumeration members for this enumeration type. 
        
        
             Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field) 
        
        
             Gets the underlying type for this enumeration type. 
        
        
            
            Initializes a new instance of ClrEnumType class with properties from the CLR type.
            
             The CLR type to construct from. 
             CSpace namespace name. 
             CSpace type name. 
        
        
            
            Gets the clr type backing this enum type.
            
        
        
            
            Get the full CSpaceTypeName for this enum type.
            
        
        
            
            Specifies the kinds of item attributes in the conceptual model. 
            
        
        
            
            An enumeration member indicating that an item attribute is System
            
        
        
            
            An enumeration member indicating that an item attribute is Extended.
            
        
        
            
            List of all the built in types
            
        
        
            
            Association Type Kind
            
        
        
            
            AssociationSetEnd Kind
            
        
        
            
            AssociationSet Kind
            
        
        
            
            Association Type Kind
            
        
        
            
            EntitySetBase Kind
            
        
        
            
            Entity Type Base Kind
            
        
        
            
            Collection Type Kind
            
        
        
            
            Collection Kind
            
        
        
            
            Complex Type Kind
            
        
        
            
            Documentation Kind
            
        
        
            
            DeleteAction Type Kind
            
        
        
            
            Edm Type Kind
            
        
        
            
            Entity Container Kind
            
        
        
            
            Entity Set Kind
            
        
        
            
            Entity Type Kind
            
        
        
            
            Enumeration Type Kind
            
        
        
            
            Enum Member Kind
            
        
        
            
            Facet Kind
            
        
        
            
            EdmFunction Kind
            
        
        
            
            Function Parameter Kind
            
        
        
            
            Global Item Type Kind
            
        
        
            
            Metadata Property Kind
            
        
        
            
            Navigation Property Kind
            
        
        
            
            Metadata Item Type Kind
            
        
        
            
            EdmMember Type Kind
            
        
        
            
            Parameter Mode Kind
            
        
        
            
            Primitive Type Kind
            
        
        
            
            Primitive Type Kind Kind
            
        
        
            
            EdmProperty Type Kind
            
        
        
            
            ProviderManifest Type Kind
            
        
        
            
            Referential Constraint Type Kind
            
        
        
            
            Ref Type Kind
            
        
        
            
            RelationshipEnd Type Kind
            
        
        
            
            Relationship Multiplicity Type Kind
            
        
        
            
            Relationship Set Type Kind
            
        
        
            
            Relationship Type
            
        
        
            
            Row Type Kind
            
        
        
            
            Simple Type Kind
            
        
        
            
            Structural Type Kind
            
        
        
            
            Type Information Kind
            
        
        
            
            Represents the Edm Collection Type
            
        
        
            
            The constructor for constructing a CollectionType object with the element type it contains
            
             The element type that this collection type contains 
            Thrown if the argument elementType is null
        
        
            
            The constructor for constructing a CollectionType object with the element type (as a TypeUsage) it contains
            
             The element type that this collection type contains 
            Thrown if the argument elementType is null
        
        
            
            Constructs the name of the collection type
            
             The typeusage for the element type that this collection type refers to 
             The identity of the resulting collection type 
        
        
            
            Override EdmEquals to support value comparison of TypeUsage property
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the instance of the  class that contains the type of the element that this current
            
            object includes and facets for that type.
            
            
            The instance of the  class that contains the type of the element that this current
            
            object includes and facets for that type.
            
        
        
            
            Represents the Edm Complex Type.  This can be used to configure complex types
            from a conceptual-space model-based convention. Complex types are not supported in the store model.
            
        
        
            
            Initializes a new instance of Complex Type with the given properties
            
             The name of the complex type 
             The namespace name of the type 
             dataSpace in which this ComplexType belongs to 
            If either name, namespace or version arguments are null
        
        
            
            Initializes a new instance of Complex Type - required for bootstraping code
            
        
        
            
            Validates a EdmMember object to determine if it can be added to this type's
            Members collection. If this method returns without throwing, it is assumed
            the member is valid.
            
             The member to validate 
            Thrown if the member is not a EdmProperty
        
        
            
            Creates a new instance of the  type.
            
            The name of the complex type.
            The namespace of the complex type.
            The dataspace to which the complex type belongs to.
            Members of the complex type.
            Metadata properties to be associated with the instance.
            Thrown if either name, namespace or members argument is null.
            
            A new instance a the  type.
            
            
            The newly created  will be read only.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the list of properties for this .
            
            
            A collection of type  that contains the list of properties for this
            
            .
            
        
        
            
            cached dynamic method to construct a CLR instance
            
        
        
            
            Initializes a new instance of Complex Type with properties from the type.
            
             The CLR type to construct from 
        
        
            
            cached dynamic method to construct a CLR instance
            
        
        
            
            Class representing the Documentation associated with an item
            
        
        
            
            Default constructor - primarily created for supporting usage of this Documentation class by SOM.
            
        
        
            
            Returns the summary for this .
            
            
            The summary for this .
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the summary for this .
            
            
            The summary for this .
            
        
        
            
            Gets the long description for this .
            
            
            The long description for this .
            
        
        
            
            This property is required to be implemented for inheriting from MetadataItem. As there can be atmost one
            instance of a nested-Documentation, return the constant "Documentation" as it's identity.
            
        
        
            
            Gets a value indicating whether this  object contains only a null or an empty
            
            and a
            
            .
            
            
            true if this  object contains only a null or an empty
            
            and a
            
            ; otherwise, false.
            
        
        
            
            Used to denote application home directory in a Web/ASP.NET context
            
        
        
            
            Class for representing a function
            
        
        
            
            Adds a parameter to this function.
            
            The parameter to be added.
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Builds function identity string in the form of "functionName (param1, param2, ... paramN)".
            
        
        
            
            Builds identity based on the functionName and parameter types. All parameters are assumed to be
            
            .
            Returns string in the form of "functionName (param1, param2, ... paramN)".
            
        
        
            
            Builds identity based on the functionName and parameters metadata.
            Returns string in the form of "functionName (param1, param2, ... paramN)".
            
        
        
            
            The factory method for constructing the  object.
            
            The name of the function.
            The namespace of the function.
            The namespace the function belongs to.
            Additional function attributes and properties.
            Metadata properties that will be added to the function. Can be null.
            
            A new, read-only instance of the  type.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            One of the enumeration values of the  enumeration.
            
        
        
            Returns the full name (namespace plus name) of this type. 
            The full name of the type.
        
        
            
            Gets the parameters of this .
            
            
            A collection of type  that contains the parameters of this
            
            .
            
        
        
            
            Returns true if this is a C-space function and it has an eSQL body defined as DefiningExpression.
            
        
        
            
            For function imports, optionally indicates the entity set to which the result is bound.
            If the function import has multiple result sets, returns the entity set to which the first result is bound
            
        
        
            
            For function imports, indicates the entity sets to which the return parameters are bound.
            The number of elements in the collection matches the number of return parameters.
            A null element in the collection indicates that the corresponding are not bound to an entity set.
            
        
        
            
            Gets the return parameter of this .
            
            
            A  object that represents the return parameter of this
            
            .
            
        
        
            
            Gets the return parameters of this .
            
            
            A collection of type  that represents the return parameters of this
            
            .
            
        
        
            Gets the store function name attribute of this function.
        
        
            Gets the parameter type semantics attribute of this function.
        
        
            Gets the aggregate attribute of this function.
        
        
            
            Gets a value indicating whether built in attribute is present on this function.
            
            
              true if the attribute is present; otherwise, false.
            
        
        
            
            Gets a value indicating whether this instance is from the provider manifest.
            
            
            true if this instance is from the provider manifest; otherwise, false.
            
        
        
            
            Gets a value indicating whether the is a niladic function (a function that accepts no arguments).
            
            
            true if the function is niladic; otherwise, false.
            
        
        
            Gets whether this instance is mapped to a function or to a stored procedure.
            true if this instance is mapped to a function; false if this instance is mapped to a stored procedure.
        
        
            Gets a query in the language that is used by the database management system or storage model. 
            
            A string value in the syntax used by the database management system or storage model that contains the query or update statement of the
            
            .
            
        
        
            Gets or sets the schema associated with the function.
            The schema associated with the function.
        
        
            
            In conceptual-space, EdmProperty represents a property on an Entity.
            In store-space, EdmProperty represents a column in a table.
            
        
        
             Creates a new primitive property. 
             The newly created property. 
             The name of the property. 
             The type of the property. 
        
        
             Creates a new enum property. 
             The newly created property. 
             The name of the property. 
             The type of the property. 
        
        
             Creates a new complex property. 
             The newly created property. 
             The name of the property. 
             The type of the property. 
        
        
            
            Creates a new instance of EdmProperty type.
            
            Name of the property.
            
            Property 
            
            A new instance of EdmProperty type
        
        
            
            Initializes a new instance of the property class
            
             name of the property 
             TypeUsage object containing the property type and its facets 
            Thrown if name or typeUsage arguments are null
            Thrown if name argument is empty string
        
        
            
            Initializes a new OSpace instance of the property class
            
             name of the property 
             TypeUsage object containing the property type and its facets 
             for the property 
             The declaring type of the entity containing the property 
        
        
            
            cached dynamic method to get the property value from a CLR instance
            
        
        
            
            cached dynamic method to set a CLR property value on a CLR instance
            
        
        
            Sets the metadata properties.
            The metadata properties to be set.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets a value indicating whether this  can have a null value.
            
            
            Nullability in the conceptual model and store model is a simple indication of whether or not
            the property is considered nullable. Nullability in the object model is more complex.
            When using convention based mapping (as usually happens with POCO entities), a property in the
            object model is considered nullable if and only if the underlying CLR type is nullable and
            the property is not part of the primary key.
            When using attribute based mapping (usually used with entities that derive from the EntityObject
            base class), a property is considered nullable if the IsNullable flag is set to true in the
             attribute. This flag can
            be set to true even if the underlying type is not nullable, and can be set to false even if the
            underlying type is nullable. The latter case happens as part of default code generation when
            a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string.
            In such a case, the Entity Framework treats the property as non-nullable even though the CLR would
            allow null to be set.
            There is no good reason to set a non-nullable CLR type as nullable in the object model and this
            should not be done even though the attribute allows it.
            
            
            true if this  can have a null value; otherwise, false.
            
            Thrown if the setter is called when the EdmProperty instance is in ReadOnly state
        
        
            Gets the type name of the property.
            The type name of the property.
        
        
            
            Gets the default value for this .
            
            
            The default value for this .
            
            Thrown if the setter is called when the EdmProperty instance is in ReadOnly state
        
        
            
            cached dynamic method to get the property value from a CLR instance
            
        
        
            
            cached dynamic method to set a CLR property value on a CLR instance
            
        
        
            Gets whether the property is a collection type property.
            true if the property is a collection type property; otherwise, false.
        
        
            Gets whether this property is a complex type property.
            true if this property is a complex type property; otherwise, false.
        
        
            Gets whether this property is a primitive type.
            true if this property is a primitive type; otherwise, false.
        
        
            Gets whether this property is an enumeration type property.
            true if this property is an enumeration type property; otherwise, false.
        
        
            Gets whether this property is an underlying primitive type.
            true if this property is an underlying primitive type; otherwise, false.
        
        
            Gets the complex type information for this property.
            The complex type information for this property.
        
        
            Gets the primitive type information for this property.
            The primitive type information for this property.
        
        
            Gets the enumeration type information for this property.
            The enumeration type information for this property.
        
        
            Gets the underlying primitive type information for this property.
            The underlying primitive type information for this property.
        
        
            Gets or sets the concurrency mode for the property.
            The concurrency mode for the property.
        
        
            Gets or sets the database generation method for the database column associated with this property
            The store generated pattern for the property.
        
        
            Gets or sets the kind of collection for this model.
            The kind of collection for this model.
        
        
            Gets whether the maximum length facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets or sets the maximum length of the property.
            The maximum length of the property.
        
        
            Gets or sets whether this property uses the maximum length supported by the provider.
            true if this property uses the maximum length supported by the provider; otherwise, false.
        
        
            Gets whether the fixed length facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets or sets whether the length of this property is fixed.
            true if the length of this property is fixed; otherwise, false.
        
        
            Gets whether the Unicode facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets or sets whether this property is a Unicode property.
            true if this property is a Unicode property; otherwise, false.
        
        
            Gets whether the precision facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets or sets the precision of this property.
            The precision of this property.
        
        
            Gets whether the scale facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets or sets the scale of this property.
            The scale of this property.
        
        
            
            Class for representing an entity container
            
        
        
            
            The constructor for constructing the EntityContainer object with the name, namespaceName, and version.
            
             The name of this entity container 
             dataSpace in which this entity container belongs to 
            Thrown if the name argument is null
            Thrown if the name argument is empty string
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            Returns an  object by using the specified name for the entity set.
            
            
            An  object that represents the entity set that has the specified name.
            
            The name of the entity set that is searched for.
            true to perform the case-insensitive search; otherwise, false.
        
        
            
            Returns an  object by using the specified name for the entity set.
            
            true if there is an entity set that matches the search criteria; otherwise, false.
            The name of the entity set that is searched for.
            true to perform the case-insensitive search; otherwise, false.
            
            When this method returns, contains an  object. If there is no entity set, this output parameter contains null.
            
        
        
            
            Returns a  object by using the specified name for the relationship set.
            
            
            An  object that represents the relationship set that has the specified name.
            
            The name of the relationship set that is searched for.
            true to perform the case-insensitive search; otherwise, false.
        
        
            
            Returns a  object by using the specified name for the relationship set.
            
            true if there is a relationship set that matches the search criteria; otherwise, false. 
            The name of the relationship set that is searched for.
            true to perform the case-insensitive search; otherwise, false.
            
            When this method returns, contains a  object.
            
        
        
            
            Returns the name of this .
            
            
            The name of this .
            
        
        
            Removes a specific entity set from the container.
            The entity set to remove.
        
        
            
            The factory method for constructing the EntityContainer object.
            
            The name of the entity container to be created.
            DataSpace in which this entity container belongs to.
            Entity sets that will be included in the new container. Can be null.
            Functions that will be included in the new container. Can be null.
            Metadata properties to be associated with the instance.
            Thrown if the name argument is null or empty string.
            The newly created EntityContainer will be read only.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the identity for this item as a string
            
        
        
            
            Gets the name of this .
            
            
            The name of this .
            
        
        
            
            Gets a list of entity sets and association sets that this
            
            includes.
            
            
            A  object that contains a list of entity sets and association sets that this
            
            includes.
            
        
        
             Gets the association sets for this entity container. 
             The association sets for this entity container .
        
        
             Gets the entity sets for this entity container. 
             The entity sets for this entity container .
        
        
            
            Specifies a collection of  elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties.
            
            
            A  that contains
            
            elements.
            
        
        
            
            Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can 
            query and persist entities. In the store-model it represents a table. 
            From a store-space model-convention it can be used to configure
            table name with  property and table schema with  property.
            
        
        
            
            The constructor for constructing the EntitySet with a given name and an entity type
            
             The name of the EntitySet 
             The db schema 
             The db table 
             The provider specific query that should be used to retrieve the EntitySet 
             The entity type of the entities that this entity set type contains 
            Thrown if the argument name or entityType is null
        
        
            
            The factory method for constructing the EntitySet object.
            
            The name of the EntitySet.
            The db schema. Can be null.
            The db table. Can be null.
            
            The provider specific query that should be used to retrieve data for this EntitySet. Can be null.
            
            The entity type of the entities that this entity set type contains.
            
            Metadata properties that will be added to the newly created EntitySet. Can be null.
            
            Thrown if the name argument is null or empty string.
            The newly created EntitySet will be read only.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the entity type of this .
            
            
            An  object that represents the entity type of this
            
            .
            
        
        
            
            Returns the associations and constraints where "this" EntitySet particpates as the Principal end.
            From the results of this list, you can retrieve the Dependent IRelatedEnds
            
        
        
            
            Returns the associations and constraints where "this" EntitySet particpates as the Dependent end.
            From the results of this list, you can retrieve the Principal IRelatedEnds
            
        
        
            
            True if this entity set participates in any foreign key relationships, otherwise false.
            
        
        
            
            True if this entity set participates in any independent relationships, otherwise false.
            
        
        
            
            Class representing a collection of entity set objects
            
        
        
            
            Class representing an actual implementaton of a collection of metadata objects
            
             The type of items in this collection 
        
        
            
            Default constructor for constructing an empty collection
            
        
        
            
            The constructor for constructing the collection with the given items
            
             The items to populate the collection 
        
        
            
            Used in the OneToOneMappingBuilder for the designer to workaround the circular 
            dependency between EntityType and AssociationEndMember created when adding 
            navigation properties. Must not be used in other context.
            
        
        
            
            Returns the collection as a read-only metadata collection.
            
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if the Collection does not have an item with the given identity
        
        
            
            Adds an item to the collection
            
             The item to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the MetadataCollection already contains an item with the same identity
            Thrown if the item passed into Setter has null or String.Empty identity
        
        
            
            Adds an item to the identityDictionary
            
             The collection data to add to 
             
             The identity to add 
             The identity's index in collection 
             Whether the item should be updated if a matching item is found. 
             Index of the added entity, possibly different from the index parameter if updateIfFound is true. 
        
        
            
            Adds an item to the collection
            
            
            This method only exists to allow ctor to avoid virtual method call
            
             The item to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the MetadataCollection already contains an item with the same identity
            Thrown if the item passed into Setter has null or String.Empty identity
        
        
            
            Adds an item to the collection represented by a list and a dictionary
            
             The item to add to the list 
             The collection data where the item will be added 
             Whether the item should be updated if a matching item is found. 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the MetadataCollection already contains an item with the same identity
            Thrown if the item passed into Setter has null or String.Empty identity
            
            If updateIfFound is true, then an update is done in-place instead of
            having an exception thrown. The in-place aspect is required to avoid
            disrupting the indices generated for indexed items, and to enable
            foreach loops to be able to modify the enumerated facets as if it
            were a property update rather than an instance replacement.
            
        
        
            
            Adds a collection of items to the collection
            
             The items to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the item that is being added already belongs to another ItemCollection
            Thrown if the ItemCollection already contains an item with the same identity
             Whether the add was successful 
        
        
            
            Does Item at index have the same identity
            
        
        
            
            Not supported, the collection is treated as read-only.
            
             The index where to insert the given item 
             The item to be inserted 
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
        
        
            
            Not supported, the collection is treated as read-only.
            
             The item to be removed 
             True if the item is actually removed, false if the item is not in the list 
            Always thrown
        
        
            
            Not supported, the collection is treated as read-only.
            
             The index at which the item is removed 
            Always thrown
        
        
            
            Not supported, the collection is treated as read-only.
            
            Always thrown
        
        
            
            Determines if this collection contains the given item
            
             The item to check for 
             True if the collection contains the item 
            Thrown if item argument passed in is null
            Thrown if the item passed in has null or String.Empty identity
        
        
            
            Determines if this collection contains an item of the given identity
            
             The identity of the item to check for 
             True if the collection contains the item with the given identity 
            Thrown if identity argument passed in is null
            Thrown if identity argument passed in is empty string
        
        
            
            Find the index of an item identitified by identity
            
             The collection data to search in 
             The identity whose index is to be returned 
             Should OrdinalIgnoreCase be used? 
             The index of the found item, -1 if not found 
            Thrown if ignoreCase and an exact match does not exist, but has multiple inexact matches
        
        
            
            Find the index of an item
            
             The item whose index is to be looked for 
             The index of the found item, -1 if not found 
            Thrown if item argument passed in is null
            Thrown if the item passed in has null or String.Empty identity
        
        
            
            Copies the items in this collection to an array
            
             The array to copy to 
             The index in the array at which to start the copy 
            Thrown if array argument is null
            Thrown if the arrayIndex is less than zero
            Thrown if the array argument passed in with respect to the arrayIndex passed in not big enough to hold the MetadataCollection being copied
        
        
            
            Gets the enumerator over this collection
            
        
        
            
            Gets the enumerator over this collection
            
        
        
            
            Gets the enumerator over this collection
            
        
        
            
            Set this collection as readonly so no more changes can be made on it
            
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             An item from the collection, null if the item is not found 
             True an item is retrieved 
            Thrown if the identity argument is null
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             item else null 
        
        
            
            Throws an appropriate exception if the given item is a readonly, used when an attempt is made to change
            the collection
            
        
        
            
            Gets whether the collection is a readonly collection
            
        
        
            
            Returns the collection as a readonly collection
            
        
        
            
            Gets the count on the number of items in the collection
            
        
        
            
            Gets an item from the collection with the given index
            
             The index to search for 
             An item from the collection 
            Thrown if the index is out of the range for the Collection
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if the Collection does not have an item with the given identity
            Always thrown on setter
        
        
            
            structure to contain the indexes of items whose identity match by OrdinalIgnoreCase
            
        
        
            
            the index of the item whose identity was used to create the initial dictionary entry
            
        
        
            
            the continuation of indexes whose item identities match by OrdinalIgnoreCase
            
        
        
            
            The data structures for this collection, which contains a list and a dictionary
            
        
        
            
            The IdentityDictionary is a case-insensitive dictionary
            used after a certain # of elements have been added to the OrderedList.
            It aids in fast lookup by T.Identity by mapping a string value to
            an OrderedIndex structure with other case-insensitive matches for the
            entry.  See additional comments in AddInternal.
            
        
        
            
            Default constructor for constructing an empty collection
            
             The entity container that has this entity set collection 
            Thrown if the argument entityContainer is null
        
        
            
            The constructor for constructing the collection with the given items
            
             The entity container that has this entity set collection 
             The items to populate the collection 
            Thrown if the argument entityContainer is null
        
        
            
            Adds an item to the collection
            
             The item to add to the list 
            Thrown if item argument is null
            Thrown if the item passed in or the collection itself instance is in ReadOnly state
            Thrown if the EntitySetBase that is being added already belongs to another EntityContainer
            Thrown if the EntitySetCollection already contains an EntitySet with the same identity
        
        
            
            Checks if the given entity set already has a entity container, if so, throw an exception
            
             The entity set to check for 
             The name of the argument from the caller 
        
        
            
            Gets an item from the collection with the given index
            
             The index to search for 
             An item from the collection 
            Thrown if the index is out of the range for the Collection
            Always thrown on setter
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if the Collection does not have an EntitySet with the given identity
            Always thrown on setter
        
        
            
            Represents an enumeration member.
            
        
        
            
            The name of this enumeration member.
            
        
        
            
            The value of this enumeration member.
            
        
        
            
            Initializes a new instance of the  type by using the specified name and value.
            
             The name of this enumeration member. Must not be null or the empty string. 
             The value of this enumeration member. 
            Thrown if name argument is null
            Thrown if name argument is empty string
        
        
             Overriding System.Object.ToString to provide better String representation for this type. 
        
        
             Gets the kind of this type. 
        
        
             Gets the name of this enumeration member. 
        
        
             Gets the value of this enumeration member. 
        
        
            
            Gets the identity for this item as a string
            
        
        
            
            Class for representing a Facet object
            This object is Immutable (not just set to readonly) and
            some parts of the system are depending on that behavior
            
        
        
            
            The constructor for constructing a Facet object with the facet description and a value
            
             The object describing this facet 
             The value of the facet 
            Thrown if facetDescription argument is null
        
        
            
            Creates a Facet instance with the specified value for the given
            facet description.
            
             The object describing this facet 
             The value of the facet 
            Thrown if facetDescription argument is null
        
        
            
            Creates a Facet instance with the specified value for the given
            facet description.
            
             The object describing this facet 
             The value of the facet 
             true to bypass caching and known values; false otherwise. 
            Thrown if facetDescription argument is null
        
        
            
            The object describing this facet.
            
        
        
            
            The value assigned to this facet.
            
        
        
            
            Returns the name of this .
            
            
            The name of this .
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the description of this .
            
            
            The  object that represents the description of this
            
            .
            
        
        
            
            Gets the name of this .
            
            
            The name of this .
            
        
        
            
            Gets the type of this .
            
            
            The  object that represents the type of this
            
            .
            
        
        
            
            Gets the value of this .
            
            
            The value of this .
            
            Thrown if the Facet instance is in ReadOnly state
        
        
            
            Gets the identity for this item as a string
            
        
        
            Gets a value indicating whether the value of the facet is unbounded.
            true if the value of the facet is unbounded; otherwise, false.
        
        
            
            Class for representing a FacetDescription object
            
        
        
            
            The constructor for constructing a facet description object
            
             The name of this facet 
             The type of this facet 
             The min value for this facet 
             The max value for this facet 
             The default value for this facet 
            Thrown if either facetName, facetType or applicableType arguments are null
        
        
            
            A facet with the default value for this description.
            
        
        
            
            A facet with a null value for this description.
            
        
        
            
            Type-dependant cache for additional values (possibly null).
            
        
        
            Returns the name of this facet. 
            The name of this facet.
        
        
            
            Gets a cached facet instance with the specified boolean value.
            
             Value for the Facet result. 
             A cached facet instance with the specified boolean value. 
        
        
            
            Returns true if the facet type is of numeric type
            
             Type of the facet 
        
        
            Gets the name of this facet.
            The name of this facet.
        
        
            Gets the type of this facet.
            
            An  object that represents the type of this facet.
            
        
        
            Gets the minimum value for this facet.
            The minimum value for this facet.
        
        
            Gets the maximum value for this facet.
            The maximum value for this facet.
        
        
            Gets the default value of a facet with this facet description.
            The default value of a facet with this facet description.
        
        
            Gets a value indicating whether the value of this facet is a constant.
            true if this facet is a constant; otherwise, false. 
        
        
            Gets a value indicating whether this facet is a required facet.
            true if this facet is a required facet; otherwise, false.
        
        
            
            Gets a facet with the default value for this description.
            
        
        
            
            Gets a facet with a null value for this description.
            
        
        
            
            This Class is never expected to be used except for by the FacetValues class.
            The purpose of this class is to allow strong type checking by the compiler while setting facet values which
            are typically stored as Object because they can either on of these things
            1. null
            2. scalar type (bool, int, byte)
            3. Unbounded object
            without this class it would be very easy to accidentally set precision to an int when it really is supposed to be
            a byte value.  Also you would be able to set the facet value to any Object derived class (ANYTHING!!!) when really only
            null and Unbounded are allowed besides an actual scalar value.  The magic of the class happens in the implicit constructors with
            allow patterns like
            new FacetValues( MaxLength = EdmConstants.UnboundedValue, Nullable = true};
            and these are type checked at compile time
            
        
        
            
            Class to filter stuff out from a metadata collection
            
        
        
            
            The constructor for constructing a read-only metadata collection to wrap another MetadataCollection.
            
             The metadata collection to wrap 
            Thrown if collection argument is null
             Predicate method which determines membership 
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if the Collection does not have an item with the given identity
        
        
            
            Determines if this collection contains an item of the given identity
            
             The identity of the item to check for 
             True if the collection contains the item with the given identity 
            Thrown if identity argument passed in is null
            Thrown if identity argument passed in is empty string
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             An item from the collection, null if the item is not found 
             True an item is retrieved 
            if identity argument is null
        
        
            
            Get index of the element passed as the argument
            
        
        
            
            Get index of the element passed as the argument
            
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if setter is called
        
        
            
            Class representing a function parameter
            
        
        
            
            The constructor for FunctionParameter taking in a name and a TypeUsage object
            
             The name of this FunctionParameter 
             The TypeUsage describing the type of this FunctionParameter 
             Mode of the parameter 
            Thrown if name or typeUsage arguments are null
            Thrown if name argument is empty string
        
        
            
            Returns the name of this .
            
            
            The name of this .
            
        
        
            
            Sets the member to read only mode. Once this is done, there are no changes
            that can be done to this class
            
        
        
            
            The factory method for constructing the  object.
            
            The name of the parameter.
            The EdmType of the parameter.
            
            The  of the parameter.
            
            
            A new, read-only instance of the  type.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the mode of this .
            
            
            One of the  values.
            
            Thrown if the FunctionParameter instance is in ReadOnly state
        
        
            
            Returns the identity of the member
            
        
        
            
            Gets the name of this .
            
            
            The name of this .
            
        
        
            
            Gets the instance of the  class that contains both the type of the parameter and facets for the type.
            
            
            A  object that contains both the type of the parameter and facets for the type.
            
        
        
            Gets the type name of this parameter.
            The type name of this parameter.
        
        
            Gets whether the max length facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets the maximum length of the parameter.
            The maximum length of the parameter.
        
        
            Gets whether the parameter uses the maximum length supported by the database provider.
            true if parameter uses the maximum length supported by the database provider; otherwise, false.
        
        
            Gets whether the precision facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets the precision value of the parameter.
            The precision value of the parameter.
        
        
            Gets whether the scale facet is constant for the database provider.
            true if the facet is constant; otherwise, false.
        
        
            Gets the scale value of the parameter.
            The scale value of the parameter.
        
        
            
            Gets the  on which this parameter is declared.
            
            
            A  object that represents the function on which this parameter is declared.
            
        
        
            
            CodeGenerator class: use expression trees to dynamically generate code to get/set properties.
            
        
        
            
            For an OSpace ComplexType returns the delegate to construct the clr instance.
            
        
        
            
            For an OSpace EntityType returns the delegate to construct the clr instance.
            
        
        
            
            for an OSpace property, get the property value from a clr instance
            
        
        
            
            for an OSpace property, set the property value on a clr instance
            
            
            If
            
            is null for a non nullable property.
            
            
            Invalid cast of
            
            to property type.
            
            From generated enties via StructuralObject.SetValidValue.
        
        
            
            For an OSpace property, gets the delegate to set the property value on a clr instance.
            
        
        
            
            Gets the related end instance for the source AssociationEndMember by creating a DynamicMethod to
            call GetRelatedCollection or GetRelatedReference
            
        
        
            
            Gets a parameterless constructor for the specified type.
            
             Type to get constructor for. 
             Parameterless constructor for the specified type. 
        
        
            
            Gets a new expression that uses the parameterless constructor for the specified collection type.
            For HashSet{T} will use ObjectReferenceEqualityComparer.
            
             Type to get constructor for. 
             Parameterless constructor for the specified type. 
        
        
            
            generate a delegate equivalent to
            private object Constructor() { return new XClass(); }
            
        
        
            
            generate a delegate equivalent to
            private object MemberGetter(object target) { return target.PropertyX; }
            or if the property is Nullable<> generate a delegate equivalent to
            private object MemberGetter(object target) { Nullable<X> y = target.PropertyX; return ((y.HasValue) ? y.Value : null); }
            
        
        
            
            generate a delegate equivalent to
            // if Property is Nullable value type
            private void MemberSetter(object target, object value) {
            if (AllowNull && (null == value)) {
            ((TargetType)target).PropertyName = default(PropertyType?);
            return;
            }
            if (value is PropertyType) {
            ((TargetType)target).PropertyName = new (PropertyType?)((PropertyType)value);
            return;
            }
            ThrowInvalidValue(value, TargetType.Name, PropertyName);
            return
            }
            // when PropertyType is a value type
            private void MemberSetter(object target, object value) {
            if (value is PropertyType) {
            ((TargetType)target).PropertyName = (PropertyType)value;
            return;
            }
            ThrowInvalidValue(value, TargetType.Name, PropertyName);
            return
            }
            // when PropertyType is a reference type
            private void MemberSetter(object target, object value) {
            if ((AllowNull && (null == value)) || (value is PropertyType)) {
            ((TargetType)target).PropertyName = ((PropertyType)value);
            return;
            }
            ThrowInvalidValue(value, TargetType.Name, PropertyName);
            return
            }
            
            
            If the method is missing or static or has indexed parameters.
            Or if the declaring type is a value type.
            Or if the parameter type is a pointer.
            
        
        
            
            Create delegate used to invoke either the GetRelatedReference or GetRelatedCollection generic method on the RelationshipManager.
            
             source end of the relationship for the requested navigation 
             target end of the relationship for the requested navigation 
             Delegate that can be used to invoke the corresponding method. 
        
        
            
            Class representing a collection of member objects
            
        
        
            
            Default constructor for constructing an empty collection
            
             The type that has this member collection 
            Thrown if the declaring type is null
        
        
            
            The constructor for constructing the collection with the given items
            
             The type that has this member collection 
             The items to populate the collection 
            Thrown if the declaring type is null
        
        
            
            Adds an item to the collection
            
             The item to add to the list 
            Thrown if member argument is null
            Thrown if the member passed in or the collection itself instance is in ReadOnly state
            Thrown if the member that is being added already belongs to another MemberCollection
            Thrown if the MemberCollection already contains a member with the same identity
        
        
            
            Determines if this collection contains an item of the given identity
            
             The identity of the item to check for 
             True if the collection contains the item with the given identity 
        
        
            
            Find the index of an item
            
             The item whose index is to be looked for 
             The index of the found item, -1 if not found 
        
        
            
            Copies the items in this collection to an array
            
             The array to copy to 
             The index in the array at which to start the copy 
            Thrown if array argument is null
            Thrown if the arrayIndex is less than zero
            Thrown if the array argument passed in with respect to the arrayIndex passed in not big enough to hold the MemberCollection being copied
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             Whether case is ignore in the search 
             An item from the collection, null if the item is not found 
             True an item is retrieved 
            if identity argument is null
        
        
            
            Gets an itme with identity
            
        
        
            
            Get the declared only members of a particular type
            
        
        
            
            Get the number of members the base type has.  If the base type is not a structural type or has no
            members, it returns 0
            
             The number of members in the base type 
        
        
            
            Gets the index relative to this collection for the given index.  For an index to really refers to something in
            the base type, the return value is negative relative to this collection.  For an index refers to something in this
            collection, the return value is positive.  In both cases, it's simply (index) - (base type member count)
            
             The relative index 
        
        
            
            Returns the collection as a readonly collection
            
        
        
            
            Gets the count on the number of items in the collection
            
        
        
            
            Gets an item from the collection with the given index
            
             The index to search for 
             An item from the collection 
            Thrown if the index is out of the range for the Collection
            Always thrown on setter
        
        
            
            Gets an item from the collection with the given identity
            
             The identity of the item to search for 
             An item from the collection 
            Thrown if identity argument passed in is null
            Thrown if the Collection does not have an item with the given identity
            Always thrown on setter
        
        
            
            Class representing a metadata attribute for an item
            
        
        
            
            The constructor for MetadataProperty taking in a name, a TypeUsage object, and a value for the attribute
            
             The name of this MetadataProperty 
             The TypeUsage describing the type of this MetadataProperty 
             The value for this attribute 
            Thrown if typeUsage argument is null
        
        
            
            The constructor for MetadataProperty taking in all the ingredients for creating TypeUsage and the actual value
            
             The name of the attribute 
             The edm type of the attribute 
             Whether the collection type of the given edm type should be used 
             The value of the attribute 
        
        
            
            Sets this item to be readonly, once this is set, the item will never be writable again.
            
        
        
            
            The factory method for constructing the MetadataProperty object.
            
            The name of the metadata property.
            The type usage of the metadata property.
            The value of the metadata property.
            
            Thrown  is null.
            
            The newly created MetadataProperty will be read only.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the identity of this item
            
        
        
            
            Gets the name of this .
            
            
            The name of this .
            
        
        
            
            Gets the value of this .
            
            
            The value of this .
            
            Thrown if the MetadataProperty instance is in readonly state
        
        
            
            Gets the instance of the  class that contains both the type of this
            
            and facets for the type.
            
            
            A  object that contains both the type of this
            
            and facets for the type.
            
            Thrown if the MetadataProperty instance is in readonly state
        
        
            
            Gets the value of this .
            
            
            The value of this .
            
        
        
            
            Attribute used to mark up properties that should appear in the MetadataItem.MetadataProperties collection
            
        
        
            
            Initializes a new attribute with built in type kind
            
             Built in type setting Type property 
             Sets IsCollectionType property 
        
        
            
            Initializes a new attribute with primitive type kind
            
             Primitive type setting Type property 
             Sets IsCollectionType property 
        
        
            
            Initialize a new attribute with complex type kind (corresponding the the CLR type)
            
             CLR type setting Type property 
             Sets IsCollectionType property 
        
        
            
            Initialize a new attribute
            
             Sets Type property 
             Sets IsCollectionType property 
        
        
            
            Gets EDM type for values stored in property.
            
        
        
            
            Gets bool indicating whether this is a collection type.
            
        
        
            
            Metadata collection class supporting delay-loading of system item attributes and
            extended attributes.
            
        
        
            
            Constructor taking item.
            
             Item with which the collection is associated. 
        
        
            
            Encapsulates information about system item attributes for a particular item type.
            
        
        
            
            Retrieves system attribute information for the given type.
            Requires: type must derive from MetadataItem
            
             Type 
        
        
            
            Encapsulates information about a CLR property of an item class.
            
        
        
            
            Initialize information.
            Requires: attribute must belong to the given property.
            
             Property referenced. 
             Attribute for the property. 
        
        
            
            Given an item, returns an instance of the item attribute described by this class.
            
             Item from which to retrieve attribute. 
             Item attribute. 
        
        
            
            Class representing a metadata property on an item. Supports
            redirection from MetadataProperty instance to item property value.
            
        
        
            
            Represent the edm navigation property class
            
        
        
            
            Initializes a new instance of the navigation property class
            
             name of the navigation property 
             TypeUsage object containing the navigation property type and its facets 
            Thrown if name or typeUsage arguments are null
            Thrown if name argument is empty string
        
        
            
            cached dynamic methods to access the property values from a CLR instance
            
        
        
            
            Where the given navigation property is on the dependent end of a referential constraint,
            returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order
            of the principal end key properties.
            
            A collection of the foreign key properties.
        
        
            
            Creates a NavigationProperty instance from the specified parameters.
            
            The name of the navigation property.
            Specifies the navigation property type and its facets.
            The relationship type for the navigation.
            The source end member in the navigation.
            The target end member in the navigation.
            The newly created NavigationProperty instance.
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            Gets the relationship type that this navigation property operates on.
            The relationship type that this navigation property operates on.
            Thrown if the NavigationProperty instance is in ReadOnly state
        
        
            Gets the "to" relationship end member of this navigation.
            The "to" relationship end member of this navigation.
            Thrown if the NavigationProperty instance is in ReadOnly state
        
        
            Gets the "from" relationship end member in this navigation.
            The "from" relationship end member in this navigation.
            Thrown if the NavigationProperty instance is in ReadOnly state
        
        
            
            Cached dynamic method to get the property value from a CLR instance
            
        
        
            
            cached dynamic method to get the property value from a CLR instance
            
        
        
            
            cached dynamic method to set the property value from a CLR instance
            
        
        
            
            Represents the list of possible actions for delete operation
            
        
        
            
            no action
            
        
        
            
            Cascade to other ends
            
        
        
            
            The enumeration defining the mode of a parameter
            
        
        
            
            In parameter
            
        
        
            
            Out parameter
            
        
        
            
            Both in and out parameter
            
        
        
            
            Return Parameter
            
        
        
            
            Class representing a primitive type
            
        
        
            
            Initializes a new instance of PrimitiveType
            
        
        
            
            The constructor for PrimitiveType.  It takes the required information to identify this type.
            
             The name of this type 
             The namespace name of this type 
             dataSpace in which this primitive type belongs to 
             The primitive type that this type is derived from 
             The ProviderManifest of the provider of this type 
            Thrown if name, namespaceName, version, baseType or providerManifest arguments are null
        
        
            
            The constructor for PrimitiveType, it takes in a CLR type containing the identity information
            
             The CLR type object for this primitive type 
             The base type for this primitive type 
             The ProviderManifest of the provider of this type 
        
        
            
            Perform initialization that's common across all constructors
            
             The primitive type to initialize 
             The primitive type kind of this primitive type 
             The ProviderManifest of the provider of this type 
        
        
            
            Returns the equivalent  of this
            
            .
            
            
            For example if this instance is nvarchar and it's
            base type is Edm String then the return type is Edm String.
            If the type is actually already a model type then the
            return type is "this".
                    
            
            An  object that is an equivalent of this
            
            .
            
        
        
            Returns the list of primitive types.
            
            A collection of type  that contains the list of primitive types.
            
        
        
            
            Returns the equivalent  of a
            
            .
            
            
            An  object that is an equivalent of a specified
            
            .
            
            
            A value of type .
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets a  enumeration value that indicates a primitive type of this
            
            .
            
            
            A  enumeration value that indicates a primitive type of this
            
            .
            
        
        
            
            Returns the ProviderManifest giving access to the Manifest that this type came from
            
             The types ProviderManifest value 
        
        
            
            Gets the list of facet descriptions for this .
            
            
            A collection of type  that contains the list of facet descriptions for this
            
            .
            
        
        
            
            Returns an equivalent common language runtime (CLR) type of this
            
            . Note that the
            
            property always returns a non-nullable type value.
            
            
            A  object that represents an equivalent common language runtime (CLR) type of this
            
            .
            
        
        
            
            Primitive Types as defined by EDM
            
        
        
            
            Binary Type Kind
            
        
        
            
            Boolean Type Kind
            
        
        
            
            Byte Type Kind
            
        
        
            
            DateTime Type Kind
            
        
        
            
            Decimal Type Kind
            
        
        
            
            Double Type Kind
            
        
        
            
            Guid Type Kind
            
        
        
            
            Single Type Kind
            
        
        
            
            SByte Type Kind
            
        
        
            
            Int16 Type Kind
            
        
        
            
            Int32 Type Kind
            
        
        
            
            Int64 Type Kind
            
        
        
            
            String Type Kind
            
        
        
            
            Time Type Kind
            
        
        
            
            DateTimeOffset Type Kind
            
        
        
            
            Geometry Type Kind
            
        
        
            
            Geography Type Kind
            
        
        
            
            Geometric point type kind
            
        
        
            
            Geometric linestring type kind
            
        
        
            
            Geometric polygon type kind
            
        
        
            
            Geometric multi-point type kind
            
        
        
            
            Geometric multi-linestring type kind
            
        
        
            
            Geometric multi-polygon type kind
            
        
        
            
            Geometric collection type kind
            
        
        
            
            Geographic point type kind
            
        
        
            
            Geographic linestring type kind
            
        
        
            
            Geographic polygon type kind
            
        
        
            
            Geographic multi-point type kind
            
        
        
            
            Geographic multi-linestring type kind
            
        
        
            
            Geographic multi-polygon type kind
            
        
        
            
            Geographic collection type kind
            
        
        
            
            A private constructor to prevent other places from instantiating this class
            
        
        
            
            Returns the primitive type corresponding to the given CLR type
            
             The CLR type for which the PrimitiveType object is retrieved 
             The retrieved primitive type 
             True if a primitive type is returned 
        
        
            
            Returns the  corresponding to the given CLR type
            
             The CLR type for which the PrimitiveTypeKind value should be resolved 
             The PrimitiveTypeKind value to which the CLR type resolves, if any. 
             True if the CLR type represents a primitive (EDM) type; otherwise false. 
        
        
            
            Returns all the functions in this provider manifest
            
             A collection of functions 
        
        
            
            Returns all the FacetDescriptions for a particular type
            
             the type to return FacetDescriptions for. 
             The FacetDescriptions for the type given. 
        
        
            
            Initializes all the primitive types
            
        
        
            
            Initialize the primitive type with the given
            
             The CLR type of this type 
             The primitive type kind of the primitive type 
        
        
            
            Providers should override this to return information specific to their provider.
            This method should never return null.
            
             The name of the information to be retrieved. 
             An XmlReader at the begining of the information requested. 
        
        
            
            Gets the EDM provider manifest singleton instance
            
        
        
            
            Returns the namespace used by this provider manifest
            
        
        
            
            The ConcurrencyMode Facet Name
            
        
        
            
            The StoreGeneratedPattern Facet Name
            
        
        
            
            A private constructor to prevent other places from instantiating this class
            
        
        
            
            Returns the list of all the canonical functions
            
        
        
            
            Returns all the FacetDescriptions for a particular type
            
             the type to return FacetDescriptions for. 
             The FacetDescriptions for the type given. 
        
        
            
            Returns a primitive type from this manifest having the specified primitive type kind
            
             The value specifying the kind of primitive type to return 
             A primitive type having the given primitive type kind 
        
        
            
            Boostrapping all the primitive types for the EDM Provider Manifest
            
        
        
            
            Initialize all the primitive type with the given primitive type kind and name
            
             The primitive type to initialize 
             Type of the primitive type which is getting initialized 
             name of the built in type 
             the CLR Type of that maps to the EDM PrimitiveType 
        
        
            
            Boostrapping all the facet descriptions for the EDM Provider Manifest
            
        
        
            
            Boostrapping all the canonical functions for the EDM Provider Manifest
            
        
        
            
            Returns the list of super-types for the given primitiveType
            
        
        
            
            Initializes Promotion Type relation
            
        
        
            
            Initializes Canonical Model Types
            
        
        
            
            Returns all the primitive types supported by the provider manifest
            
             A collection of primitive types 
        
        
            
            Providers should override this to return information specific to their provider.
            This method should never return null.
            
             The name of the information to be retrieved. 
             An XmlReader at the begining of the information requested. 
        
        
            
            Gets the EDM provider manifest singleton instance
            
        
        
            
            Returns the namespace used by this provider manifest
            
        
        
            
            Store version hint
            
        
        
            
            This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship.
            
        
        
            
            Constructs a new constraint on the relationship
            
             role from which the relationship originates 
             role to which the relationship is linked/targeted to 
             properties on entity type of to role which take part in the constraint 
             properties on entity type of from role which take part in the constraint 
            Argument Null exception if any of the arguments is null
        
        
            
            Returns the combination of the names of the
            
            and the
            
            .
            
            
            The combination of the names of the
            
            and the
            
            .
            
        
        
            
            Sets this item to be read-only, once this is set, the item will never be writable again.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Returns the identity for this constraint
            
        
        
            
            Gets the "from role" that takes part in this
            
            .
            
            
            A  object that represents the "from role" that takes part in this
            
            .
            
            Thrown if value passed into setter is null
            Thrown if the ReferentialConstraint instance is in ReadOnly state
        
        
            
            Gets the "to role" that takes part in this .
            
            
            A  object that represents the "to role" that takes part in this
            
            .
            
            Thrown if value passed into setter is null
            Thrown if the ReferentialConstraint instance is in ReadOnly state
        
        
            
            Gets the list of properties for the "from role" on which this
            
            is defined.
            
            
            A collection of type  that contains the list of properties for "from role" on which this
            
            is defined.
            
        
        
            
            Gets the list of properties for the "to role" on which this
            
            is defined.
            
            
            A collection of type  that contains the list of properties for the "to role" on which this
            
            is defined.
            
        
        
            
            Class representing a ref type
            
        
        
            
            The constructor for constructing a RefType object with the entity type it references
            
             The entity type that this ref type references 
            Thrown if entityType argument is null
        
        
            
            Constructs the name of the collection type
            
             The entity type base that this ref type refers to 
             The identity of the resulting ref type 
        
        
            
        
        
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the entity type referenced by this .
            
            
            An  object that represents the entity type referenced by this
            
            .
            
        
        
            
            Represents the multiplicity information about the end of a relationship type
            
        
        
            
            Lower Bound is Zero and Upper Bound is One
            
        
        
            
            Both lower bound and upper bound is one
            
        
        
            
            Lower bound is zero and upper bound is null
            
        
        
            
            Represents the Edm Row Type
            
        
        
            
            Initializes a new instance of RowType class with the given list of members
            
             properties for this row type 
            Thrown if any individual property in the passed in properties argument is null
        
        
            
            Initializes a RowType with the given members and initializer metadata
            
        
        
            
            Adds a property
            
             The property to add 
        
        
            
            Validates a EdmMember object to determine if it can be added to this type's
            Members collection. If this method returns without throwing, it is assumed
            the member is valid.
            
             The member to validate 
            Thrown if the member is not a EdmProperty
        
        
            
            Calculates the row type identity that would result from
            a given set of properties.
            
             The properties that determine the row type's structure 
             Metadata describing materialization of this row type 
             A string that identifies the row type 
        
        
            
            EdmEquals override verifying the equivalence of all members and their type usages.
            
        
        
            
            The factory method for constructing the  object.
            
            Properties of the row type object.
            Metadata properties that will be added to the function. Can be null.
            
            A new, read-only instance of the  object.
            
        
        
            
            Gets LINQ initializer Metadata for this row type. If there is no associated
            initializer type, value is null.
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the list of properties on this .
            
            
            A collection of type  that contains the list of properties on this
            
            .
            
        
        
            Gets a collection of the properties defined by the current type.
            A collection of the properties defined by the current type.
        
        
            
            This class attempts to make a double linked connection between a parent and child without
            exposing the properties publicly that would allow them to be mutable and possibly dangerous
            in a multithreading environment
            
        
        
            
            Class representing a type information for an item
            
        
        
            
            The constructor for TypeUsage taking in a type
            
             The type which the TypeUsage object describes 
            Thrown if edmType argument is null
        
        
            
            The constructor for TypeUsage taking in a type and a collection of facets
            
             The type which the TypeUsage object describes 
             The replacement collection of facets 
            Thrown if edmType argument is null
        
        
            
            Factory method for creating a TypeUsage with specified EdmType
            
             EdmType for which to create a type usage 
             new TypeUsage instance with default facet values 
        
        
            
            Factory method for creating a TypeUsage with specified EdmType
            
             EdmType for which to create a type usage 
             new TypeUsage instance with default facet values 
        
        
            
            Factory method for creating a TypeUsage with specified EdmType and facets
            
             EdmType for which to create a type usage 
             facets to be copied into the new TypeUsage 
             new TypeUsage instance 
        
        
            
            Creates a  object with the specified conceptual model type.
            
            
            A  object with the default facet values for the specified
            
            .
            
            
            A  for which the
            
            object is created.
            
        
        
            
            Creates a  object to describe a string type by using the specified facet values.
            
            
            A  object describing a string type by using the specified facet values.
            
            
            A  for which the
            
            object is created.
            
            true to set the character-encoding standard of the string type to Unicode; otherwise, false.
            true to set the character-encoding standard of the string type to Unicode; otherwise, false.
            true to set the length of the string type to fixed; otherwise, false.
        
        
            
            Creates a  object to describe a string type by using the specified facet values and unbounded MaxLength.
            
            
            A  object describing a string type by using the specified facet values and unbounded MaxLength.
            
            
            A  for which the
            
            object is created.
            
            true to set the character-encoding standard of the string type to Unicode; otherwise, false.
            true to set the length of the string type to fixed; otherwise, false
        
        
            
            Creates a  object to describe a binary type by using the specified facet values.
            
            
            A  object describing a binary type by using the specified facet values.
            
            
            A  for which the
            
            object is created.
            
            true to set the length of the binary type to fixed; otherwise, false.
            The maximum length of the binary type.
        
        
            
            Creates a  object to describe a binary type by using the specified facet values.
            
            
            A  object describing a binary type by using the specified facet values.
            
            
            A  for which the
            
            object is created.
            
            true to set the length of the binary type to fixed; otherwise, false. 
        
        
            
            Creates a  object of the type that the parameters describe.
            
            
            A  object.
            
            
            The simple type that defines the units of measurement of the DateTime object.
            
            
            The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
            
        
        
            
            Creates a  object of the type that the parameters describe.
            
            
            A  object.
            
            The simple type that defines the units of measurement of the offset.
            
            The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
            
        
        
            
            Creates a  object of the type that the parameters describe.
            
            
            A  object.
            
            
            The simple type that defines the units of measurement of the DateTime object.
            
            
            The degree of granularity of the DateTimeOffset in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
            
        
        
            
            Creates a  object to describe a decimal type by using the specified facet values.
            
            
            A  object describing a decimal type by using the specified facet values.
            
            
            A  for which the
            
            object is created.
            
            
            The precision of the decimal type as type .
            
            
            The scale of the decimal type as type .
            
        
        
            
            Creates a  object to describe a decimal type with unbounded precision and scale facet values.
            
            
            A  object describing a decimal type with unbounded precision and scale facet values.
            
            
            A  for which the
            
            object is created.
            
        
        
            
            Set of facets that should be included in identity for TypeUsage
            
            
            keep this sorted for binary searching
            
        
        
            
            Checks whether this  is a subtype of the specified
            
            .
            
            
            true if this  is a subtype of the specified
            
            ; otherwise, false.
            
            
            The  object to be checked.
            
        
        
            
            Returns the full name of the type described by this .
            
            
            The full name of the type described by this  as string.
            
        
        
            
            EdmEquals override verifying the equivalence of all facets. Two facets are considered
            equal if they have the same name and the same value (Object.Equals)
            
        
        
            
            Gets the built-in type kind for this .
            
            
            A  object that represents the built-in type kind for this
            
            .
            
        
        
            
            Gets the type information described by this .
            
            
            An  object that represents the type information described by this
            
            .
            
        
        
            
            Gets the list of facets for the type that is described by this
            
            .
            
            
            A collection of type  that contains the list of facets for the type that is described by this
            
            .
            
        
        
            
            Returns a Model type usage for a provider type
            
             Model (CSpace) type usage 
        
        
            
            returns the identity of the type usage
            
        
        
            
            Class holding utility functions for metadata
            
        
        
            
            Throws an appropriate exception if the given item is a readonly, used when an attempt is made to change
            a property
            
             The item whose readonly is being tested 
        
        
            
            Check to make sure the given item do have identity
            
             The item to check for valid identity 
             The name of the argument 
        
        
            
            Retrieves a mapping to CLR type for the given EDM type. Assumes the MetadataWorkspace has no
            
        
        
            
            Helper Class for EDM Metadata - this class contains all the helper methods
            which only accesses public methods/properties. The other partial class contains all
            helper methods which just uses internal methods/properties. The reason why we
            did this for allowing view gen to happen at compile time - all the helper
            methods that view gen or mapping uses are in this class. Rest of the
            methods are in this class
            
            
            Helper Class for EDM Metadata - this class contains all the helper methods
            which needs access to internal methods. The other partial class contains all
            helper methods which just uses public methods/properties. The reason why we
            did this for allowing view gen to happen at compile time - all the helper
            methods that view gen or mapping uses are in the other helper class. Rest of the
            methods are in this class
            
        
        
            
            The method wraps the GetAttribute method on XPathNavigator.
            The problem with using the method directly is that the
            Get Attribute method does not differentiate the absence of an attribute and
            having an attribute with Empty string value. In both cases the value returned is an empty string.
            So in case of optional attributes, it becomes hard to distinguish the case whether the
            xml contains the attribute with empty string or doesn't contain the attribute
            This method will return null if the attribute is not present and otherwise will return the
            attribute value.
            
             
             name of the attribute 
        
        
            
            The method returns typed attribute value of the specified xml attribute.
            The method does not do any specific casting but uses the methods on XPathNavigator.
            
        
        
            
            Searches for Facet Description with the name specified.
            
             Collection of facet description 
             name of the facet 
        
        
            
            Creates a single comma delimited string given a list of strings
            
        
        
            
            Performance of Enum.ToString() is slow and we use this value in building Identity
            
        
        
            
            Performance of Enum.ToString() is slow and we use this value in building Identity
            
        
        
            
            Verifies whether the given  is a valid underlying type for an enumeration type.
            
            
             to verifiy.
            
            
            true if the  is a valid underlying type for an enumeration type. Otherwise false .
            
        
        
            
            Verifies whether a value of a member of an enumeration type is in range according to underlying type of the enumeration type.
            
             Underlying type of the enumeration type. 
             Value to check. 
            
            true if the  is in range of the  . false otherwise.
            
        
        
            
            Checks whether the  is enum type and if this is the case returns its underlying type. Otherwise
            returns  after casting it to PrimitiveType.
            
             Type to convert to primitive type. 
            
            Underlying type if  is enumeration type. Otherwise  itself.
            
            
            This method should be called only for primitive or enumeration types.
            
        
        
            
            Returns underlying EDM type of a given enum .
            
             Enum type whose underlying EDM type needs to be returned. Must not be null. 
            
            The underlying EDM type of a given enum  .
            
        
        
            
            Returns the single error message from the list of errors
            
        
        
            
            Returns the single error message from the list of errors
            
        
        
            
            Returns a model (C-Space) typeusage for the given typeusage. if the type is already in c-space, it returns
            the given typeusage. The typeUsage returned is created by invoking the provider service to map from provider
            specific type to model type.
            
             typeusage 
             the respective Model (C-Space) typeusage 
        
        
            
            Returns a model (C-Space) typeusage for the given member typeusage. if the type is already in c-space, it returns
            the given typeusage. The typeUsage returned is created by invoking the provider service to map from provider
            specific type to model type.
            
             EdmMember 
             the respective Model (C-Space) typeusage 
        
        
            
            Checks if the edm type in the cspace type usage maps to some sspace type (called it S1). If S1 is equivalent or
            promotable to the store type in sspace type usage, then it creates a new type usage with S1 and copies all facets
            if necessary
            
             Edm property containing the cspace member type information 
             edm property containing the sspace member type information 
        
        
            
            Validates whether cspace and sspace types are compatible.
            
             Type in C-Space. Must be a primitive or enumeration type. 
             C-Space equivalent of S-space Type. Must be a primitive type. 
            
            true if the types are compatible. false otherwise.
            
            
            This methods validate whether cspace and sspace types are compatible. The types are
            compatible if:
            both are primitive and the cspace type is a subtype of sspace type
            or
            cspace type is an enumeration type whose underlying type is a subtype of sspace type.
            
        
        
            
            Helps answer mapping questions since we don't have a good API for mapping information
            
        
        
            
            Returns all mapping fragments for the given entity set's types and their parent types.
            
        
        
            
            Returns mappings for the given set/type only if the mapping applies also to childEntittyType either via IsTypeOf or explicitly specifying multiple types in mapping fragments.
            
        
        
            
            This is the base class for the resource metadata artifact loader; derived
            classes encapsulate a single resource as well as collections of resources,
            along the lines of the Composite pattern.
            
        
        
            
            Factory method to create an artifact loader. This is where an appropriate
            subclass of MetadataArtifactLoader is created, depending on the kind of
            resource it will encapsulate.
            
             The path to the resource(s) to be loaded 
             Any URI extension checks to perform 
             A specific extension for an artifact resource 
             The global registry of URIs 
             
             A concrete instance of an artifact loader. 
        
        
            
            Factory method to create an aggregating artifact loader, one that encapsulates
            multiple collections.
            
             The list of collections to be aggregated 
             A concrete instance of an artifact loader. 
        
        
            
            Helper method that wraps a list of file paths in MetadataArtifactLoader instances.
            
             The list of file paths to wrap 
             An acceptable extension for the file 
             An instance of MetadataArtifactLoader 
        
        
            
            Helper method that wraps a collection of XmlReader objects in MetadataArtifactLoader
            instances.
            
             The collection of XmlReader objects to wrap 
             An instance of MetadataArtifactLoader 
        
        
            
            If the path doesn't have the right extension, throw
            
             The path to the resource 
        
        
            
            Get paths to all artifacts, in the original, unexpanded form
            
             A List of strings identifying paths to all resources 
        
        
            
            Get paths to artifacts for a specific DataSpace, in the original, unexpanded
            form
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get XmlReaders for all resources
            
             A List of XmlReaders for all resources 
        
        
            
            Get XmlReaders for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of XmlReader object 
        
        
            
            Helper method to determine whether a given path to a resource
            starts with the "res://" prefix.
            
             The resource path to test. 
             true if the path represents a resource location 
        
        
            
            Helper method to determine whether a resource identifies a C-Space
            artifact.
            
             The resource path 
             true if the resource identifies a C-Space artifact 
        
        
            
            Helper method to determine whether a resource identifies an S-Space
            artifact.
            
             The resource path 
             true if the resource identifies an S-Space artifact 
        
        
            
            Helper method to determine whether a resource identifies a CS-Space
            artifact.
            
             The resource path 
             true if the resource identifies a CS-Space artifact 
        
        
            
            Helper method to determine whether a resource identifies a valid artifact.
            
             The resource path 
             true if the resource identifies a valid artifact 
        
        
            
            This helper method accepts a resource URI and a value from the DataSpace enum
            and determines whether the resource identifies an artifact of that DataSpace.
            
             A URI to an artifact resource 
             A DataSpace enum value 
             true if the resource identifies an artifact of the specified DataSpace 
        
        
            
            Normalize a file path:
            1. Add backslashes if given a drive letter.
            2. Resolve the '~' macro in a Web/ASP.NET environment.
            3. Expand the |DataDirectory| macro, if found in the argument.
            4. Convert relative paths into absolute paths.
            
             the path to normalize 
             The normalized file path 
        
        
            
            Read-only access to the resource/file path
            
        
        
            
            This enum is used to indicate the level of extension check to be perfoemed
            on a metadata URI.
            
        
        
            
            Do not perform any extension check
            
        
        
            
            Check the extension against a specific value
            
        
        
            
            Check the extension against the set of acceptable extensions
            
        
        
            
            This class represents a super-collection (a collection of collections)
            of artifact resources. Typically, this "meta-collection" would contain
            artifacts represented as individual files, directories (which are in
            turn collections of files), and embedded resources.
            
            
            This is the root class for access to all loader objects.
            
        
        
            
            The list of loaders aggregated by the composite.
            
        
        
            
            Constructor - loads all resources into the _children collection
            
             A list of collections to aggregate 
        
        
            
            Get the list of paths to all artifacts in the original, unexpanded form
            
             A List of strings identifying paths to all resources 
        
        
            
            Get paths to artifacts for a specific DataSpace, in the original, unexpanded
            form
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Aggregates all resource streams from the _children collection
            
             A List of XmlReader objects; cannot be null 
        
        
            
            Get XmlReaders for a specific DataSpace.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            This class represents a collection of artifact files to be loaded from one
            filesystem folder.
            
        
        
            
            Constructor - loads all resources into the _children collection
            
             The path to the (collection of) resources 
             The global registry of URIs 
        
        
            
            Load all the collections at once so we have a "fairly" matched in time set of files
            otherwise we may end up loading the csdl files, and then not loading the ssdl, and msl
            files for sometime later.
            
        
        
            
            Get paths to artifacts for a specific DataSpace, in the original, unexpanded
            form.
            
            
            A filesystem folder can contain any kind of artifact, so we simply
            ignore the parameter and return the original path to the folder.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Aggregates all resource streams from the _children collection
            
             A List of XmlReader objects; cannot be null 
        
        
            
            Get XmlReaders for a specific DataSpace.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            This class represents a collection of resources to be loaded from one
            or more assemblies.
            
        
        
            
            The list of metadata artifacts encapsulated by the composite.
            
        
        
            
            This constructor expects to get the paths that have potential to turn into multiple
            artifacts like
            res://*/foo.csdl   -- could be multiple assemblies
            res://MyAssembly/  -- could be multiple artifacts in the one assembly
            
             The path to the (collection of) resources 
             
             
             The global registry of URIs 
             
        
        
            
            Get paths to artifacts for a specific DataSpace, in the original, unexpanded
            form.
            
            
            An assembly can embed any kind of artifact as a resource, so we simply
            ignore the parameter and return the original assembly name in the URI.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Aggregates all resource streams from the _children collection
            
             A List of XmlReader objects; cannot be null 
        
        
            
            Get XmlReaders for a specific DataSpace.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            Load all resources from the assembly/assemblies identified in the resource path.
            
             
             
             The global registry of URIs 
             
        
        
            
            Load all resources from a specific assembly.
            
             The full name identifying the assembly to load resources from 
             delegate for resolve the assembly 
        
        
            
            Splits the supplied path into the assembly portion and the resource
            part (if any)
            
             The resource path to parse 
             
             
        
        
            
            This class represents one file-based artifact item to be loaded.
            
        
        
            
            This member indicates whether the file-based artifact has already been loaded.
            It is used to prevent other instances of this class from (re)loading the same
            artifact. See comment in the MetadataArtifactLoaderFile c'tor below.
            
        
        
            
            Constructor
            
             The path to the resource to load 
             The global registry of URIs 
        
        
            
            Implementation of IComparable.CompareTo()
            
             The object to compare to 
             0 if the loaders are "equal" (i.e., have the same _path value) 
        
        
            
            Equals() returns true if the objects have the same _path value
            
             The object to compare to 
             true if the objects have the same _path value 
        
        
            
            GetHashCode override that defers the result to the _path member variable.
            
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Create and return an XmlReader around the file represented by this instance.
            
             A List of XmlReaders for all resources 
        
        
            
            Create and return an XmlReader around the file represented by this instance
            if it is of the requested DataSpace type.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            Create an XmlReader around the artifact file
            
             An XmlReader that wraps a file 
        
        
            
            This class represents one resource item to be loaded from an assembly.
            
        
        
            
            Constructor - loads the resource stream
            
             
             
             The global registry of URIs 
        
        
            
            Implementation of IComparable.CompareTo()
            
             The object to compare to 
             0 if the loaders are "equal" (i.e., have the same _path value) 
        
        
            
            Equals() returns true if the objects have the same _path value
            
             The object to compare to 
             true if the objects have the same _path value 
        
        
            
            GetHashCode override that defers the result to the _path member variable.
            
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Create and return an XmlReader around the resource represented by this instance.
            
             A List of XmlReaders for all resources 
        
        
            
            Create and return an XmlReader around the resource represented by this instance
            if it is of the requested DataSpace type.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            This method parses the path to the resource and attempts to load it.
            The method also accounts for the wildcard assembly name.
            
        
        
            
            This class represents a wrapper around an XmlReader to be used to load metadata.
            Note that the XmlReader object isn't created here -- the wrapper simply stores
            a reference to it -- therefore we do not Close() the reader when we Dispose()
            the wrapper, i.e., Dispose() is a no-op.
            
        
        
            
            Constructor - saves off the XmlReader in a private data field
            
             The path to the resource to load 
        
        
            
            Implementation of IComparable.CompareTo()
            
             The object to compare to 
             0 if the loaders are "equal" (i.e., have the same _path value) 
        
        
            
            Equals() returns true if the objects have the same _path value
            
             The object to compare to 
             true if the objects have the same _path value 
        
        
            
            GetHashCode override that defers the result to the _path member variable.
            
        
        
            
            Get paths to artifacts for a specific DataSpace.
            
             The DataSpace for the artifacts of interest 
             A List of strings identifying paths to all artifacts for a specific DataSpace 
        
        
            
            Get paths to all artifacts
            
             A List of strings identifying paths to all resources 
        
        
            
            Get XmlReaders for all resources
            
             A List of XmlReaders for all resources 
        
        
            
            Create and return an XmlReader around the resource represented by this instance
            if it is of the requested DataSpace type.
            
             The DataSpace corresponding to the requested artifacts 
             A List of XmlReader objects 
        
        
            
            A helper function for splitting up a string that is a concatenation of strings delimited by the metadata
            path separator into a string list. The resulting list sorted SSDL, MSL, CSDL, if possible.
            
             The paths to split 
             An array of strings 
        
        
            
            Runtime Metadata Workspace
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Constructs a  with loaders for all item collections ()
            needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space
            loaders. The item collection delegates are executed lazily when a given collection is used for the first
            time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this
            is rarely done, and any attempt by EF to use the collection in such cases will result in an exception.
            
            Delegate to return the c-space (CSDL) item collection.
            Delegate to return the s-space (SSDL) item collection.
            Delegate to return the c/s mapping (MSL) item collection.
            Delegate to return the o-space item collection.
        
        
            
            Constructs a  with loaders for all item collections ()
            that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used.
            The item collection delegates are executed lazily when a given collection is used for the first
            time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this
            is rarely done, and any attempt by EF to use the collection in such cases will result in an exception.
            
            Delegate to return the c-space (CSDL) item collection.
            Delegate to return the s-space (SSDL) item collection.
            Delegate to return the c/s mapping (MSL) item collection.
        
        
            
            Initializes a new instance of the  class using the specified paths and assemblies.
            
            The paths to workspace metadata.
            The names of assemblies used to construct workspace.
        
        
            
            Creates an  configured to use the
            
            data space.
            
            The created parser object.
        
        
            
            Creates a new  bound to this metadata workspace based on the specified query expression.
            
            
            A new  with the specified expression as it's
            
            property.
            
            
            A  that defines the query.
            
            
            If
            
            is null
            
            
            If
            
            contains metadata that cannot be resolved in this metadata workspace
            
            
            If
            
            is not structurally valid because it contains unresolvable variable references
            
        
        
            
            Gets  items.
            
            
            The  items.
            
            
            The  from which to retrieve items.
            
        
        
            Registers the item collection with each associated data model.
            The output parameter collection that needs to be filled up.
        
        
            Loads metadata from the given assembly.
            The assembly from which the metadata will be loaded.
        
        
            Loads metadata from the given assembly.
            The assembly from which the metadata will be loaded.
            The delegate for logging the load messages.
        
        
            
            Implicit loading means that we are trying to help the user find the right
            assembly, but they didn't explicitly ask for it. Our Implicit rules require that
            we filter out assemblies with the Ecma or MicrosoftPublic PublicKeyToken on them
            Load metadata from the type's assembly into the OSpace ItemCollection.
            If type comes from known source, has Ecma or Microsoft PublicKeyToken then the type's assembly is not
            loaded, but the callingAssembly and its referenced assemblies are loaded.
            
             The type's assembly is loaded into the OSpace ItemCollection 
             The assembly and its referenced assemblies to load when type is insuffiecent 
        
        
            
            If OSpace is not loaded for the specified EntityType
            the load metadata from the callingAssembly and its referenced assemblies.
            
             The CSPace type to verify its OSpace counterpart is loaded 
             The assembly and its referenced assemblies to load when type is insuffiecent 
        
        
            Returns an item by using the specified identity and the data model.
            The item that matches the given identity in the specified data model.
            The identity of the item.
            The conceptual model in which the item is searched.
            The type returned by the method.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            Returns an item by using the specified identity and the data model.
            true if there is an item that matches the search criteria; otherwise, false.
            The conceptual model on which the item is searched.
            The conceptual model on which the item is searched.
            
            When this method returns, contains a  object. This parameter is passed uninitialized.
            
            The type returned by the method.
        
        
            Returns an item by using the specified identity and the data model.
            The item that matches the given identity in the specified data model.
            The identity of the item.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the item is searched.
            The type returned by the method.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            Returns an item by using the specified identity and the data model.
            true if there is an item that matches the search criteria; otherwise, false.
            The conceptual model on which the item is searched.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the item is searched.
            
            When this method returns, contains a  object. This parameter is passed uninitialized.
            
            The type returned by the method.
        
        
            Gets all the items in the specified data model.
            
            A collection of type  that contains all the items in the specified data model.
            
            The conceptual model for which the list of items is needed.
            The type returned by the method.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Returns an  object by using the specified type name, namespace name, and data model.
            
            
            An  object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null.
            
            The name of the type.
            The namespace of the type.
            The conceptual model on which the type is searched.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Returns an  object by using the specified type name, namespace name, and data model.
            
            true if there is a type that matches the search criteria; otherwise, false.
            The name of the type.
            The namespace of the type.
            The conceptual model on which the type is searched.
            
            When this method returns, contains an  object. This parameter is passed uninitialized.
            
        
        
            
            Returns an  object by using the specified type name, namespace name, and data model.
            
            
            An  object.
            
            The name of the type.
            The namespace of the type.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the type is searched.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Returns an  object by using the specified type name, namespace name, and data model.
            
            true if there is a type that matches the search criteria; otherwise, false.
            The name of the type.
            The namespace of the type.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the type is searched.
            
            When this method returns, contains an  object. This parameter is passed uninitialized.
            
        
        
            
            Returns an  object by using the specified entity container name and the data model.
            
            If there is no entity container, this method returns null; otherwise, it returns the first entity container.
            The name of the entity container.
            The conceptual model on which the entity container is searched.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Returns an  object by using the specified entity container name and the data model.
            
            true if there is an entity container that matches the search criteria; otherwise, false.
            The name of the entity container.
            The conceptual model on which the entity container is searched.
            
            When this method returns, contains an  object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized.
            
        
        
            
            Returns an  object by using the specified entity container name and the data model.
            
            If there is no entity container, this method returns null; otherwise, it returns the first entity container.
            The name of the entity container.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the entity container is searched.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Returns an  object by using the specified entity container name and the data model.
            
            true if there is an entity container that matches the search criteria; otherwise, false.
            The name of the entity container.
            true to perform the case-insensitive search; otherwise, false.
            The conceptual model on which the entity container is searched.
            
            When this method returns, contains an  object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized.
            
        
        
            Returns all the overloads of the functions by using the specified name, namespace name, and data model.
            
            A collection of type  that contains all the functions that match the specified name in a given namespace and a data model.
            
            The name of the function.
            The namespace of the function.
            The conceptual model in which the functions are searched.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            Returns all the overloads of the functions by using the specified name, namespace name, and data model.
            
            A collection of type  that contains all the functions that match the specified name in a given namespace and a data model.
            
            The name of the function.
            The namespace of the function.
            The conceptual model in which the functions are searched.
            true to perform the case-insensitive search; otherwise, false.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Gets the function as specified by the function key.
            All parameters are assumed to be .
            
             name of the function 
             namespace of the function 
             types of the parameters 
             true for case-insensitive lookup 
             
             The function that needs to be returned 
             The function as specified in the function key or null 
            if name, namespaceName, parameterTypes or space argument is null
        
        
            Returns the list of primitive types in the specified data model.
            
            A collection of type  that contains all the primitive types in the specified data model.
            
            The data model for which you need the list of primitive types.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            Gets all the items in the specified data model.
            
            A collection of type  that contains all the items in the specified data model.
            
            The conceptual model for which the list of items is needed.
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Given the canonical primitive type, get the mapping primitive type in the given dataspace
            
             primitive type kind 
             dataspace in which one needs to the mapping primitive types 
             The mapped scalar type 
            if space argument is null
            If ItemCollection has not been registered for the space passed in
            Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             type 
             The dataspace that the type for which map needs to be returned belongs to 
             true for case-insensitive lookup 
             space for which you want to get the mapped type 
             
             Returns false if no match found. 
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             typeIdentity of the type 
             The dataspace that the type for which map needs to be returned belongs to 
             space for which you want to get the mapped type 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             
             space for which you want to get the mapped type 
            Thrown if mapping space is not valid
        
        
            
            Search for a Mapping metadata with the specified type key.
            
             
             space for which you want to get the mapped type 
             
             Returns false if no match found. 
        
        
            
            Tests the retrieval of .
            
            true if the retrieval was successful; otherwise, false.
            
            The  from which to attempt retrieval of
            
            .
            
            When this method returns, contains the item collection. This parameter is passed uninitialized.
        
        
            
            Checks if the space is valid and whether the collection is registered for the given space, and if both are valid,
            then returns the itemcollection for the given space
            
             The dataspace for the item collection that should be returned 
             if true, will throw if the collection isn't registered 
            Thrown if required and mapping space is not valid or registered
        
        
            
            Returns a  object that represents the object space type that matches the type supplied by the parameter  edmSpaceType .
            
            
            A  object that represents the Object space type. If there is no matched type, this method returns null.
            
            
            A  object that represents the
            
            .
            
        
        
            
            Returns a  object via the out parameter  objectSpaceType  that represents the type that matches the
            
            supplied by the parameter  edmSpaceType .
            
            true if there is a type that matches the search criteria; otherwise, false.
            
            A  object that represents the
            
            .
            
            
            When this method returns, contains a  object that represents the Object space type. This parameter is passed uninitialized.
            
        
        
            
            Returns a  object that represents the object space type that matches the type supplied by the parameter  edmSpaceType .
            
            
            A  object that represents the Object space type. If there is no matched type, this method returns null.
            
            
            A  object that represents the
            
            .
            
        
        
            
            Returns a  object via the out parameter  objectSpaceType  that represents the type that matches the
            
            supplied by the parameter  edmSpaceType .
            
            true if there is a type that matches the search criteria; otherwise, false.
            
            A  object that represents the
            
            .
            
            
            When this method returns, contains a  object that represents the Object space type. This parameter is passed uninitialized.
            
        
        
            
            Helper method returning the OSpace enum type mapped to the specified Edm Space Type.
            If the DataSpace of the argument is not CSpace, or the mapped OSpace type
            cannot be determined, an ArgumentException is thrown.
            
             The CSpace type to look up 
             The OSpace type mapped to the supplied argument 
             Must be StructuralType or EnumType. 
        
        
            
            Helper method returning the OSpace structural or enum type mapped to the specified Edm Space Type.
            If the DataSpace of the argument is not CSpace, or if the mapped OSpace type
            cannot be determined, the method returns false and sets the out parameter
            to null.
            
             The CSpace type to look up 
             The OSpace type mapped to the supplied argument 
             true on success, false on failure 
             Must be StructuralType or EnumType. 
        
        
            
            Returns a  object that represents the
            
            that matches the type supplied by the parameter  objectSpaceType .
            
            
            A  object that represents the
            
            . If there is no matched type, this method returns null.
            
            
            A  that supplies the type in the object space.
            
        
        
            
            Returns a  object via the out parameter  edmSpaceType  that represents the
            
            that matches the type supplied by the parameter  objectSpaceType .
            
            true if there is a type that matches the search criteria; otherwise, false.
            
            A  object that represents the object space type.
            
            
            When this method returns, contains a  object that represents the
            
            . This parameter is passed uninitialized.
            
        
        
            
            Returns a  object that represents the
            
            that matches the type supplied by the parameter  objectSpaceType .
            
            
            A  object that represents the
            
            . If there is no matched type, this method returns null.
            
            
            A  that supplies the type in the object space.
            
        
        
            
            Returns a  object via the out parameter  edmSpaceType  that represents the
            
            that matches the type supplied by the parameter  objectSpaceType .
            
            true on success, false on failure.
            
            A  object that represents the object space type.
            
            
            When this method returns, contains a  object that represents the
            
            . This parameter is passed uninitialized.
            
        
        
            
            Helper method returning the Edm Space structural or enum type mapped to the OSpace Type parameter. If the
            DataSpace of the supplied type is not OSpace, or the mapped Edm Space type cannot
            be determined, an ArgumentException is thrown.
            
             The OSpace type to look up 
             The CSpace type mapped to the OSpace parameter 
             Must be StructuralType or EnumType 
        
        
            
            Helper method returning the Edm Space structural or enum type mapped to the OSpace Type parameter. If the
            DataSpace of the supplied type is not OSpace, or the mapped Edm Space type cannot
            be determined, the method returns false and sets the out parameter to null.
            
             The OSpace type to look up 
             The mapped CSpace type 
             true on success, false on failure 
             Must be StructuralType or EnumType 
        
        
            
            Returns generated update or query view for the given extent.
            
        
        
            
            Returns a TypeOf/TypeOfOnly Query for a given Extent and Type as a command tree.
            
        
        
            
            Returns generated function definition for the given function.
            Guarantees type match of declaration and generated parameters.
            Guarantees return type match.
            Throws internal error for functions without definition.
            Passes thru exception occured during definition generation.
            
        
        
            
            Determines if a target function exists for the given function import.
            
             Function import (function declared in a model entity container) 
             Function target mapping (function to which the import is mapped in the target store) 
             true if a mapped target function exists; false otherwise 
        
        
            
            Returns the view loader associated with this workspace,
            creating a loader if non exists. The loader includes
            context information used by the update pipeline when
            processing changes to C-space extents.
            
        
        
            
            Takes in a Edm space type usage and converts into an
            equivalent O space type usage
            
        
        
            
            Returns true if the item collection for the given space has already been registered else returns false
            
        
        
            
            Requires: C, S and CS are registered in this and other
            Determines whether C, S and CS are equivalent. Useful in determining whether a DbCommandTree
            is usable within a particular entity connection.
            
             Other workspace. 
             true is C, S and CS collections are equivalent 
        
        
            Clears all the metadata cache entries.
        
        
            
            Returns the canonical Model TypeUsage for a given PrimitiveTypeKind
            
             PrimitiveTypeKind for which a canonical TypeUsage is expected 
             a canonical model TypeUsage 
        
        
            
            Returns the Model PrimitiveType for a given primitiveTypeKind
            
             a PrimitiveTypeKind for which a Model PrimitiveType is expected 
             Model PrimitiveType 
        
        
            Gets original value members from an entity set and entity type.
            The original value members from an entity set and entity type.
            The entity set from which to retrieve original values.
            The entity type of which to retrieve original values.
        
        
            
            Returns members of a given /
            
            for which original values are needed when modifying an entity.
            
            
            The s for which original value is required.
            
            
            An  belonging to the C-Space.
            
            
            An  that participates in the given
            
            .
            
            true if entities may be updated partially; otherwise, false.
        
        
            
            Return members for  and  methods.
            
             An EntitySet belonging to the C-Space 
             An EntityType that participates in the given EntitySet 
             Scenario the members should be returned for. 
            
            ReadOnlyCollection of interesting members for the requested scenario (
            
            ).
            
        
        
            
            Returns the QueryCacheManager hosted by this metadata workspace instance
            
        
        
            
            The Max EDM version thats going to be supported by the runtime.
            
        
        
            
            Internal helper class for query
            
        
        
            
            Creates a new instance of perspective class so that query can work
            ignorant of all spaces
            
             runtime metadata container 
        
        
            
            Look up a type in the target data space based upon the fullName
            
             fullName 
             true for case-insensitive lookup 
             The type usage object to return 
             True if the retrieval succeeded 
        
        
            
            Class for representing a collection of items for the object layer.
            Most of the implementation for actual maintenance of the collection is
            done by ItemCollection
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            The method loads the O-space metadata for all the referenced assemblies starting from the given assembly
            in a recursive way.
            The assembly should be from Assembly.GetCallingAssembly via one of our public API's.
            
             assembly whose dependency list we are going to traverse 
        
        
            Loads metadata from the given assembly.
            The assembly from which the metadata will be loaded.
        
        
            Loads metadata from the given assembly.
            The assembly from which the metadata will be loaded.
            The EDM metadata source for the O space metadata.
            The delegate to which log messages are sent.
        
        
            Loads metadata from the specified assembly.
            The assembly from which the metadata will be loaded.
            The EDM metadata source for the O space metadata.
        
        
            
            Explicit loading means that the user specifically asked us to load this assembly.
            We won't do any filtering, they "know what they are doing"
            
        
        
            
            Implicit loading means that we are trying to help the user find the right
            assembly, but they didn't explicitly ask for it. Our Implicit rules require that
            we filter out assemblies with the Ecma or MicrosoftPublic PublicKeyToken on them
            Load metadata from the type's assembly.
            
             The type's assembly is loaded into the OSpace ItemCollection 
             true if the type and all its generic arguments are filtered out (did not attempt to load assembly) 
        
        
            
            internal static method to get the relationship name
            
        
        
            Returns a collection of primitive type objects.
            A collection of primitive type objects.
        
        
            
            Returns the CLR type that corresponds to the  supplied by the objectSpaceType parameter.
            
            The CLR type of the OSpace argument.
            
            A  that represents the object space type.
            
        
        
            
            Returns a CLR type corresponding to the  supplied by the objectSpaceType parameter.
            
            true if there is a type that matches the search criteria; otherwise, false.
            
            A  that represents the object space type.
            
            The CLR type.
        
        
             The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown. 
            The CLR type of the OSpace argument.
            The OSpace type to look up.
        
        
            Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null. 
            true on success, false on failure
            The OSpace enum type to look up
            The CLR enum type of the OSpace argument
        
        
            
            A helper method returning the underlying CLR type for the specified OSpace Enum or Structural type argument.
            If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown.
            
             The OSpace type to look up 
             The CLR type of the OSpace argument 
        
        
            
            A helper method returning the underlying CLR type for the specified OSpace enum or structural type argument.
            If the DataSpace of the parameter is not OSpace, the method returns false and sets
            the out parameter to null.
            
             The OSpace enum type to look up 
             The CLR enum type of the OSpace argument 
             true on success, false on failure 
        
        
            
            Given the canonical primitive type, get the mapping primitive type in the given dataspace
            
             canonical primitive type 
             The mapped scalar type 
        
        
            
            Get the OSpace type given the CSpace typename
            
        
        
            
            Given the ospace type, returns the fullname of the mapped cspace type.
            Today, since we allow non-default mapping between entity type and complex type,
            this is only possible for entity and complex type.
            
        
        
            Returns all the items of the specified type from this item collection.
            
            A collection of type  that contains all items of the specified type.
            
            The type returned by the method.
        
        
            
            This class is responsible for keeping track of which assemblies we have already
            considered so we don't reconsider them again.
            The current rules for an assembly to be "seen" is
            1. It is already in our dictionary
            AND
            1.  We are in attribute loading mode
            OR
            2. We have seen it already with a non null EdmItemCollection
            OR
            3. We are seeing it with a null EdmItemCollection this time
            
        
        
            
            Is the assembly and its referened assemblies not expected to have any metadata
            
        
        
            
            Class for representing a collection of items for the object layer.
            Most of the implementation for actual maintenance of the collection is
            done by ItemCollection
            
        
        
            
            Loads the given assembly and all the other referencd assemblies in the cache. If the assembly was already present
            then it loads from the cache
            
        
        
            
            Check to see if the type is already loaded - either in the typesInLoading, or ObjectItemCollection or
            in the global cache
            
        
        
            
            Loads the set of types from the given assembly and adds it to the given list of types
            
        
        
            
            This method loads all the relationship type that this entity takes part in
            
        
        
            
            Load metadata of the given type - when you call this method, you should check and make sure that the type has
            edm attribute. If it doesn't,we won't load the type and it will be returned as null
            
        
        
            
            Load all the property metadata of the given type
            
             The type where properties are loaded 
        
        
            
            Load the property with scalar property attribute.
            Note that we pass the CLR type in because in the case where the property is declared on a generic
            base class the DeclaringType of propert won't work for us and we need the real entity type instead.
            
             The CLR type of the entity 
             Metadata representing the property 
             True if the property forms part of the entity's key 
        
        
            
            Resolves enum type property.
            
             The type to add the declared property to. 
             Property to resolve. 
        
        
            
            For testing.
            
        
        
            
            The enumeration defining the type semantics used to resolve function overloads.
            These flags are defined in the provider manifest per function definition.
            
        
        
            
            Allow Implicit Conversion between given and formal argument types (default).
            
        
        
            
            Allow Type Promotion between given and formal argument types.
            
        
        
            
            Use strict Equivalence only.
            
        
        
            
            Class for representing a collection of items in Store space.
            
        
        
            
            For testing purposes only.
            
        
        
            
            constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
            encountered during load as the out parameter errors.
            
            xmlReaders where the CDM schemas are loaded
            the paths where the files can be found that match the xml readers collection
             
            An out parameter to return the collection of errors encountered while loading
        
        
            
            constructor that loads the metadata files from the specified xmlReaders, and returns the list of errors
            encountered during load as the out parameter errors.
            
             xmlReaders where the CDM schemas are loaded 
             the paths where the files can be found that match the xml readers collection 
        
        
            
            Initializes a new instance of the  class using the specified XMLReader.
            
            The XMLReader used to create metadata.
        
        
            Initializes a new instances of the  class.
            The model of the .
        
        
            
            Initializes a new instance of the  class using the specified file paths.
            
            The file paths used to create metadata.
        
        
            
            Returns a collection of the  objects.
            
            
            A  object that represents the collection of the
            
            objects.
            
        
        
            
            Given the canonical primitive type, get the mapping primitive type in the given dataspace
            
             canonical primitive type 
             The mapped scalar type 
        
        
            
            checks if the schemaKey refers to the provider manifest schema key
            and if true, loads the provider manifest
            
             The store manifest 
        
        
            
            Get all the overloads of the function with the given name, this method is used for internal perspective
            
             The full name of the function 
             true for case-insensitive lookup 
             A collection of all the functions with the given name in the given data space 
            Thrown if functionaName argument passed in is null
        
        
            
            Convert the S type function parameters and returnType to C types.
            
        
        
            
            Factory method that creates a .
            
            
            SSDL artifacts to load. Must not be null.
            
            
            Paths to SSDL artifacts. Used in error messages. Can be null in which case
            the base Uri of the XmlReader will be used as a path.
            
            
            Custom resolver. Currently used to resolve DbProviderServices implementation. If null
            the default resolver will be used.
            
            
            The collection of errors encountered while loading.
            
            
             instance if no errors encountered. Otherwise null.
            
        
        
            
            Returns the query cache manager
            
        
        
            Gets the provider factory of the StoreItemCollection.
            The provider factory of the StoreItemCollection.
        
        
            Gets the provider manifest of the StoreItemCollection.
            The provider manifest of the StoreItemCollection.
        
        
            Gets the manifest token of the StoreItemCollection.
            The manifest token of the StoreItemCollection.
        
        
            Gets the invariant name of the StoreItemCollection.
            The invariant name of the StoreItemCollection.
        
        
            Gets the version of the store schema for this collection.
            The version of the store schema for this collection.
        
        
            
            Internal helper class for query
            
        
        
            
            Creates a new instance of perspective class so that query can work
            ignorant of all spaces
            
             runtime metadata container 
        
        
            
            Look up a type in the target data space based upon the fullName
            
             fullName 
             true for case-insensitive lookup 
             
             a list of types that have the specified full name but may differ by strong name 
        
        
            
            Returns the entity container in CSpace or SSpace
            
        
        
            
            Represents a set of static Type helpers operating on TypeMetadata
            
        
        
            
            Asserts types are in Model space
            
        
        
            
            Asserts querycommandtrees are in model space type terms
            
        
        
            
            Determines whether a given typeUsage is valid as OrderBy sort key
            
        
        
            
            Determines whether a given typeusage is valid as GroupBy key
            
        
        
            
            Determine wheter a given typeusage is valid for Distinct operator
            
        
        
            
            Determine wheter a given typeusage is valid for set comparison operator such as UNION, INTERSECT and EXCEPT
            
        
        
            
            Returns true if typeUsage type is valid for IS [NOT] NULL (expr) operator
            
        
        
            
            Creates metadata for a new row type with column names and types based on the key members of the specified Entity type
            
             The Entity type that provides the Key members on which the column names and types of the new row type will be based 
             A new RowType info with column names and types corresponding to the Key members of the specified Entity type 
        
        
            
            Gets primitive type usage for .
            
             Primitive or enum type usage. 
            
            Primitive type usage for  .
            
            
            For enum types a new type usage based on the underlying type will be created. For primitive types
            the value passed to the function will be returned.
            
        
        
            
            Factory method for creating a type usage for underlying type of enum type usage.
            
             Enum type usage used to create an underlying type usage of. 
             Type usage for the underlying enum type. 
        
        
            
            Factory method for creating a type usage for underlying union type of spatial type usage.
            
             Spatial type usage used to create a union type usage of. 
             Type usage for the spatial union type of the correct topology. 
        
        
            
            Retrieves Properties and/or RelationshipEnds declared by the specified type or any base type.
            
        
        
            
            Retrieves Properties and/or RelationshipEnds declared by (and ONLY by) the specified type.
            
        
        
            
            Retrieves Properties and/or RelationshipEnds declared by (and ONLY by) the specified type.
            
        
        
            
            Returns row type if supplied function is a tvf returning Collection(RowType), otherwise null.
            
        
        
            
            If the type refered to by the TypeUsage is a RefType, extracts the EntityType and returns true,
            otherwise returns false.
            
             TypeUsage that may or may not refer to a RefType 
             Non-null if the TypeUsage refers to a RefType, null otherwise 
             True if the TypeUsage refers to a RefType, false otherwise 
        
        
            
            Converts the given CLR type into a DbType
            
             The CLR type to convert 
        
        
            
            returns a Typeusage
            
        
        
            
            Provides type semantics service, type operations and type predicates for the EDM type system.
            
            
            For detailed functional specification, see "The EDP Type System.docx" and "edm.spec.doc".
            Notes:
            1) The notion of 'type' for the sake of type operation semantics is based on TypeUsage, i.e., EdmType *plus* facets.
            2) EDM built-in primitive types are defined by the EDM Provider Manifest.
            3) SubType and Promotable are similar notions however subtyping is stricter than promotability. Subtyping is used for mapping
            validation while Promotability is used in query, update expression static type validation.
            
        
        
            
            Determines whether two types are exactly equal.
            For row types, this INCLUDES property names as well as property types.
            
             The first type to compare. 
             The second type to compare. 
            
            If the two types are structurally equal, true ; otherwise false .
            
        
        
            
            Determines if the two types are structurally equivalent.
            
            
            Equivalence for nomimal types is based on lexical identity and structural equivalence for structural types.
            Structural equivalence for row types is based only on equivalence of property types, property names are ignored.
            
             true if equivalent, false otherwise 
        
        
            
            determines if two types are equivalent or if fromType is promotable to toType
            
             true if fromType equivalent or promotable to toType, false otherwise 
        
        
            
            determines if two types are equivalent or if fromType is promotable to toType
            
             true if fromType equivalent or promotable to toType, false otherwise 
        
        
            
            determines if subType is equal to or a sub-type of superType.
            
             true if subType is equal to or a sub-type of superType, false otherwise 
        
        
            
            determines if subType EdmType is a sub-type of superType EdmType.
            
             true if subType is a sub-type of superType, false otherwise 
        
        
            
            Determines if fromType is promotable to toType.
            
             true if fromType is promotable to toType, false otherwise 
        
        
            
            Flattens composite transient type down to nominal type leafs.
            
        
        
            
            determines if fromType can be casted to toType.
            
             Type to cast from. 
             Type to cast to. 
            
            true if  can be casted to  ; false otherwise.
            
            
            Cast rules:
            - primitive types can be casted to other primitive types
            - primitive types can be casted to enum types
            - enum types can be casted to primitive types
            - enum types cannot be casted to other enum types except for casting to the same type
            
        
        
            
            Determines if a common super type (LUB) exists between type1 and type2.
            
             true if a common super type between type1 and type2 exists and out commonType represents the common super type. false otherwise along with commonType as null 
        
        
            
            Gets a Common super-type of type1 and type2 if one exists. null otherwise.
            
        
        
            
            determines if an EdmFunction is an aggregate function
            
        
        
            
            determines if fromType can be cast to toType. this operation is valid only
            if fromtype and totype are polimorphic types.
            
        
        
            
            determines if fromEdmType can be cast to toEdmType. this operation is valid only
            if fromtype and totype are polimorphic types.
            
        
        
            
            Determines if the
            
            is a structural nominal type, i.e., EntityType or ComplexType
            
             Type to be checked. 
            
            true if the
            
            is a nominal type. false otherwise.
            
        
        
            
            determines if type is a collection type.
            
        
        
            
            determines if type is a complex type.
            
        
        
            
            determines if type is an EntityType
            
        
        
            
            determines if type is a Relationship Type.
            
        
        
            
            determines if type is of EnumerationType.
            
        
        
            
            determines if  is primitive or enumeration type
            
             Type to verify. 
            
            true if  is primitive or enumeration type. false otherwise.
            
        
        
            
            determines if  is primitive or enumeration type
            
             Type to verify. 
            
            true if  is primitive or enumeration type. false otherwise.
            
        
        
            
            Determines if type is a numeric type, i.e., is one of:
            Byte, Int16, Int32, Int64, Decimal, Single or Double
            
        
        
            
            Determines if type is an integer numeric type, i.e., is one of: Byte, Int16, Int32, Int64
            
        
        
            
            Determines if type is an fixed point numeric type, i.e., is one of: Decimal
            
        
        
            
            Determines if type is an float point numeric type, i.e., is one of: Single or Double.
            
        
        
            
            Determines if type is an unsigned integer numeric type, i.e., is Byte
            
        
        
            
            determines if type is a polimorphic type, ie, EntityType or ComplexType.
            
        
        
            
            determines if type is of Boolean Kind
            
        
        
            
            determines if type is a primitive/scalar type.
            
        
        
            
            determines if type is a primitive type of given primitiveTypeKind
            
        
        
            
            determines if type is a RowType
            
        
        
            
            determines if type is a ReferenceType
            
        
        
            
            determines if type is a spatial type
            
        
        
            
            determines if type is a strong spatial type (i.e., a spatial type, but not one of the two spatial union types)
            
        
        
            
            determines if type is a structural type, ie, EntityType, ComplexType, RowType or ReferenceType.
            
        
        
            
            determines if edmMember is part of the key of it's defining type.
            
        
        
            
            determines if type is Nullable.
            
        
        
            
            determines if edmMember is Nullable.
            
        
        
            
            determines if given type is equal-comparable.
            
             true if equal-comparable, false otherwise 
        
        
            
            Determines if type1 is equal-comparable to type2.
            in order for type1 and type2 to be equal-comparable, they must be
            individualy equal-comparable and have a common super-type.
            
             an instance of a TypeUsage 
             an instance of a TypeUsage 
            
            true if type1 and type2 are equal-comparable, false otherwise
            
        
        
            
            Determines if given type is order-comparable
            
        
        
            
            Determines if type1 is order-comparable to type2.
            in order for type1 and type2 to be order-comparable, they must be
            individualy order-comparable and have a common super-type.
            
             an instance of a TypeUsage 
             an instance of a TypeUsage 
            
            true if type1 and type2 are order-comparable, false otherwise
            
        
        
            
            Removes facets that are not type constraints.
            
        
        
            
            Determines if the given edmType is equal comparable. Consult "EntitySql Language Specification",
            section 7 - Comparison and Dependent Operations for details.
            
             an instance of an EdmType 
             true if edmType is equal-comparable, false otherwise 
        
        
            
            Determines if the given edmType is order comparable. Consult "EntitySql Language Specification",
            section 7 - Comparison and Dependent Operations for details.
            
             an instance of an EdmType 
             true if edmType is order-comparable, false otherwise 
        
        
            
            Computes the closure of common super types of the set of predefined edm primitive types
            This is done only once and cached as opposed to previous implementation that was computing
            this for every new pair of types.
            
        
        
            
            returns the intersection of types.
            
        
        
            
            Returns the list of common super types of two primitive types.
            
        
        
            
            Class representing a validtion error event args
            
        
        
            
            Construct the validation error event args with a validation error object
            
             The validation error object for this event args 
        
        
            
            Gets the validation error object this event args
            
        
        
            
            The validation severity level
            
        
        
            
            Warning
            
        
        
            
            Error
            
        
        
            
            Internal
            
        
        
            
            Class that contains all the constants for various schemas
            
        
        
            
            This exception is thrown when a requested object is not found in the store.
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of  class that uses a specified error message and a reference to the inner exception.
            
            The message that describes the error.
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance of ObjectNotFoundException
            
        
        
            
            Caches an ELinq query
            
        
        
            
            Constructs a new compiled query instance which hosts the delegate returned to the user
            (one of the Invoke overloads).
            
             Compiled query expression. 
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg11  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg12  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg13  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg14  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg15  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg11  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg12  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg13  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg14  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg11  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg12  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg13  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg11  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg12  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg11  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg10  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg9  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg8  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg7  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg6  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg5  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg4  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg3  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1  must be a primitive type.
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg2  must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            Represents the type of the parameter that has to be passed in when executing the delegate returned by this method.  TArg1 must be a primitive type.
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            Creates a new delegate that represents the compiled LINQ to Entities query.
            
            , a generic delegate that represents the compiled LINQ to Entities query.
            
            The lambda expression to compile.
            
            A type derived from .
            
            
            The type  T  of the query results returned by executing the delegate returned by the
            
            method.
            
        
        
            
            This method is trying to distinguish between a set of types and a singleton type
            It also has the restriction that to be a set of types, it must be assignable from ObjectQuery<T>
            Otherwise we won't be able to cast our query to the set requested.
            
             The type asked for as a result type. 
             Is it a set of a type. 
             The element type to use 
        
        
            
            The values currently assigned to the properties of an entity.
            
        
        
            
            Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object.
            
        
        
            Retrieves the field value as a Boolean.
            The field value as a Boolean.
            The ordinal of the field.
        
        
            Retrieves the field value as a byte.
            The field value as a byte.
            The ordinal of the field.
        
        
            Retrieves the field value as a byte array.
            The number of bytes copied.
            The ordinal of the field.
            The index at which to start copying data.
            The destination buffer where data is copied.
            The index in the destination buffer where copying will begin.
            The number of bytes to copy.
        
        
            Retrieves the field value as a char.
            The field value as a char.
            The ordinal of the field.
        
        
            Retrieves the field value as a char array.
            The number of characters copied.
            The ordinal of the field.
            The index at which to start copying data.
            The destination buffer where data is copied.
            The index in the destination buffer where copying will begin.
            The number of characters to copy.
        
        
            
            Retrieves the field value as an .
            
            
            The field value as an .
            
            The ordinal of the field.
        
        
            
            Retrieves the field value as a 
            
            
            The field value as a .
            
            The ordinal of the field.
        
        
            Retrieves the name of the field data type.
            The name of the field data type.
            The ordinal of the field.
        
        
            
            Retrieves the field value as a .
            
            
            The field value as a .
            
            The ordinal of the field.
        
        
            Retrieves the field value as a decimal.
            The field value as a decimal.
            The ordinal of the field.
        
        
            Retrieves the field value as a double.
            The field value as a double.
            The ordinal of the field.
        
        
            Retrieves the type of a field.
            The field type.
            The ordinal of the field.
        
        
            Retrieves the field value as a float.
            The field value as a float.
            The ordinal of the field.
        
        
            
            Retrieves the field value as a .
            
            
            The field value as a .
            
            The ordinal of the field.
        
        
            
            Retrieves the field value as an .
            
            
            The field value as an .
            
            The ordinal of the field.
        
        
            
            Retrieves the field value as an .
            
            
            The field value as an .
            
            The ordinal of the field.
        
        
            
            Retrieves the field value as an .
            
            
            The field value as an .
            
            The ordinal of the field.
        
        
            Retrieves the name of a field.
            The name of the field.
            The ordinal of the field.
        
        
            Retrieves the ordinal of a field by using the name of the field.
            The ordinal of the field.
            The name of the field.
        
        
            Retrieves the field value as a string.
            The field value.
            The ordinal of the field.
        
        
            Retrieves the value of a field.
            The field value.
            The ordinal of the field.
        
        
            Retrieves the value of a field.
            The field value.
            The ordinal of the field.
        
        
            Populates an array of objects with the field values of the current record.
            The number of field values returned.
            An array of objects to store the field values.
        
        
            
            Returns whether the specified field is set to .
            
            
            true if the field is set to ; otherwise false.
            
            The ordinal of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Sets field values in a record.
            The number of the fields that were set.
            The values of the field.
        
        
            
            Sets a field to the  value.
            
            The ordinal of the field.
        
        
            
            Retrieves a field value as a .
            
            
            A field value as a .
            
            The ordinal of the field.
        
        
            
            Retrieves the field value as a .
            
            
            The field value as a .
            
            The ordinal of the field.
        
        
            Sets the value of a field in a record.
            The ordinal of the field.
            The value of the field.
        
        
            Gets the number of fields in the record.
            An integer value that is the field count.
        
        
            Returns a value that has the given field ordinal.
            The value that has the given field ordinal.
            The ordinal of the field.
        
        
            Gets a value that has the given field name.
            The field value.
            The name of the field.
        
        
            Gets data record information.
            
            A  object.
            
        
        
            
            This is the interface that represent the minimum interface required
            to be an entity in ADO.NET.
            
        
        
            
            This class contains the common methods need for an date object.
            
        
        
            
            Public constant name used for change tracking
            Providing this definition allows users to use this constant instead of
            hard-coding the string. This helps to ensure the property name is correct
            and allows faster comparisons in places where we are looking for this specific string.
            Users can still use the case-sensitive string directly instead of the constant,
            it will just be slightly slower on comparison.
            Including the dash (-) character around the name ensures that this will not conflict with
            a real data property, because -EntityKey- is not a valid identifier name
            
        
        
            
            Raises the  event.
            
            The name of the changed property.
        
        
            
            Raises the  event.
            
            The name of the property changing.
        
        
            Returns the minimum date time value supported by the data source.
            
            A  value that is the minimum date time that is supported by the data source.
            
        
        
            Raises an event that is used to report that a property change is pending.
            The name of the changing property.
        
        
            Raises an event that is used to report that a property change has occurred.
            The name for the changed property.
        
        
            Returns a complex type for the specified property.
            
            Unlike most of the other helper methods in this class, this one is not static
            because it references the SetValidValue for complex objects, which is also not static
            because it needs a reference to this.
                    
            A complex type object for the property.
            A complex object that inherits from complex object.
            The name of the complex property that is the complex object.
            Indicates whether the type supports null values.
            Indicates whether the type is initialized.
            The type of the complex object being requested.
        
        
            
            This method is called by a ComplexObject contained in this Entity
            whenever a change is about to be made to a property of the
            ComplexObject so that the change can be forwarded to the change tracker.
            
             The name of the top-level entity property that contains the ComplexObject that is calling this method. 
             The instance of the ComplexObject on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            
            This method is called by a ComplexObject contained in this Entity
            whenever a change has been made to a property of the
            ComplexObject so that the change can be forwarded to the change tracker.
            
             The name of the top-level entity property that contains the ComplexObject that is calling this method. 
             The instance of the ComplexObject on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            Determines whether the specified byte arrays contain identical values.
            true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false.
            The first byte array value to compare.
            The second byte array to compare.
        
        
            Returns a copy of the current byte value.
            
            A copy of the current  value.
            
            The current byte array value.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being validated.
            
            The value passed into the property setter.
            Flag indicating if this property is allowed to be null.
            The name of the property that is being validated.
            If value is null for a non nullable value.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            A  value being set.
            
            The value being set.
            Indicates whether the property is nullable.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            The Boolean value.
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            The Boolean value.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            A  that is set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value that is set.
            
            The value that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            A  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            Makes sure the Single value being set for a property is valid.
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            Makes sure the Single value being set for a property is valid.
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            Name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The nullable  value being set.
            
            
            The nullable  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            Makes sure the UInt16 value being set for a property is valid.
            The nullable UInt16 value being set.
            The nullable UInt16 value.
            The name of the property that is being validated.
        
        
            Makes sure the UInt16 value being set for a property is valid.
            The nullable UInt16 value being set.
            The nullable UInt16 value.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            Makes sure the UInt32 value being set for a property is valid.
            The nullable UInt32 value being set.
            The nullable UInt32 value.
            The name of the property that is being validated.
        
        
            Makes sure the UInt32 value being set for a property is valid.
            The nullable UInt32 value being set.
            The nullable UInt32 value.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            
            The  value being set.
            
            
            The  value.
            
        
        
            
            Makes sure the  value being set for a property is valid.
            
            The nullable UInt64 value being set.
            The nullable UInt64 value.
            The name of the property that is being validated.
        
        
            
            Makes sure the  value being set for a property is valid.
            
            The nullable UInt64 value being set.
            The nullable UInt64 value.
        
        
            Validates that the property is not null, and throws if it is.
            The validated property.
            The string value to be checked.
            Flag indicating if this property is allowed to be null.
            The name of the property that is being validated.
            The string value is null for a non-nullable string.
        
        
            Validates that the property is not null, and throws if it is.
            
            The validated  value.
            
            The string value to be checked.
            Flag indicating if this property is allowed to be null.
        
        
            Validates that the property is not null, and throws if it is.
            
            The  value being set.
            
            
            The  value to be checked.
            
            Flag indicating if this property is allowed to be null.
            Name of the property that is being validated.
            The value is null for a non-nullable property.
        
        
            Validates that the property is not null, and throws if it is.
            
            The  value being set.
            
            
             value to be checked.
            
            Flag indicating if this property is allowed to be null.
            The value is null for a non-nullable property.
        
        
            Validates that the property is not null, and throws if it is.
            
            The  value being set.
            
            
             value to be checked.
            
            Flag indicating if this property is allowed to be null.
            The name of the property that is being validated.
            The value is null for a non-nullable property.
        
        
            Validates that the property is not null, and throws if it is.
            
            The  value being set.
            
            
            The  value to be checked.
            
            Flag indicating if this property is allowed to be null.
            The value is null for a non-nullable property.
        
        
            Sets a complex object for the specified property.
            A complex type that derives from complex object.
            The original complex object for the property, if any.
            The complex object is being set.
            The complex property that is being set to the complex object.
            The type of the object being replaced.
        
        
            Verifies that a complex object is not null.
            The complex object being validated.
            The complex object that is being validated.
            The complex property on the parent object that is associated with  complexObject .
            The type of the complex object being verified.
        
        
            
            Notification that a property has been changed.
            
            
            The PropertyChanged event can indicate all properties on the
            object have changed by using either a null reference
            (Nothing in Visual Basic) or String.Empty as the property name
            in the PropertyChangedEventArgs.
            
        
        
            
            Notification that a property is about to be changed.
            
            
            The PropertyChanging event can indicate all properties on the
            object are changing by using either a null reference
            (Nothing in Visual Basic) or String.Empty as the property name
            in the PropertyChangingEventArgs.
            
        
        
            
            Determines whether the structural object is attached to a change tracker or not
            
        
        
            
            Associate the ComplexType with an Entity or another ComplexObject
            Parent may be an Entity or ComplexObject
            
             Object to be added to. 
             The property on the parent that reference the complex type. 
        
        
            
            Removes this instance from the parent it was attached to.
            Parent may be an Entity or ComplexObject
            
        
        
            Notifies the change tracker that a property change is pending on a complex object.
            The name of the changing property.
             property  is null.
        
        
            Notifies the change tracker that a property of a complex object has changed.
            The name of the changed property.
             property  is null.
        
        
            
            This method is used to report all changes on this ComplexObject to its parent entity or ComplexObject
            
             Should be null in this method override. This is only relevant in Entity's implementation of this method, so it is unused here Instead of passing the most-derived property name up the hierarchy, we will always pass the current _parentPropertyName Once this gets up to the Entity, it will actually use the value that was passed in 
             The instance of the object on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            
            This method is used to report all changes on this ComplexObject to its parent entity or ComplexObject
            
             Should be null in this method override. This is only relevant in Entity's implementation of this method, so it is unused here Instead of passing the most-derived property name up the hierarchy, we will always pass the current _parentPropertyName Once this gets up to the Entity, it will actually use the value that was passed in. 
             The instance of the object on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            
            Attribute for complex properties
            Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
            The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
            
        
        
            
            Base attribute for properties mapped to store elements.
            Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
            The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
            
        
        
            
            Only allow derived attributes from this assembly
            
        
        
            
            attribute for complex types
            
        
        
            
            Base attribute for schematized types
            
        
        
            
            Only allow derived attributes from this assembly
            
        
        
            The name of the type in the conceptual schema that maps to the class to which this attribute is applied.
            
            A  that is the name.
            
        
        
            The namespace name of the entity object type or complex type in the conceptual schema that maps to this type.
            
            A  that is the namespace name.
            
        
        
            
            Attribute identifying the Edm base class
            
        
        
            
            Attribute indicating an enum type.
            
        
        
            
            Attribute identifying the Ends defined for a RelationshipSet
            Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
            The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
            
        
        
            
            Initializes a new instance of the
            
            class.
            
            The namespace name of the relationship property.
            The name of the relationship. The relationship name is not namespace qualified.
            The role name at the other end of the relationship.
        
        
            The namespace name of the navigation property.
            
            A  that is the namespace name.
            
        
        
            Gets the unqualified relationship name. 
            The relationship name.
        
        
            Gets the role name at the other end of the relationship.
            The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM).
        
        
            
            Defines a relationship between two entity types based on an association in the conceptual model.
            
        
        
            
            Creates an instance of the  class.
            
            The name of the namespace for the association in which this entity participates.
            The name of a relationship in which this entity participates. 
            Name of the role for the type at one end of the association.
            
            A value of  that indicates the multiplicity at one end of the association, such as one or many.
            
            The type of the entity at one end of the association.
            Name of the role for the type at the other end of the association.
            
            A value of  that indicates the multiplicity at the other end of the association, such as one or many.
            
            The type of the entity at the other end of the association.
        
        
            
            Initializes a new instance of the
            
            class.
            
            The name of the namespace for the association in which this entity participates.
            The name of a relationship in which this entity participates.
            Name of the role for the type at one end of the association.
            
            A value of  that indicates the multiplicity at one end of the association, such as one or many.
            
            The type of the entity at one end of the association.
            Name of the role for the type at the other end of the association.
            
            A value of  that indicates the multiplicity at the other end of the association, such as one or many.
            
            The type of the entity at the other end of the association.
            A value that indicates whether the relationship is based on the foreign key value.
        
        
            The namespace for the relationship.
            
            A  that is the namespace for the relationship.
            
        
        
            Name of the relationship. 
            
            A  that is the name of a relationship that is defined by this
            
            .
            
        
        
            Name of the role at one end of the relationship.
            
            A  that is the name of the role.
            
        
        
            Multiplicity at one end of the relationship.
            
            A  value that indicates the multiplicity.
            
        
        
            Type of the entity at one end of the relationship.
            
            A  that is the type of the object at this end of the association.
            
        
        
            Name of the role at the other end of the relationship.
            
            A  that is the name of the role.
            
        
        
            Multiplicity at the other end of the relationship.
            
            A  value that indicates the multiplicity.
            
        
        
            Type of the entity at the other end of the relationship.
            
            A  that is the type of the object t the other end of the association.
            
        
        
            Gets a Boolean value that indicates whether the relationship is based on the foreign key value.
            true if the relationship is based on the foreign key value; otherwise false.
        
        
            
            Attribute for scalar properties in an IEntity.
            Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
            The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
            
        
        
            Gets or sets the value that indicates whether the property can have a null value.
            The value that indicates whether the property can have a null value.
        
        
            Gets or sets the value that indicates whether the property is part of the entity key.
            The value that indicates whether the property is part of the entity key.
        
        
            
            Attribute for static types
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class with a unique value for each model referenced by the assembly.
            
            
            Setting this parameter to a unique value for each model file in a Visual Basic
            assembly will prevent the following error:
            "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values."
            
            A string that is a unique GUID value for the model in the assembly.
        
        
            
            Collection of entities modeling a particular EDM construct
            which can either be all entities of a particular type or
            entities participating in a particular relationship.
            
        
        
            
            Base class for EntityCollection and EntityReference
            
        
        
            
            Represents one end of a relationship.
            
        
        
            Loads the related object or objects into this related end with the default merge option.
        
        
            Loads the related object or objects into the related end with the specified merge option.
            
            The  to use when merging objects into an existing
            .
            
        
        
            Adds an object to the related end.
            
            An object to add to the collection.  entity  must implement
            
            .
            
        
        
            Adds an object to the related end.
            An object to add to the collection.
        
        
            Removes an object from the collection of objects at the related end.
            
            true if  entity  was successfully removed, false if  entity  was not part of the
            
            .
            
            
            The object to remove from the collection.  entity  must implement
            
            .
            
        
        
            Removes an object from the collection of objects at the related end.
            
            true if  entity  was successfully removed; false if  entity  was not part of the
            
            .
            
            An object to remove from the collection.
        
        
            Defines a relationship between two attached objects.
            
            The object being attached.  entity  must implement
            
            .
            
        
        
            Defines a relationship between two attached objects.
            The object being attached.
        
        
            
            Returns an  that represents the objects that belong to the related end.
            
            
            An  that represents the objects that belong to the related end.
            
        
        
            
            Returns an  that iterates through the collection of related objects.
            
            
            An  that iterates through the collection of related objects.
            
        
        
            Gets a value that indicates whether all related objects have been loaded.
            true if the related end contains all the related entities from the database; otherwise, false.
        
        
            Gets the name of the relationship in which this related end participates.
            
            The name of the relationship in which this  is participating. The relationship name is not namespace qualified.
            
        
        
            Gets the role name at the source end of the relationship.
            The role name at the source end of the relationship.
        
        
            Gets the role name at the target end of the relationship.
            The role name at the target end of the relationship.
        
        
            Returns a reference to the metadata for the related end.
            
            A  object that contains metadata for the end of a relationship.
            
        
        
            
            The default constructor is required for some serialization scenarios with EntityReference.
            
        
        
            
            Note that this field should no longer be used directly.  Instead, use the _wrappedOwner
            field.  This field is retained only for compatibility with the serialization format introduced in v1.
            
        
        
            
            Returns an  that represents the objects that belong to the related end.
            
            
            An  that represents the objects that belong to the related end.
            
        
        
            
            This is the query which represents the source of the
            related end.  It is constructed on demand using the
            _connection and _cache fields and a query string based on
            the type of related end and the metadata passed into its
            constructor indicating the particular EDM construct the
            related end models. This method is called by both subclasses of this type
            and those subclasses pass in their generic type parameter in order
            to produce an ObjectQuery of the right type. This allows this common
            functionality to be implemented here in the base class while still
            allowing the base class to be non-generic.
            
             MergeOption to use when creating the query 
             Indicates whether the query can produce results. For instance, a lookup with null key values cannot produce results. 
             The query loading related entities. 
        
        
            
            Validates that a call to Load has the correct conditions
            This helps to reduce the complexity of the Load call (SQLBU 524128)
            
             See RelatedEnd.CreateSourceQuery method. This is returned here so we can create it and validate the state before returning it to the caller 
        
        
            
            Loads the related object or objects into the related end with the default merge option.
            
            
            When the source object was retrieved by using a  query 
            and the  is not 
            or the related objects are already loaded
            or when the source object is not attached to the 
            or when the source object is being tracked but is in the
             or  state
            or the 
            used for 
            is .
            
        
        
            
            Loads an object or objects from the related end with the specified merge option.
            
            
            The  to use when merging objects into an existing
            .
            
            
            When the source object was retrieved by using a   query 
            and the 
            is not 
            or the related objects are already loaded
            or when the source object is not attached to the 
            or when the source object is being tracked but is in the
              or  state 
            or the 
            used for 
            is .
            
        
        
            
            Takes a list of related entities and merges them into the current collection.
            
             Entities to relate to the owner of this EntityCollection 
             MergeOption to use when updating existing relationships 
             Indicates whether IsLoaded should be set to true after the Load is complete. Should be false in cases where we cannot guarantee that the set of entities is complete and matches the server, such as Attach. 
        
        
            
            Attaches an entity to the related end.  This method works in exactly the same way as Attach(object).
            It is maintained for backward compatibility with previous versions of IRelatedEnd.
            
             The entity to attach to the related end 
            
            Thrown when
            
            is null.
            
            Thrown when the entity cannot be related via the current relationship end.
        
        
            
            Attaches an entity to the related end. If the related end is already filled
            or partially filled, this merges the existing entities with the given entity. The given
            entity is not assumed to be the complete set of related entities.
            Owner and all entities passed in must be in Unchanged or Modified state.
            Deleted elements are allowed only when the state manager is already tracking the relationship
            instance.
            
             The entity to attach to the related end 
            
            Thrown when
            
            is null.
            
            Thrown when the entity cannot be related via the current relationship end.
        
        
            
            Adds an entity to the related end.  This method works in exactly the same way as Add(object).
            It is maintained for backward compatibility with previous versions of IRelatedEnd.
            
             Entity instance to add to the related end 
        
        
            
            Adds an entity to the related end.  If the owner is
            attached to a cache then the all the connected ends are
            added to the object cache and their corresponding relationships
            are also added to the ObjectStateManager. The RelatedEnd of the
            relationship is also fixed.
            
             Entity instance to add to the related end 
        
        
            
            Removes an entity from the related end.  This method works in exactly the same way as Remove(object).
            It is maintained for backward compatibility with previous versions of IRelatedEnd.
            
             Entity instance to remove from the related end 
             Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. 
        
        
            
            Removes an entity from the related end.  If owner is
            attached to a cache, marks relationship for deletion and if
            the relationship is composition also marks the entity for deletion.
            
             Entity instance to remove from the related end 
             Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd. 
        
        
            Adds the current RelatedEnd object to the navigation property if compatible.
            The other related end.
        
        
            Specifies whether the cached foreign key is conceptual null.
            true if the cached foreign key is conceptual null; otherwise, false.
        
        
            Updates the dependent end foreign keys.
            The dependent end foreign keys.
            The target related end.
            true to force foreign key changes; otherwise, false.
        
        
            Verifies the detached key matches.
            The entity keys.
        
        
            
            Returns true if this Related end represents the dependent of a Referential Constraint
            
             If true then the method will only return true if the Referential Constraint is identifying 
        
        
            
            Check if current RelatedEnd is a Principal end of some Referential Constraint and if some of the "from" properties is not-nullable
            
        
        
            
            Returns an  that iterates through the collection of related objects.
            
            
            An  that iterates through the collection of related objects.
            
        
        
            
            Set the context and load options so that Query can be constructed on demand.
            
        
        
            Validated the detached entity keys associated with the related end.
        
        
            
            Clear the source and context.
            
        
        
            
            Used internally to deserialize entity objects along with the
            
            instances.
            
            The serialized stream.
        
        
            Occurs when a change is made to a related end.
        
        
            
            internal event to notify change in collection
            
        
        
            
            This class describes a relationship navigation from the
            navigation property on one entity to another entity.
            RelationshipNavigation uniquely identify a relationship type.
            The RelationshipNavigation class is internal only, so this property is also internal.
            See RelationshipName, SourceRoleName, and TargetRoleName for the public exposure
            of the information contained in this RelationshipNavigation.
            
        
        
            Gets the name of the relationship in which this related end participates.
            
            The name of the relationship in which this  participates. The relationship name is not namespace qualified.
            
        
        
            Gets the role name at the source end of the relationship.
            
            A  that is the role name.
            
        
        
            Gets the role name at the target end of the relationship.
            
            A  that is the role name.
            
        
        
            Gets a reference to the metadata for the related end.
            
            A  object that contains metadata for the end of a relationship.
            
        
        
            Gets a value that indicates whether all related objects have been loaded.
            true if the related end contains all the related objects from the database; otherwise, false.
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Returns the collection as an  used for data binding.
            
            
            An  of entity objects.
            
        
        
            Loads related objects into the collection, using the specified merge option.
            
            Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same
            
            .
            
        
        
            Defines relationships between an object and a collection of related objects in an object context.
            
            Loads related entities into the local collection. If the collection is already filled
            or partially filled, merges existing entities with the given entities. The given
            entities are not assumed to be the complete set of related entities.
            Owner and all entities passed in must be in Unchanged or Modified state. We allow
            deleted elements only when the state manager is already tracking the relationship
            instance.
            
            Collection of objects in the object context that are related to the source object.
             entities  collection is null.
            
            The source object or an object in the  entities  collection is null or is not in an
            
            or  state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types.
            
        
        
            Defines a relationship between two attached objects in an object context.
            The object being attached.
            When the  entity  is null.
            
            When the  entity  cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an
            
            or  state.
            
        
        
            
            Requires: collection is null or contains related entities.
            Loads related entities into the local collection.
            
             If null, retrieves entities from the server through a query; otherwise, loads the given collection 
        
        
            Adds an object to the collection.
            
            An object to add to the collection.  entity  must implement
            
            .
            
             entity  is null.
        
        
            
            Add the item to the underlying collection
            
        
        
            
            Remove the item from the underlying collection
            
        
        
            Removes an object from the collection and marks the relationship for deletion.
            true if item was successfully removed; otherwise, false. 
            The object to remove from the collection.
             entity  object is null.
            The  entity  object is not attached to the same object context.-or-The  entity  object does not have a valid relationship manager.
        
        
             True if the verify succeeded, False if the Add should no-op 
        
        
            
            Remove from the RelatedEnd
            
        
        
            
            Remove from the POCO collection
            
        
        
            Returns an enumerator that is used to iterate through the objects in the collection.
            
            An  that iterates through the set of values cached by
            
            .
            
        
        
            
            Returns an enumerator that is used to iterate through the set of values cached by
            
            .
            
            
            An  that iterates through the set of values cached by
            
            .
            
        
        
            Removes all entities from the collection. 
        
        
            Determines whether a specific object exists in the collection.
            
            true if the object is found in the ; otherwise, false.
            
            
            The object to locate in the .
            
        
        
            Copies all the contents of the collection to an array, starting at the specified index of the target array.
            The array to copy to.
            The zero-based index in the array at which copying begins.
        
        
            Used internally to serialize entity objects.
            The streaming context.
        
        
            Used internally to deserialize entity objects.
            The streaming context.
        
        
            Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection. 
            
            An  that represents the entity collection.
            
            
            When the object is in an  state 
            or when the object is in a
             state with a
             other than
            .
            
        
        
            
            internal Event to notify changes in the collection.
            
        
        
            Gets the number of objects that are contained in the collection.
            
            The number of elements that are contained in the
            
            .
            
        
        
            
            Gets a value that indicates whether the
            
            is read-only.
            
            Always returns false.
        
        
            
            IListSource.ContainsListCollection implementation. Always returns false.
            This means that the IList we return is the one which contains our actual data,
            it is not a list of collections.
            
        
        
            
            This is the class is the basis for all perscribed EntityObject classes.
            
        
        
            
            Interface that defines an entity containing a key.
            
        
        
            
            Gets or sets the  for instances of entity types that implement this interface.
            
            
            If an object is being managed by a change tracker, it is expected that
            IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be
            used to report changes on EntityKey. This allows the change tracker to validate the
            EntityKey's new value and to verify if the change tracker is in a state where it can
            allow updates to the EntityKey.
            
            
            The  for instances of entity types that implement this interface.
            
        
        
            
            Minimum interface that a data class must implement in order to be managed by a change tracker.
            
        
        
            
            Gets or sets the  used to report changes.
            
            
            The  used to report changes.
            
        
        
            
            Interface that a data class must implement if exposes relationships
            
        
        
            Returns the relationship manager that manages relationships for an instance of an entity type.
            
            Classes that expose relationships must implement this property
            by constructing and setting RelationshipManager in their constructor.
            The implementation of this property should use the static method RelationshipManager.Create
            to create a new RelationshipManager when needed. Once created, it is expected that this
            object will be stored on the entity and will be provided through this property.
            
            
            The  for this entity.
            
        
        
            
            Used by the ObjectStateManager to attach or detach this EntityObject to the cache.
            
             Reference to the ObjectStateEntry that contains this entity 
        
        
            Notifies the change tracker that a property change is pending.
            The name of the changing property.
             property  is null.
        
        
            Notifies the change tracker that a property has changed.
            The name of the changed property.
             property  is null.
        
        
            
            This method is called by a ComplexObject contained in this Entity
            whenever a change is about to be made to a property of the
            ComplexObject so that the change can be forwarded to the change tracker.
            
             The name of the top-level entity property that contains the ComplexObject that is calling this method. 
             The instance of the ComplexObject on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            
            This method is called by a ComplexObject contained in this Entity
            whenever a change has been made to a property of the
            ComplexObject so that the change can be forwarded to the change tracker.
            
             The name of the top-level entity property that contains the ComplexObject that is calling this method. 
             The instance of the ComplexObject on which the property is changing. 
             The name of the changing property on complexObject. 
        
        
            Gets the entity state of the object.
            
            The  of this object.
            
        
        
            Gets or sets the key for this object.
            
            The  for this object.
            
        
        
            
            Returns the container for the lazily created relationship
            navigation property objects, collections and refs.
            
        
        
            
            Helper class used when we are not currently attached to a change tracker.
            Simplifies the code so we don't always have to check for null before using the change tracker
            
        
        
            
            This interface is implemented by a change tracker and is used by data classes to report changes
            
        
        
            Notifies the change tracker of a pending change to a property of an entity type.
            The name of the property that is changing.
        
        
            Notifies the change tracker that a property of an entity type has changed.
            The name of the property that has changed.
        
        
            Notifies the change tracker of a pending change to a complex property.
            The name of the top-level entity property that is changing.
            The complex type that contains the property that is changing.
            The name of the property that is changing on complex type.
        
        
            Notifies the change tracker that a property of a complex type has changed.
            The name of the complex property of the entity type that has changed.
            The complex type that contains the property that changed.
            The name of the property that changed on complex type.
        
        
            Gets current state of a tracked object.
            
            An  that is the state of the tracked object.For more information, see Identity Resolution, State Managment, and Change Tracking and Tracking Changes in POCO Entities.
            
        
        
            
            Models a relationship end with multiplicity 1.
            
        
        
            
            The default constructor is required for some serialization scenarios. It should not be used to
            create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager
            class instead.
            
        
        
            
            This method is called when either the EntityKey or the Value property is set to null when it is
            already null. For an FK association of a tracked entity the method will attempt to null FKs
            thereby deleting the relationship. This may result in conceptual nulls being set.
            
        
        
            
            Takes key values from the given principal entity and transfers them to the foreign key properties
            of the dependant entry.  This method requires a context, but does not require that either
            entity is in the context.  This allows it to work in NoTracking cases where we have the context
            but we're not tracked by that context.
            
             The entity into which foreign key values will be written 
             The entity from which key values will be obtained 
             If non-null, then keeps track of FKs that have already been set such that an exception can be thrown if we find conflicting values 
             If true, then the property setter is called even if FK values already match, which causes the FK properties to be marked as modified. 
        
        
            
            Takes key values from the given principal key and transfers them to the foreign key properties
            of the dependant entry.  This method requires a context, but does not require that either
            entity or key is in the context.  This allows it to work in NoTracking cases where we have the context
            but we're not tracked by that context.
            
             The entity into which foreign key values will be written 
             The key from which key values will be obtained 
        
        
            Adds to navigation property if compatible.
            The related end to add.
        
        
            
            Returns whether the foreign key is conceptually null. 
            This occurs when a relationship is set to null but the foreign key property is a non-nullable CLR type and therefore can't be set to null.
            
            true if the foreign key is conceptually null; otherwise, false.
        
        
             Updates the foreign key if this is the dependent end of the relationship. 
             true if they key was updated; otherwise, false.
            The target related end.
             If true, then the property setter is called even if FK values already match, which causes the FK properties to be marked as modified. 
        
        
            
            Ensures the detached entity key is valid (not temporary etc.) 
            
        
        
            Verifies the detached key matches of the entity key.
            The key entity.
        
        
            
            Attempts to null all FKs associated with the dependent end of this relationship on this entity.
            This may result in setting conceptual nulls if the FK is not nullable.
            
        
        
            Returns the key for the related object. 
            
            Returns the EntityKey of the target entity associated with this EntityReference.
            Is non-null in the following scenarios:
            (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the
            same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting
            the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries.
            (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation
            occurs that would set it to null, as described below.
            (c) Entities are detached and the EntityKey is explicitly set to non-null by the user.
            (d) Entity graph was created using a NoTracking query with full span
            Is null in the following scenarios:
            (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the
            same RelationshipName and source role.
            (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key
            is one of the special keys
            (c) Entities are detached and the relationship was explicitly created by the user.
            
            
            An  that is the key of the related object.
            
        
        
            
            EntityReferences can only deferred load if they are empty
            
        
        
            
            Models a relationship end with multiplicity 1.
            
        
        
            
            Creates a new instance of .
            
            
            The default constructor is required for some serialization scenarios. It should not be used to
            create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager
            class instead.
            
        
        
            
            Loads the related object for this  with the specified merge option.
            
            
            Specifies how the object should be returned if it already exists in the
            
            .
            
            
            The source of the  is null 
            or a query returned more than one related end 
            or a query returned zero related ends, and one related end was expected.
            
        
        
            
            This operation is not allowed if the owner is null
            
        
        
            Creates a many-to-one or one-to-one relationship between two objects in the object context.
            The object being attached.
            When the  entity  is null.
            When the  entity  cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types.
        
        
             True if the verify succeeded, False if the Add should no-op 
        
        
            
            Disconnected adds are not supported for an EntityReference so we should report this as an error.
            
             The entity to add to the related end in a disconnected state. 
        
        
            
            Disconnected removes are not supported for an EntityReference so we should report this as an error.
            
             The entity to remove from the related end in a disconnected state. 
        
        
            
            Remove from the RelatedEnd
            
        
        
            
            Remove from the POCO collection
            
        
        
            Creates an equivalent object query that returns the related object.
            
            An  that returns the related object.
            
            
            When the object is in an  state 
            or when the object is in a 
            state with a 
            other than .
            
        
        
            
            Take any values in the incoming RelatedEnd and sets them onto the values
            that currently exist in this RelatedEnd
            
        
        
            This method is used internally to serialize related entity objects.
            The serialized stream.
        
        
            This method is used internally to serialize related entity objects.
            The serialized stream.
        
        
            
            AddToLocalEnd is used by both APIs a) RelatedEnd.Add b) Value property setter.
            ApplyConstraints is true in case of RelatedEnd.Add because one cannot add entity to ref it its already set
            however applyConstraints is false in case of Value property setter because value can be set to a new value
            even if its non null.
            
        
        
            
            Gets or sets the related object returned by this
            
            .
            
            
            The object returned by this .
            
        
        
            
            Internal interface used to provide a non-typed way to store a reference to an object
            that knows the type and cardinality of the source end of a relationship
            
        
        
            
            Used during relationship fixup when the source end of the relationship is not
            yet in the relationships list, and needs to be created
            
             RelationshipNavigation to be set on new RelatedEnd 
             RelationshipManager to use for creating the new end 
             Reference to the new collection or reference on the other end of the relationship 
        
        
            
            Used during relationship fixup when the source end of the relationship is not
            yet in the relationships list, and needs to be created
            
             RelationshipNavigation to be set on new RelatedEnd 
             RelationshipManager to use for creating the new end 
             Reference to the new collection or reference on the other end of the relationship 
        
        
            
            Identifies the kind of a relationship
            
        
        
            
            The relationship is an Association
            
        
        
            
            Container for the lazily created relationship navigation
            property objects (collections and refs).
            
        
        
            
            For testing.
            
        
        
            
            For testing.
            
        
        
            
            Lazy initialization of the _relationships collection.
            
        
        
            
            Creates a new  object.
            
            
            Used by data classes that support relationships. If the change tracker
            requests the RelationshipManager property and the data class does not
            already have a reference to one of these objects, it calls this method
            to create one, then saves a reference to that object. On subsequent accesses
            to that property, the data class should return the saved reference.
            The reason for using a factory method instead of a public constructor is to
            emphasize that this is not something you would normally call outside of a data class.
            By requiring that these objects are created via this method, developers should
            give more thought to the operation, and will generally only use it when
            they explicitly need to get an object of this type. It helps define the intended usage.
            
            
            The requested .
            
            Reference to the entity that is calling this method.
        
        
            
            Factory method that creates a new, uninitialized RelationshipManager.  This should only be
            used to create a RelationshipManager for an IEntityWrapper for an entity that does not
            implement IEntityWithRelationships.  For entities that implement IEntityWithRelationships,
            the Create(IEntityWithRelationships) method should be used instead.
            
             The new RelationshipManager 
        
        
            
            Replaces the existing wrapped owner with one that potentially contains more information,
            such as an entity key.  Both must wrap the same entity.
            
        
        
            
            Get the collection of entities related to the current entity using the specified
            combination of relationship name, source role name, and target role name
            
             Type of the entity in the source role (same as the type of this) 
             Type of the entity in the target role 
             CSpace-qualified name of the relationship to navigate 
             Name of the source role for the navigation. Indicates the direction of navigation across the relationship. 
             Name of the target role for the navigation. Indicates the direction of navigation across the relationship. 
             Accessor of the property on the source of the navigation. 
             Accessor of the property on the target of the navigation. 
             Multiplicity of the source role. RelationshipMultiplicity.OneToOne and RelationshipMultiplicity.Zero are both accepted for a reference end, and RelationshipMultiplicity.Many is accepted for a collection 
             
             Collection of related entities of type TTargetEntity 
        
        
            
            Re-merge items from collection so that relationship fixup is performed.
            Ensure that any items in previous collection are excluded from the re-merge
            
             The previous EntityCollection containing items that have already had fixup performed 
             The new EntityCollection 
        
        
            
            Get the entity reference of a related entity using the specified
            combination of relationship name, source role name, and target role name
            
             CSpace-qualified name of the relationship to navigate 
             Name of the source role for the navigation. Indicates the direction of navigation across the relationship. 
             Name of the target role for the navigation. Indicates the direction of navigation across the relationship. 
             Accessor of the property on the source of the navigation. 
             Accessor of the property on the target of the navigation. 
             Multiplicity of the source role. RelationshipMultiplicity.OneToOne and RelationshipMultiplicity.Zero are both accepted for a reference end, and RelationshipMultiplicity.Many is accepted for a collection 
             Reference for related entity of type TTargetEntity 
        
        
            
            Internal version of GetRelatedEnd that works with the o-space navigation property
            name rather than the c-space relationship name and end name.
            
             the name of the property to lookup 
             the related end for the given property 
        
        
            
            Returns either an  or
            
            of the correct type for the specified target role in a relationship.
            
            
             representing the
            
            or
            
            that was retrieved.
            
            Name of the relationship in which  targetRoleName  is defined. The relationship name is not namespace qualified.
            Target role to use to retrieve the other end of  relationshipName .
             relationshipName  or  targetRoleName  is null.
            The source type does not match the type of the owner.
             targetRoleName  is invalid or unable to find the relationship type in the metadata.
        
        
            
            Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names.
            This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized,
            if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W
            
            The relationship name.
            The role name of the related end.
            
            The  to initialize.
            
            
            The type of the  being initialized.
            
            
            When the provided  
            is already initialized.-or-When the relationship manager is already attached to an
            
            or when the relationship manager already contains a relationship with this name and target role.
            
        
        
            
            Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names.
            This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized,
            or if the relationship manager is already attached to a ObjectContext.
            
             Type of the entity represented by targetRoleName 
        
        
            
            Given a relationship name that may or may not be qualified with a namespace name, this method
            attempts to lookup a namespace using the entity type that owns this RelationshipManager as a
            source and adds that namespace to the front of the relationship name.  If the namespace
            can't be found, then the relationshipName is returned untouched and the expectation is that
            other validations will fail later in the code paths that use this.
            This method should only be used at the imediate top-level public surface since all internal
            calls are expected to use fully qualified names already.
            
        
        
            
            Trys to get an ObjectItemCollection and returns null if it can;t be found.
            
        
        
            
            Trys to get the EntityType metadata and returns false if it can't be found.
            
        
        
            
            Trys to get an DefaultObjectMappingItemCollection and returns false if it can't be found.
            
        
        
            
            Retrieves the AssociationEndMembers that corespond to the target end of a relationship
            given a specific CLR type that exists on the source end of a relationship
            Note: this method can be very expensive if this RelationshipManager is not attached to an
            ObjectContext because no OSpace Metadata is available
            
             A CLR type that is on the source role of the relationship 
             The OSpace EntityType that represents this CLR type 
        
        
            
            Gets an  of related objects with the specified relationship name and target role name.
            
            
            The  of related objects.
            
            Name of the relationship to navigate. The relationship name is not namespace qualified.
            Name of the target role for the navigation. Indicates the direction of navigation across the relationship.
            
            The type of the returned .
            
            
            The specified role returned an  instead of an
            
            .
            
        
        
            
            Gets the  for a related object by using the specified combination of relationship name and target role name.
            
            
            The  of a related object.
            
            Name of the relationship to navigate. The relationship name is not namespace qualified.
            Name of the target role for the navigation. Indicates the direction of navigation across the relationship.
            
            The type of the returned .
            
            
            The specified role returned an  instead of an
            
            .
            
        
        
            
            Gets collection or ref of related entity for a particular navigation.
            
             Describes the relationship and navigation direction 
             Encapsulates information about the other end's type and cardinality, and knows how to create the other end 
        
        
            
            Factory method for creating new related ends
            
             Type of the source end 
             Type of the target end 
             RelationshipNavigation to be set on the new RelatedEnd 
             Multiplicity of the source role 
             Multiplicity of the target role 
             An existing related end to initialize instead of creating a new one 
             new EntityCollection or EntityReference, depending on the specified target multiplicity 
        
        
            Returns an enumeration of all the related ends managed by the relationship manager.
            
            An  of objects that implement
            
            . An empty enumeration is returned when the relationships have not yet been populated.
            
        
        
            
            Called by Object Services to prepare an  for binary serialization with a serialized relationship.
            
            Describes the source and destination of a given serialized stream, and provides an additional caller-defined context.
        
        
            
            Add the rest of the graph, attached to this owner, to ObjectStateManager
            
             if TRUE, the rest of the graph is attached directly as Unchanged without calling AcceptChanges() 
        
        
            
            Traverse the relationships and find all the dependent ends that contain FKs, then attempt
            to null all of those FKs.
            
        
        
            
            Used internally to deserialize entity objects along with the
            
            instances.
            
            The serialized stream.
        
        
            
            Searches the list of relationships for an entry with the specified relationship name and role names
            
             CSpace-qualified name of the relationship 
             name of the target role 
             the RelatedEnd if found, otherwise null 
             true if the entry found, false otherwise 
        
        
            
            Helper method to validate consistency of RelationshipManager instances
            
             entity to compare against 
             True if entity is the owner of this RelationshipManager, otherwise false 
        
        
            
            Calls AttachContext on each RelatedEnd referenced by this manager.
            
        
        
            
            Calls AttachContext on each RelatedEnd referenced by this manager and also on all the enties
            referenced by that related end.
            
        
        
            
            Calls DetachContext on each RelatedEnd referenced by this manager.
            
        
        
            
            Returns a defensive copy of all the known relationships.  The copy is defensive because
            new items may get added to the collection while the caller is iterating over it.  Without
            the copy this would cause an exception for concurrently modifying the collection.
            
        
        
            
            this flag is used to keep track of nodes which have
            been visited. Currently used for Exclude operation.
            
        
        
            
            Provides access to the entity that owns this manager in its wrapped form.
            
        
        
            
            This class describes a relationship navigation from the
            navigation property on one entity to another entity.  It is
            used throughout the collections and refs system to describe a
            relationship and to connect from the navigation property on
            one end of a relationship to the navigation property on the
            other end.
            
        
        
            
            Creates a navigation object with the given relationship
            name, role name for the source and role name for the
            destination.
            
             Canonical-space name of the relationship. 
             Name of the role which is the source of the navigation. 
             Name of the role which is the destination of the navigation. 
             The navigation property which is the source of the navigation. 
             The navigation property which is the destination of the navigation. 
        
        
            
            Compares this instance to a given Navigation by their values.
            
        
        
            
            Returns a value-based hash code.
            
             the hash value of this Navigation 
        
        
            
            ToString is provided to simplify debugging, etc.
            
        
        
            
            Canonical-space relationship name.
            
        
        
            
            Role name for the source of this navigation.
            
        
        
            
            Role name for the destination of this navigation.
            
        
        
            
            Navigation property name for the destination of this navigation.
            NOTE: There is not a FromPropertyAccessor property on RelationshipNavigation because it is not currently accessed anywhere
            It is only used to calculate the "reverse" RelationshipNavigation.
            
        
        
            
            The "reverse" version of this navigation.
            
        
        
            
            ObjectView that provides binding to a list of data records.
            
            
            This class provides an implementation of ITypedList that returns property descriptors
            for each column of results in a data record.
            
        
        
            
            Manages a list suitable for data binding.
            
             The type of elements in the binding list. 
            
             This class provides an implementation of IBindingList that exposes a list of elements to be bound, provides a mechanism to change the membership of the list, and events to notify interested objects when the membership of the list is modified or an element in the list is modified. 
             ObjectView relies on an object that implements IObjectViewData to manage the binding list. See the documentation for IObjectViewData for details. 
            
        
        
            
            Specifies whether events handled from an underlying collection or individual bound item
            should result in list change events being fired from this IBindingList.
            True to prevent events from being fired from this IBindingList;
            otherwise false to allow events to propogate.
            
        
        
            
            Object that listens for underlying collection or individual bound item changes,
            and notifies this object when they occur.
            
        
        
            
            Index of last item added via a call to IBindingList.AddNew.
            
        
        
            
            Object that maintains the underlying bound list,
            and specifies the operations allowed on that list.
            
        
        
            
            Construct a new instance of ObjectView using the supplied IObjectViewData and event data source.
            
             Object that maintains the underlying bound list, and specifies the operations allowed on that list. 
             Event source to "attach" to in order to listen to collection and item changes. 
        
        
            
            If a new item has been added to the list, and  is the position of that item,
            remove it from the list and cancel the add operation.
            
             Index of item to be removed as a result of the cancellation of a previous addition. 
        
        
            
            Commit a new item to the binding list.
            
             Index of item to be committed. This index must match the index of the item created by the last call to IBindindList.AddNew; otherwise this method is a nop. 
        
        
            
            Handle a change in the underlying collection bound by this ObjectView.
            
             The source of the event. 
             Event arguments that specify the type of modification and the associated item. 
        
        
            
            Get item at the specified index.
            
             The zero-based index of the element to get or set. 
            
            This strongly-typed indexer is used by the data binding in WebForms and ASP.NET
            to determine the Type of elements in the bound list.
            The list of properties available for binding can then be determined from that element Type.
            
        
        
            
            Cache of the property descriptors for the element type of the root list wrapped by ObjectView.
            
        
        
            
            EDM RowType that describes the shape of record elements.
            
        
        
            
            Return a  instance that represents
            a strongly-typed indexer property on the specified type.
            
            
             that may define the appropriate indexer.
            
            
             instance of indexer defined on supplied type that returns an object of any type but
            
            ; or null if no such indexer is defined on the supplied type.
            
            
            The algorithm here is lifted from System.Windows.Forms.ListBindingHelper,
            from the GetTypedIndexer method.
            The Entity Framework could not take a dependency on WinForms,
            so we lifted the appropriate parts from the WinForms code here.
            Not the best, but much better than guessing as to what algorithm is proper for data binding.
            
        
        
            
            Return the element type for the supplied type.
            
            
            If  represents a list type that doesn't also implement ITypedList or IListSource, return the element type for items in that list. Otherwise, return the type supplied by
            
            .
            
            
            The algorithm here is lifted from System.Windows.Forms.ListBindingHelper,
            from the GetListItemType(object) method.
            The Entity Framework could not take a dependency on WinForms,
            so we lifted the appropriate parts from the WinForms code here.
            Not the best, but much better than guessing as to what algorithm is proper for data binding.
            
        
        
            
            Class describing a LINQ parameter and its bound expression. For instance, in
            products.Select(p => p.ID)
            the 'products' query is the bound expression, and 'p' is the parameter.
            
        
        
            
            Class containing binding information for an expression converter (associating CQT bindings
            with LINQ lambda parameter or LINQ sub-expressions)
            
            
            Usage pattern:BindingContext context = ...;
            
                // translate a "Where" lamba expression input.Where(i => i.X > 2);
                LambdaExpression whereLambda = ...;
                CqtExpression inputCqt = Translate(whereLambda.Arguments[1]);
                CqtExpression inputBinding = CreateExpressionBinding(inputCqt).Var;
            
                // push the scope defined by the parameter 
                context.PushBindingScope(new KeyValuePair{ParameterExpression, CqtExpression}(whereLambda.Parameters[0], inputBinding));
            
                // translate the expression in this context
                CqtExpression result = Translate(whereLambda.Expression);
            
                // pop the scope
                context.PopBindingScope();
            
        
        
            
            Initialize a new binding context
            
        
        
            
            Set up a new binding scope where parameter expressions map to their paired CQT expressions.
            
             DbExpression/LinqExpression binding 
        
        
            
            Removes a scope when leaving a particular sub-expression.
            
        
        
            
            Models a compiled Linq to Entities ObjectQuery
            
        
        
            
            Models a Linq to Entities ObjectQuery
            
        
        
            
            An instance of a class derived from ObjectQueryState is used to model every instance of
            
            .
            A different ObjectQueryState-derived class is used depending on whether the ObjectQuery is an Entity SQL,
            Linq to Entities, or compiled Linq to Entities query.
            
        
        
            
            The  that should be used in the absence of an explicitly specified
            or user-specified merge option or a merge option inferred from the query definition itself.
            
        
        
            
            Generic MethodInfo used in the non-generic CreateQuery
            
        
        
            
            The context of the ObjectQuery
            
        
        
            
            The element type of this query, as a CLR type
            
        
        
            
            The collection of parameters associated with the ObjectQuery
            
        
        
            
            The full-span specification
            
        
        
            
            The user-specified default merge option
            
        
        
            
            Indicates whether query caching is enabled for the implemented ObjectQuery.
            
        
        
            
            Optionally used by derived classes to record the most recently used .
            
        
        
            
            Constructs a new  instance that uses the specified context and parameters collection.
            
             
             The ObjectContext to which the implemented ObjectQuery belongs 
             
             
        
        
            
            Constructs a new  copying the state information from the specified
            .
            
             The element type of the implemented ObjectQuery, as a CLR type. 
             The ObjectQuery from which the state should be copied. 
        
        
            
            Sets the values the  and  properties on
             to match the values of the corresponding properties on this instance.
            
             The query state to which this instances settings should be applied. 
        
        
            
            Must return true and set  to a valid value
            if command text is available for this query; must return false otherwise.
            Implementations of this method must not throw exceptions.
            
             The command text of this query, if available. 
            
            true if command text is available for this query and was successfully retrieved; otherwise false .
            
        
        
            
            Must return true and set  to a valid value if a
            LINQ Expression is available for this query; must return false otherwise.
            Implementations of this method must not throw exceptions.
            
             The LINQ Expression that defines this query, if available. 
            
            true if an Expression is available for this query and was successfully retrieved; otherwise false .
            
        
        
            
            Retrieves an  that can be used to retrieve the results of this query using the specified merge option.
            If  is null, an appropriate default value will be used.
            
             The merge option which should be supported by the returned execution plan 
             an execution plan capable of retrieving the results of this query using the specified merge option 
        
        
            
            Must returns a new ObjectQueryState instance that is a duplicate of this instance and additionally contains the specified Include path in its
            
            .
            
             The element type of the source query on which Include was called 
             The source query on which Include was called 
             The new Include path to add 
             Must returns an ObjectQueryState that is a duplicate of this instance and additionally contains the specified Include path 
        
        
            
            Retrieves the result type of the query in terms of C-Space metadata. This method is called once, on-demand, if a call
            to  cannot be satisfied using cached type metadata or a currently cached execution plan.
            
            
            Must return a  that describes the result typeof this query in terms of C-Space metadata
            
        
        
            
            Helper method to return the first non-null merge option from the specified nullable merge options,
            or the  if the value of all specified nullable merge options is null.
            
             The available nullable merge option values, in order of decreasing preference 
            
            the first non-null merge option; or the default merge option if the value of all
            
            is null
            
        
        
            
            Helper method to return the first non-null merge option from the specified nullable merge options.
            
             The available nullable merge option values, in order of decreasing preference 
            
            the first non-null merge option; or null if the value of all  is null
            
        
        
            
            Helper method to create a new ObjectQuery based on this query state instance.
            
            
            A new  - typed as 
            
        
        
            
            Helper method used to create an ObjectQuery based on an underlying ObjectQueryState instance.
            This method must be public to be reliably callable from  using reflection.
            Shouldn't be named CreateQuery to avoid ambiguity with reflection.
            
             The required element type of the new ObjectQuery 
             A new ObjectQuery based on the specified query state, with the specified element type 
        
        
            
            Gets the element type - the type of each result item - for this query as a CLR type instance.
            
        
        
            
            Gets the ObjectContext with which the implemented ObjectQuery is associated
            
        
        
            
            Gets the collection of parameters associated with the implemented ObjectQuery. May be null.
            Call  if a guaranteed non-null collection is required.
            
        
        
            
            Gets the Span specification associated with the implemented ObjectQuery. May be null.
            
        
        
            
            The merge option that this query considers currently 'in effect'. This may be a merge option set via the ObjectQuery.MergeOption
            property, or the merge option that applies to the currently cached execution plan, if any, or the global default merge option.
            
        
        
            
            Gets or sets a value indicating which  should be used when preparing this query for execution via
             if no option is explicitly specified - for example during foreach-style enumeration.
             sets this property on its underlying query state instance.
            
        
        
            
            Gets or sets a user-defined value indicating whether or not query caching is enabled for the implemented ObjectQuery.
            
        
        
            
            Gets the result type - not just the element type - for this query as an EDM Type usage instance.
            
        
        
            
            Constructs a new  instance based on the specified Linq Expression
            against the specified ObjectContext.
            
             The element type of the implemented ObjectQuery, as a CLR type. 
             The ObjectContext with which the implemented ObjectQuery is associated. 
             The Linq Expression that defines this query. 
        
        
            
            Constructs a new  instance based on the specified Linq Expression,
            copying the state information from the specified ObjectQuery.
            
             The element type of the implemented ObjectQuery, as a CLR type. 
             The ObjectQuery from which the state information should be copied. 
             The Linq Expression that defines this query. 
        
        
            
            Returns a new ObjectQueryState instance with the specified navigation property path specified as an Include span.
            For eLINQ queries the Include operation is modelled as a method call expression applied to the source ObectQuery,
            so the  property is always null on the returned instance.
            
             The element type of the resulting query 
             The ObjectQuery on which Include was called; required to build the new method call expression 
             The new Include path 
             A new ObjectQueryState instance that incorporates the Include path, in this case a new method call expression 
        
        
            
            eLINQ queries do not have command text. This method always returns false.
            
            
            Always set to null
            
            
            Always returns false
            
        
        
            
            Gets the LINQ Expression that defines this query for external (of ObjectQueryState) use.
            Note that the  property is used, which is overridden by compiled eLINQ
            queries to produce an Expression tree where parameter references have been replaced with constants.
            
             The LINQ expression that describes this query 
            
            Always returns true
            
        
        
            
            Creates a new compiled query state instance
            
             The element type of the new instance (the 'T' of the ObjectQuery < T > that the new state instance will back)" 
             The object context with which the new instance should be associated 
            
            The compiled query definition, as a 
            
             The cache token to use when retrieving or storing the new instance's execution plan in the query cache 
             The values passed into the CompiledQuery delegate 
        
        
            
            Overrides GetResultType and attempts to first retrieve the result type from the cache entry.
            
            
            The query result type from this compiled query's cache entry, if possible; otherwise defers to
            
            
        
        
            
            Overrides CreateExpressionConverter to return a converter that uses a binding context based on the compiled query parameters,
            rather than a default binding context.
            
             An expression converter appropriate for converting this compiled query state instance 
        
        
            
            Gets a LINQ expression that defines this query.
            This is overridden to remove parameter references from the underlying expression,
            producing an expression that contains the values of those parameters as s.
            
        
        
            
            Replaces ParameterExpresion with ConstantExpression
            to make the expression usable as a donor expression
            
        
        
            
            Class supporting conversion of LINQ expressions to EDM CQT expressions.
            
        
        
            
            Gets the name of the key column appearing in ELinq GroupBy projections
            
        
        
            
            Gets the name of the group column appearing in ELinq CQTs (used in GroupBy expressions)
            
        
        
            
            Gets the name of the parent column appearing in ELinq EntityCollection projections
            
        
        
            
            Gets the name of the children column appearing in ELinq EntityCollection projections
            
        
        
            
            The Edm namespace name, used for canonical functions
            
        
        
            
            Adds a new mapping from DbExpression => Span information for the specified expression,
            after first ensuring that the mapping dictionary has been instantiated.
            
             The expression for which Span information should be added 
            
            The Span information, which may be null . If null , no attempt is made to update the dictionary of span mappings.
            
            
            The original  argument, to allow return AddSpanMapping(expression, span) scenarios
            
        
        
            
            Attempts to retrieve Span information for the specified DbExpression.
            
             The expression for which Span information should be retrieved. 
             Will contain the Span information for the specified expression if it is present in the Span mapping dictionary. 
            
            true if Span information was retrieved for the specified expression and  now contains this information; otherwise false .
            
        
        
            
            Removes the Span mapping entry for the specified  expression,
            and creates a new entry for the specified  expression that maps
            to the  expression's original Span information. If no Span
            information is present for the specified  expression then no
            changes are made to the Span mapping dictionary.
            
             The expression from which to take Span information 
             The expression to which the Span information should be applied 
        
        
            
            Unifies the Span information from the specified  and 
            expressions, and applies it to the specified  expression. Unification proceeds
            as follows:
            - If neither  nor  have Span information, no changes are made
            - If one of  or  has Span information, that single Span information
            entry is removed from the Span mapping dictionary and used to create a new entry that maps from the
            
            expression to the Span information.
            - If both  and  have Span information, both entries are removed
            from the Span mapping dictionary, a new Span is created that contains the union of the original Spans, and
            a new entry is added to the dictionary that maps from  expression to this new Span.
            
             The first expression argument 
             The second expression argument 
             The result expression 
        
        
            
            Gets the target type for a CQT cast operation.
            
             Appropriate type usage, or null if this is a "no-op" 
        
        
            
            Check that the given cast specification is supported and if necessary adjust target type (for instance
            add precision and scale for Integral -> Decimal casts)
            
        
        
            
            Determines if an instance of fromType can be assigned to an instance of toType using
            CLR semantics. in case of primitive type, it must rely on identity since unboxing primitive requires
            exact match. for nominal types, rely on subtyping.
            
        
        
            
            Gets the target type for an Is or As expression.
            
             Type of operation; used in error reporting. 
             Test or return type. 
             Input type in CLR metadata. 
             Appropriate target type usage. 
        
        
            
            Utility method validating type for comparison ops (isNull, equals, etc.).
            Only primitive types, entity types, and simple row types (no IGrouping/EntityCollection) are
            supported.
            
        
        
            
            Describe type for exception message.
            
        
        
            
            Creates an implementation of IsNull. Throws exception when operand type is not supported.
            
        
        
            
            Creates an implementation of equals using the given pattern. Throws exception when argument types
            are not supported for equals comparison.
            
        
        
            
            Helper method for String.StartsWith, String.EndsWith and String.Contains
            object.Method(argument), where Method is one of String.StartsWith, String.EndsWith or
            String.Contains is translated into:
            1) If argument is a constant or parameter and the provider supports escaping:
            object like ("%") + argument1 + ("%"), where argument1 is argument escaped by the provider
            and ("%") are appended on the begining/end depending on whether
            insertPercentAtStart/insertPercentAtEnd are specified
            2) Otherwise:
            object.Method(argument) ->  defaultTranslator
            
             
             Should '%' be inserted at the begining of the pattern 
             Should '%' be inserted at the end of the pattern 
             The delegate that provides the default translation 
             The translation 
        
        
            
            Prepare the given input patternValue into a pattern to be used in a LIKE expression by
            first escaping it by the provider and then appending "%" and the beginging/end depending
            on whether insertPercentAtStart/insertPercentAtEnd is specified.
            
        
        
            
            Translates the arguments into DbExpressions
            and creates a canonical function with the given functionName and these arguments
            
             Should represent a non-aggregate canonical function 
             Passed only for error handling purposes 
             
        
        
            
            Creates a canonical function with the given name and the given arguments
            
             Should represent a non-aggregate canonical function 
             Passed only for error handling purposes 
             
        
        
            
            Finds a canonical function with the given functionName and argumentTypes
            
        
        
            
            Finds a function with the given namespaceName, functionName and argumentTypes
            
        
        
            
            Helper method for FindFunction
            
        
        
            
            Helper method for FindCanonicalFunction
            
        
        
            
            Translates System.Linq.Expression.MethodCallExpression to System.Data.Entity.Core.Common.CommandTrees.DbExpression
            
        
        
            
            Tries to get a translator for the given method info.
            If the given method info corresponds to a Visual Basic property,
            it also initializes the Visual Basic translators if they have not been initialized
            
        
        
            
            Tries to check whether there is an alternative method suggested insted of the given unsupported one.
            
        
        
            
            Initializes the dictionary of alternative methods.
            Currently, it simply initializes an empty dictionary.
            
        
        
            
            Populates the dictionary of alternative methods with the VB methods
            
        
        
            
            Recursively rewrite the argument expression to unwrap any "structured" set sources
            using ExpressionCoverter.NormalizeSetSource(). This is currently required for IGrouping
            and EntityCollection as argument types to functions.
            NOTE: Changes made to this function might have to be applied to ExpressionCoverter.NormalizeSetSource() too.
            
        
        
            
            Removes casts where possible, for example Cast from a Reference type to Object type
            Handles nested converts recursively. Removing no-op casts is required to prevent the
            expression converter from complaining.
            
        
        
            
            Checks if the return type specified by the call expression matches that expected by the
            function definition. Performs a recursive check in case of Collection type.
            
             DbFunctionExpression for the function definition 
             Return type expected by the function definition 
             
             LINQ MethodCallExpression 
             Return type specified by the call 
             Indicates if current call is for an Element of a Collection type 
             DbFunctionExpression with aligned return types 
        
        
            
            A context-sensitive DbExpression builder class that simulates order preservation
            for operators (project, filter, oftype, skip and limit) that are not natively order
            preserving. The builder simulates order preservation by 'lifting' order keys in
            the expression tree. For instance, source.Sort(o).Where(f) is rewritten as
            source.Where(f).Sort(o) since otherwise the sort keys would be ignored.
            In general, the lifter works as follows:
            - The input to the operator is matched against a series of patterns for intrinsically
            ordered expressions.
            - For each pattern, the lifter encodes the compensation required for each of the
            lifting operators that can be applied.
            
        
        
            
            Returns a lifter instance which supports lifting the intrinsic order of the given
            source expression across specific operations (filter, project, oftype, skip, and limit)
            
            
            Lifting only occurs for expressions that are ordered. Each of the nested
            OrderByLifterBase class implementations represents one or two of the ordered patterns with
            the exception of the PassthroughOrderByLifter. The latter class represents expressions
            without intrinsic order that therefore require no lifting.
            
        
        
            
            Represents an expression of the form: source.Skip(k, o).Limit(k2)
            
        
        
            
            Represents an expression of the form: source.Sort(o).Limit(k)
            
        
        
            
            Represents an expression of the form: source.Skip(k, o).Limit(k2).Project(p)
            
            
            This class is also used to represent expressions of the form: source.Skip(k, o).Project(p).Limit(k).
            As a result, the rewrites must be spelled out entirely (the implementation cannot assume that
            _limit exists in a particular position in the tree)
            
        
        
            
            Represents an expression of the form: source.Sort(o).Limit(k).Project(p)
            
            
            This class is also used to represent expressions of the form: source.Sort(o).Project(p).Limit(k).
            As a result, the rewrites must be spelled out entirely (the implementation cannot assume that
            _limit exists in a particular position in the tree)
            
        
        
            
            Represents an expression of the form: source.Skip(k, o).Project(p)
            
        
        
            
            Represents an expression of the form: source.Skip(k, o)
            
        
        
            
            Represents an expression of the form: source.Sort(o).Project(p)
            
        
        
            
            Represents an expression for which there is an explicit order by: source.Sort(o)
            
        
        
            
            Used for sources that do not have any intrinsic order.
            
        
        
            
            Tries to get a translator for the given property info.
            If the given property info corresponds to a Visual Basic property,
            it also initializes the Visual Basic translators if they have not been initialized
            
        
        
            
            This method is used to determine whether client side evaluation should be done,
            if the property can be evaluated in the store, it is not being evaluated on the client
            
        
        
            
            Facet encapsulating information necessary to initialize a LINQ projection
            result.
            
        
        
            
            Requires: other has the same type as this and refers to the same CLR type
            Determine whether this Metadata is compatible with the other based on record layout.
            
        
        
            
            Produces an expression initializing an instance of ClrType (given emitters for input
            columns)
            
        
        
            
            Yields expected types for input columns. Null values are returned for children
            whose type is irrelevant to the initializer.
            
        
        
            
            return a list of propertyReader expressions from an array of translator results.
            
        
        
            
            Implementation of IGrouping that can be initialized using the standard
            initializer pattern supported by ELinq
            
             Type of key 
             Type of record 
        
        
            
            Metadata for grouping initializer.
            
        
        
            
            Metadata for anonymous type materialization.
            
        
        
            
            Metadata for standard projection initializers.
            
        
        
            
            Metadata for entity collection initializer.
            
        
        
            
            Make sure the other metadata instance generates the same property
            (otherwise, we get incorrect behavior where multiple nav props return
            the same type)
            
        
        
            
            A LINQ expression corresponding to a query parameter.
            
        
        
            
            Gets the current value of the parameter given (optional) compiled query arguments.
            
        
        
            
            Create QueryParameterExpression based on this one, but with the funcletized expression
            wrapped by the given method
            
        
        
            
            Gets the parameter reference for the parameter.
            
        
        
            
            Determines which leaves of a LINQ expression tree should be evaluated locally before
            sending a query to the store. These sub-expressions may map to query parameters (e.g. local variables),
            to constants (e.g. literals 'new DateTime(2008, 1, 1)') or query sub-expression
            (e.g. 'context.Products'). Parameter expressions are replaced with QueryParameterExpression
            nodes. All other elements are swapped in place with either expanded expressions (for sub-queries)
            or constants. Where the expression includes mutable state that may influence the translation
            to a query, a Func(Of Boolean) delegate is returned indicating when a recompilation is necessary.
            
        
        
            
            Performs funcletization on the given expression. Also returns a delegates that can be used
            to determine if the entire tree needs to be recompiled.
            
        
        
            
            Replaces context parameter (e.g. 'ctx' in CompiledQuery.Compile(ctx => ctx.Products)) with constant
            containing the object context.
            
        
        
            
            Returns a function indicating whether the given expression and all of its children satisfy the
            'localCriterion'.
            
        
        
            
            Determines whether the node may be evaluated locally and whether
            it is a constant. Assumes that all children are also client expressions.
            
        
        
            
            Determines whether the node may be evaluated locally and whether
            it is a variable. Assumes that all children are also variable client expressions.
            
        
        
            
            Determines whether the node may be evaluated as a compiled query parameter.
            Assumes that all children are also eligible compiled query parameters.
            
        
        
            
            Determine whether the given CLR type is legal for an ObjectParameter or constant
            DbExpression.
            
        
        
            
            Creates the next available parameter name.
            
        
        
            
            Walks the expression tree and replaces client-evaluable expressions with constants
            or QueryParameterExpressions.
            
        
        
            
            Returns a delegate indicating (when called) whether a change has been identified
            requiring a complete recompile of the query.
            
        
        
            
            Compiles a delegate returning the value of the given expression.
            
        
        
            
            Inlines a funcletizable expression. Queries and lambda expressions are expanded
            inline. All other values become simple constants.
            
        
        
            
            Gets the appropriate LINQ expression for an inline ObjectQuery instance.
            
        
        
            
            Replaces expression patterns produced by the compiler with approximations
            used in query translation. For instance, the following VB code:
            x = y
            becomes the expression
            Equal(MethodCallExpression(Microsoft.VisualBasic.CompilerServices.Operators.CompareString(x, y, False), 0)
            which is normalized to
            Equal(x, y)
            Comment convention:
            CODE(Lang): _VB or C# coding pattern being simplified_
            ORIGINAL: _original LINQ expression_
            NORMALIZED: _normalized LINQ expression_
            
        
        
            
            If we encounter a MethodCallExpression, we never need to lift to lift to null. This capability
            exists to translate certain patterns in the language. In this case, the user (or compiler)
            has explicitly asked for a method invocation (at which point, lifting can no longer occur).
            
        
        
            
            Gets a dictionary mapping from LINQ expressions to matched by those expressions. Used
            to identify composite expression patterns.
            
        
        
            
            Handle binary patterns:
            - VB 'Is' operator
            - Compare patterns
            
        
        
            
            CODE: x
            ORIGINAL: Convert(x, typeof(object))
            ORIGINAL(Funcletized): Constant(x, typeof(object))
            NORMALIZED: x
            
        
        
            
            Returns true if the given expression is a constant '0'.
            
        
        
            
            Handles MethodCall patterns:
            - Operator overloads
            - VB operators
            
        
        
            
            Identifies and normalizes any predicate argument in the given call expression. If no changes
            are needed, returns the existing expression. Otherwise, returns a new call expression
            with a normalized predicate argument.
            
        
        
            
            Determines whether the given call expression has a 'predicate' argument (e.g. Where(source, predicate))
            and returns the ordinal for the predicate.
            
            
            Obviously this method will need to be replaced if we ever encounter a method with multiple predicates.
            
        
        
            
            Determines whether the given expression of the form Lambda(Coalesce(left, Constant(false)), ...), a pattern
            introduced by the VB compiler for predicate arguments. Returns the 'normalized' version of the expression
            Lambda((bool)left, ...)
            
        
        
            
            This method exists solely to support creation of valid relational operator LINQ expressions that are not natively supported
            by the CLR (e.g. String > String). This method must not be invoked.
            
        
        
            
            Create an operator relating 'left' and 'right' given a relational operator.
            
        
        
            
            Try to create an operator relating 'left' and 'right' using the given operator. If the given operator
            does not define a known relation, returns false.
            
        
        
            
            CODE(C#): Class.Compare(left, right)
            ORIGINAL: MethodCallExpression(Compare, left, right)
            NORMALIZED: Condition(Equal(left, right), 0, Condition(left > right, 1, -1))
            Why is this an improvement? We know how to evaluate Condition in the store, but we don't
            know how to evaluate MethodCallExpression... Where the CompareTo appears within a larger expression,
            e.g. left.CompareTo(right) > 0, we can further simplify to left > right (we register the "ComparePattern"
            to make this possible).
            
        
        
            
            Encapsulates an expression matching some pattern.
            
        
        
            
            Gets pattern kind.
            
        
        
            
            Gets pattern kind.
            
        
        
            
            Matches expression of the form x.CompareTo(y) or Class.CompareTo(x, y)
            
        
        
            
            Gets left-hand argument to Compare operation.
            
        
        
            
            Gets right-hand argument to Compare operation.
            
        
        
            
            LINQ query provider implementation.
            
        
        
            
            Constructs a new provider with the given context. This constructor can be
            called directly when initializing ObjectContext or indirectly when initializing
            ObjectQuery.
            
             The ObjectContext of the provider. 
        
        
            
            Constructs a new provider with the given ObjectQuery. This ObjectQuery instance
            is used to transfer state information to the new ObjectQuery instance created using
            the private CreateQuery method overloads.
            
        
        
            
            Creates a new query from an expression.
            
             The element type of the query. 
             Expression forming the query. 
            
            A new  instance.
            
        
        
            
            Provides an untyped method capable of creating a strong-typed ObjectQuery
            (based on the  argument) and returning it as an
            instance of the untyped (in a generic sense) ObjectQuery base class.
            
             The LINQ expression that defines the new query 
             The result type of the new ObjectQuery 
            
            A new  , as an instance of ObjectQuery
            
        
        
            
            Creates a new query instance using the given LINQ expresion.
            The current query is used to produce the context for the new query, but none of its logic
            is used.
            
             Element type for query result. 
             LINQ expression forming the query. 
             ObjectQuery implementing the expression logic. 
        
        
            
            Executes the given LINQ expression returning a single value, or null if the query yields
            no results. If the return type is unexpected, raises a cast exception.
            The current query is used to produce the context for the new query, but none of its logic
            is used.
            
             Type of returned value. 
             Expression to evaluate. 
             Single result from execution. 
        
        
            
            Creates a new query instance using the given LINQ expresion.
            The current query is used to produce the context for the new query, but none of its logic
            is used.
            
             Expression forming the query. 
             ObjectQuery instance implementing the given expression. 
        
        
            
            Executes the given LINQ expression returning a single value, or null if the query yields
            no results.
            The current query is used to produce the context for the new query, but none of its logic
            is used.
            
             Expression to evaluate. 
             Single result from execution. 
        
        
            
            Uses an expression-specific 'materialization' function to produce
            a singleton result from an IEnumerable query result. The function
            used depends on the semantics required by the expression that is
            the root of the query. First, FirstOrDefault and SingleOrDefault are
            currently handled as special cases, and the default behavior is to
            use the Enumerable.Single materialization pattern.
            
             The expected result type and the required element type of the IEnumerable collection 
             The query result set 
             The expression that is the root of the LINQ query expression tree 
             An instance of TResult if evaluation of the expression-specific singleton-producing function is successful 
        
        
            
            Static utility class for identifying methods in Queryable, Sequence, and IEnumerable
            and
            
        
        
            
            Identifies methods as instances of known sequence operators.
            
             Method info to identify 
             Identified sequence operator 
            
            true if method is known; false otherwise
            
        
        
            
            Identifies method call expressions as calls to known sequence operators.
            
             Expression that may represent a call to a known sequence method 
            
            If true , and the  argument is a LambdaExpression, the Body of the LambdaExpression argument will be retrieved, and that expression will then be examined for a sequence method call instead of the Lambda itself.
            
             Identified sequence operator 
            
            true if  is a  and its target method is known; false otherwise
            
        
        
            
            Looks up some implementation of a sequence method.
            
             Sequence method to find 
             Known method 
             true if some method is found; false otherwise 
        
        
            
            Requires:
            - no collisions on type names
            - no output or reference method parameters
            
            
            Produces a string description of a method consisting of the name and all parameters,
            where all generic type parameters have been substituted with number identifiers.
            
             Method to identify. 
             Canonical description of method (suitable for lookup) 
        
        
            
            Returns all static methods in the Queryable and Enumerable classes.
            
        
        
            
            Enumeration of known extension methods
            
        
        
            
            Static utility class. Replica of query\DLinq\TypeSystem.cs
            
        
        
            
            Resolves MemberInfo to a property or field.
            
             Member to test. 
             Name of member. 
             Type of member. 
             Given member normalized as a property or field. 
        
        
            
            Represents either a entity, entity stub or relationship
            
        
        
            
            For testing.
            
        
        
            
            Gets the updatable version of original values of the object associated with this
            
            .
            
            The updatable original values of object data.
        
        
            Accepts the current values as original values.
        
        
            Marks an entity as deleted.
        
        
            
            Returns the names of an object’s properties that have changed since the last time
            
            was called.
            
            
            An  collection of names as string.
            
        
        
            Sets the state of the object or relationship to modify.
            If State is not Modified or Unchanged
        
        
            Marks the specified property as modified.
            The name of the property.
             If State is not Modified or Unchanged 
        
        
            Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The orginal value of the property is stored and the property will no longer be marked as modified.
            The name of the property to change.
        
        
            Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified.
            true if the property has changed; otherwise, false.
            The name of the property.
        
        
            
            Changes state of the entry to the specified  value.
            
            
            The  value to set for the
            
            property of the entry.
            
        
        
            Sets the current values of the entry to match the property values of a supplied object.
            The detached object that has updated values to apply to the object.  currentEntity  can also be the object’s entity key.
        
        
            Sets the original values of the entry to match the property values of a supplied object.
            The detached object that has original values to apply to the object.  originalEntity  can also be the object’s entity key.
        
        
            
            Used to report that a scalar entity property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the entity property that is changing 
        
        
            
            Used to report that a scalar entity property has been changed
            The property value that was cached during EntityMemberChanging is now
            added to OriginalValues
            
             The name of the entity property that has changing 
        
        
            
            Used to report that a complex property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the top-level entity property that is changing 
             The complex object that contains the property that is changing 
             The name of the property that is changing on complexObject 
        
        
            
            Used to report that a complex property has been changed
            The property value that was cached during EntityMemberChanging is now added to OriginalValues
            
             The name of the top-level entity property that has changed 
             The complex object that contains the property that changed 
             The name of the property that changed on complexObject 
        
        
            
            Reuse or create a new (Entity)DataRecordInfo.
            
        
        
            
            Gets the  for the
            
            .
            
            
            The  for the
            
            .
            
        
        
            
            Gets the  for the object or relationship.
            
            
            The  for the object or relationship.
            
        
        
            
            Gets the state of the .
            
            
            The state of the .
            
        
        
            Gets the entity object.
            The entity object.
        
        
            Gets the entity key.
            The entity key.
        
        
            
            Gets a value that indicates whether the  represents a relationship.
            
            
            true if the  represents a relationship; otherwise, false.
            
        
        
            
            Gets bit array indicating which properties are modified.
            
        
        
            Gets the read-only version of original values of the object or relationship.
            The read-only version of original values of the relationship set entry or entity.
        
        
            
            Gets the current property values of the object or relationship associated with this
            
            .
            
            
            A  that contains the current values of the object or relationship associated with this
            
            .
            
        
        
            
            Gets the  instance for the object represented by entry.
            
            
            The  object.
            
            The entry is a stub or represents a relationship
        
        
            
            Returns the EntityState from the ObjectStateEntry
            
        
        
            
            Singlely-linked list of RelationshipEntry.
            One of the ends in the RelationshipEntry must equal this.EntityKey
            
        
        
            
            Number of RelationshipEntry in the _relationshipEnds list.
            
        
        
            
            For testing purposes only.
            
        
        
            
            For testing purposes only.
            
        
        
            
            Looks at the type of entity represented by this entry and sets flags defining the type of
            change tracking that will be needed. The three main types are:
            - Pure POCO objects or non-change-tracking proxies which need DetectChanges for everything.
            - Entities derived from EntityObject which don't need DetectChanges at all.
            - Change tracking proxies, which only need DetectChanges for complex properties.
            
        
        
            
            Marks specified property as modified.
            
             This API recognizes the names in terms of OSpace 
            If State is not Modified or Unchanged
        
        
            
            Rejects any changes made to the property with the given name since the property was last loaded,
            attached, saved, or changes were accepted. The orginal value of the property is stored and the
            property will no longer be marked as modified.
            
            
            If the result is that no properties of the entity are marked as modified, then the entity will
            be marked as Unchanged.
            Changes to properties can only rejected for entities that are in the Modified or Unchanged state.
            Calling this method for entities in other states (Added, Deleted, or Detached) will result in
            an exception being thrown.
            Rejecting changes to properties of an Unchanged entity or unchanged properties of a Modifed
            is a no-op.
            
             The name of the property to change. 
        
        
            
            Gets a version of the OriginalValues property that can be updated
            
        
        
            
            API to accept the current values as original values and  mark the entity as Unchanged.
            
        
        
            
            Changes state of the entry to the specified 
            
             The requested state 
        
        
            
            Apply modified properties to the original object.
            
             object with modified properties 
        
        
            
            Apply original values to the entity.
            
             The object with original values 
        
        
            
            Add a RelationshipEntry (one of its ends must equal this.EntityKey)
            
        
        
            
            Determines if a given relationship entry is present in the list of entries
            
             The entry to look for 
             True of the relationship end is found 
        
        
            
            Remove a RelationshipEntry (one of its ends must equal this.EntityKey)
            
        
        
            
            Update one of the ends for the related RelationshipEntry
            
             the EntityKey the relationship should currently have 
             if promoting entity stub to full entity 
        
        
            
            Reuse or create a new (Entity)DataRecordInfo.
            
        
        
            
            Used to report that a scalar entity property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the entity property that is changing 
        
        
            
            Used to report that a scalar entity property has been changed
            The property value that was cached during EntityMemberChanging is now
            added to OriginalValues
            
             The name of the entity property that has changing 
        
        
            
            Used to report that a complex property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the top-level entity property that is changing 
             The complex object that contains the property that is changing 
             The name of the property that is changing on complexObject 
        
        
            
            Used to report that a complex property has been changed
            The property value that was cached during EntityMemberChanging is now added to OriginalValues
            
             The name of the top-level entity property that has changed 
             The complex object that contains the property that changed 
             The name of the property that changed on complexObject 
        
        
            
            Method called to complete the change tracking process on an entity property. The original property value
            is now saved in the original values record if there is not already an entry in the record for this property.
            The parameters to this method must have the same values as the parameter values passed to the last call to
            EntityValueChanging on this ObjectStateEntry.
            All inputs are in OSpace.
            
             Name of the top-level entity property that has changed 
             If entityMemberName refers to a complex property, this is the complex object that contains the change. Otherwise this is null. 
             If entityMemberName refers to a complex property, this is the name of the property that has changed on complexObject. Otherwise this is null. 
        
        
            
            Method called to start the change tracking process on an entity property. The current property value is cached at
            this stage in preparation for later storage in the original values record. Multiple successful calls to this method
            will overwrite the cached values.
            All inputs are in OSpace.
            
             Name of the top-level entity property that is changing 
             If entityMemberName refers to a complex property, this is the complex object that contains the change. Otherwise this is null. 
             If entityMemberName refers to a complex property, this is the name of the property that is changing on complexObject. Otherwise this is null. 
        
        
            
            Helper method to recursively expand a complex object's values down to scalars for storage in the original values record.
            This method is used when a whole complex object is set on its parent object, instead of just setting
            individual scalar values on that object.
            
             metadata for the complex property being expanded on the parent where the parent can be an entity or another complex object 
             Old value of the complex property. Scalar values from this object are stored in the original values record 
             New value of the complex property. This object reference is used in the original value record and is associated with the scalar values for the same property on the oldComplexObject 
             Whether or not to use the existing complex object in the original values or to use the original value that is already present 
        
        
            
            Helper method to validate that the property names being reported as changing/changed are valid for this entity and that
            the entity is in a valid state for the change request. Also determines if this is a change on a complex object, and
            returns the appropriate metadata and object to be used for the rest of the changing and changed operations.
            
             Top-level entity property name 
             Complex object that contains the change, null if the change is on a top-level entity property 
             Name of the property that is changing on the complexObject, null for top-level entity properties 
             Metadata for the type that contains the change, either for the entity itself or for the complex object 
             Property name that is actually changing -- either entityMemberName for entities or complexObjectMemberName for complex objects 
             Object reference that contains the change, either the entity or complex object as appropriate for the requested change 
             Ordinal of the property that is changing, or -2 if the EntityKey is changing in a valid scenario. This is relative to the returned typeMetadata. Throws exceptions if the requested property name(s) are invalid for this entity. 
        
        
            
            Helper method to set the information needed for the change tracking cache. Ensures that all of these values get set together.
            
        
        
            
            Uses DetectChanges to determine whether or not the current value of the property with the given
            name is different from its original value. Note that this may be different from the property being
            marked as modified since a property which has not changed can still be marked as modified.
            
            
            For complex properties, a new instance of the complex object which has all the same property
            values as the original instance is not considered to be different by this method.
            
             The name of the property. 
             True if the property has changed; false otherwise. 
        
        
            
            Processes each dependent end of an FK relationship in this entity and determines if a nav
            prop is set to a principal.  If it is, and if the principal is Unchanged or Modified,
            then the primary key value is taken from the principal and used to fixup the FK value.
            This is called during AddObject so that references set from the added object will take
            precedence over FK values such that there is no need for the user to set FK values
            explicitly.  If a conflict in the FK value is encountered due to an overlapping FK
            that is tied to two different PK values, then an exception is thrown.
            Note that references to objects that are not yet tracked by the context are ignored, since
            they will ultimately be brought into the context as Added objects, at which point we would
            have skipped them anyway because the are not Unchanged or Modified.
            
        
        
            
            Designed to be used by Change Detection methods to insert
            Added/Deleted relationships into 
            Creates new entries in the dictionaries if required
            
             IEntityWrapper or EntityKey 
             The set of detected relationships to add this entry to 
             The entity the relationship points to 
             The related end the relationship originates from 
        
        
            
            Detaches an entry and create in its place key entry if necessary
            Removes relationships with another key entries and removes these key entries if necessary
            
        
        
            
            Nulls all FK values in this entity, or sets conceptual nulls if they are not nullable.
            
        
        
            
            see if there are any relationship entries that point to key entries
            if there are, remove the relationship entry
            This is called when one of the ends of a relationship is being removed
            
             An option relationshipSet; deletes only relationships that are part of this set 
        
        
            
            Turns this entry into a key entry (SPAN stub).
            
        
        
            
            Verifies that the property with the given ordinal is editable.
            
            the property is not editable
        
        
            
            For each FK contained in this entry, the entry is removed from the index maintained by
            the ObjectStateManager for that key.
            
        
        
            
            Looks at the foreign keys contained in this entry and performs fixup to the entities that
            they reference, or adds the key and this entry to the index of foreign keys that reference
            entities that we don't yet know about.
            
        
        
            
            Given a RelatedEnd that represents a FK from this dependent entity to the principal entity of the
            relationship, this method fixes up references between the two entities.
            
             Represents a FK relationship to a principal 
             The foreign key, if it has already been computed 
             If true, then the IsLoaded flag for the relationship is set 
             If true, then any existing references will be replaced 
        
        
            
            Determins whether or not setting a reference will cause implicit ref stealing as part of FK fixup.
            If it would, then an exception is thrown.  If it would not and we can safely overwrite the existing
            value, then true is returned.  If it would not but we should not overwrite the existing value,
            then false is returned.
            
        
        
            
            Given that this entry represents an entity on the dependent side of a FK, this method attempts to return the key of the
            entity on the principal side of the FK.  If the two entities both exist in the context, then the primary key of
            the principal entity is found and returned.  If the principal entity does not exist in the context, then a key
            for it is built up from the foreign key values contained in the dependent entity.
            
             The role indicating the FK to navigate 
             Set to the principal key or null on return 
             True if the principal key was found or built; false if it could not be found or built 
        
        
            
            Performs fixuyup of foreign keys based on referencesd between objects.  This should only be called
            for Added objects since this is the only time that references take precedence over FKs in fixup.
            
        
        
            
            Fixup the FKs by the current reference values
            Do this in the order of fixing up values from the principal ends first, and then propogate those values to the dependents
            
        
        
            
            Returns a list of all RelatedEnds for this entity
            that are the dependent end of an FK Association
            
        
        
            
            Identifies any changes in FK's and creates entries in;
            - TransactionManager.AddedRelationshipsByForeignKey
            - TransactionManager.DeletedRelationshipsByForeignKey
            If the FK change will result in fix-up then two entries
            are added to TransactionManager.AddedRelationshipsByForeignKey
            (one for each direction of the new realtionship)
            
        
        
            
            The EntityKey associated with the ObjectStateEntry
            
        
        
            
            Original values
            
             
             DbDataRecord 
        
        
            
            Current values
            
             
             DbUpdatableDataRecord 
        
        
            
            True if the underlying entity is not capable of tracking changes to complex types such that
            DetectChanges is required to do this.
            
        
        
            
            True if the underlying entity is not capable of tracking changes to scalars such that
            DetectChanges is required to do this.
            
        
        
            
            True if the underlying entity is not capable of performing full change tracking such that
            it must be considered by at least some parts of DetectChanges.
            
        
        
            
            An enumerable so that EntityEntry doesn't implement it
            
        
        
            
            Convert the singly-linked list into an Array
            
        
        
            
            An enumerator to walk the RelationshipEntry linked-list
            
        
        
            
            For testing purpuses only.
            
        
        
            
            Construct a new instance of the FieldDescriptor class that describes a property
            on items of the supplied type.
            
             Type of object whose property is described by this FieldDescriptor. 
            
            True if property value on item can be modified; otherwise false .
            
             EdmProperty that describes the property on the item. 
        
        
            
            Determine a CLR Type to use a property descriptro form an EDM TypeUsage
            
             The EDM TypeUsage containing metadata about the type 
             A CLR type that represents that EDM type 
        
        
            
            Get  instance associated with this field descriptor.
            
            
            The  instance associated with this field descriptor, or null if there is no EDM property association.
            
        
        
            
            This class is used in Referential Integrity Constraints feature.
            It is used to get around the problem of enumerating dictionary contents,
            but allowing update of the value without breaking the enumerator.
            
        
        
            
            Base class containing common code for different implementations of the IEntityWrapper
            interface.  Generally speaking, operations involving the ObjectContext, RelationshipManager
            and raw Entity are handled through this class.
            
             The type of entity wrapped 
        
        
            
            Internally, entities are wrapped in some implementation of this
            interface.  This allows the RelationshipManager and other classes
            to treat POCO entities and traditional entities in the same way
            where ever possible.
            
        
        
            
            Ensures that the collection with the given name is not null by setting a new empty
            collection onto the property if necessary.
            
             The name of the collection to operate on 
        
        
            
            Retrieves the EntityKey from the entity if it implements IEntityWithKey
            
             The EntityKey on the entity 
        
        
            
            Attaches the wrapped entity to the given context.
            
             the context with which to associate this entity 
             the entity set to which the entity belongs 
             the merge option to use 
        
        
            
            Resets the context with which the wrapped entity is associated.
            
             the context with which to associate this entity 
             the entity set to which the entity belongs 
             the merge option to use 
        
        
            
            Detaches the wrapped entity from its associated context.
            
        
        
            
            Sets the entity's ObjectStateEntry as the entity's change tracker if possible.
            The ObjectStateEntry may be null when a change tracker is being removed from an
            entity.
            
             the object to use as a change tracker 
        
        
            
            Takes a snapshot of the entity state unless the entity has an associated
            change tracker or the given entry is null, in which case no action is taken.
            
             the entity's associated state entry 
        
        
            
            Takes a snapshot of the relationships of the entity stored in the entry
            
        
        
            
            Populates a value into a collection of values stored in a property of the entity.
            If the collection to be populated is actually managed by and returned from
            the RelationshipManager when needed, then this method is a no-op.  This is
            typically the case for non-POCO entities.
            
        
        
            
            Removes a value from a collection of values stored in a property of the entity.
            If the collection to be updated is actually managed by and returned from
            the RelationshipManager when needed, then this method is a no-op.  This is
            typically the case for non-POCO entities.
            
        
        
            
            Returns value of the entity's property described by the navigation property.
            
             navigation property to retrieve 
        
        
            
            Populates a single value into a field or property of the entity.
            If the element to be populated is actually managed by and returned from
            the RelationshipManager when needed, then this method is a no-op.  This is
            typically the case for non-POCO entities.
            
        
        
            
            Removes a single value from a field or property of the entity.
            If the field or property contains reference to a different object,
            this method is a no-op.
            If the element to be populated is actually managed by and returned from
            the RelationshipManager when needed, then this method is a no-op.  This is
            typically the case for non-POCO entities.
            
             
             The value to remove 
        
        
            
            Sets the given value onto the entity with the registered change either handled by the
            entity itself or by using the given EntityEntry as the change tracker.
            
             The state entry of the entity to for which a value should be set 
             State member information indicating the member to set 
             The ordinal of the member to set 
             The object onto which the value should be set; may be the entity, or a contained complex value 
             The value to set 
        
        
            
            Updates the current value records using Shaper.UpdateRecord but with additional change tracking logic
            added as required by POCO and proxy entities.  For the simple case of no proxy and an entity with
            a change tracker, this translates into a simple call to ShaperUpdateRecord.
            
             The value 
             The existing ObjectStateEntry 
        
        
            
            The Relationship Manager that is associated with the wrapped entity.
            
        
        
            
            Information about whether or not the entity instance actually owns and uses its RelationshipManager
            This is used to determine how to do relationship fixup in some cases
            
        
        
            
            The actual entity that is wrapped by this wrapper object.
            
        
        
            
            If this IEntityWrapper is tracked, accesses the ObjectStateEntry that is used in the state manager
            
        
        
            
            The key associated with this entity, which may be null if no key is known.
            
        
        
            
            The context with which the wrapped entity is associated, or null if the entity
            is detached.
            
        
        
            
            The merge option assoicated with the wrapped entity.
            
        
        
            
            The Type object that should be used to identify this entity in o-space.
            This is normally just the type of the entity object, but if the object
            is a proxy that we have generated, then the type of the base class is returned instead.
            This ensures that both proxy entities and normal entities are treated as the
            same kind of entity in the metadata and places where the metadata is used.
            
        
        
            
            Set to true while the process of initalizing RelatedEnd objects for an IPOCO proxy is in process.
            This flag prevents the context from being set onto the related ends, which in turn means that
            the related ends don't need to have keys, which in turn means they don't need to be part of an EntitySet.
            
        
        
            
            True if the underlying entity is not capable of tracking changes to relationships such that
            DetectChanges is required to do this.
            
        
        
            
            Constructs a wrapper for the given entity and its associated RelationshipManager.
            
             The entity to be wrapped 
             the RelationshipManager associated with this entity 
        
        
            
            Constructs a wrapper as part of the materialization process.  This constructor is only used
            during materialization where it is known that the entity being wrapped is newly constructed.
            This means that some checks are not performed that might be needed when thw wrapper is
            created at other times, and information such as the identity type is passed in because
            it is readily available in the materializer.
            
             The entity to wrap 
             The RelationshipManager associated with this entity 
             The entity set, or null if none is known 
             The context to which the entity should be attached 
             NoTracking for non-tracked entities, AppendOnly otherwise 
             The type of the entity ignoring any possible proxy type 
        
        
            
            Supports materialization of complex type instances from records. Used
            by the ObjectStateManager.
            
        
        
            
            Add a DataContractAttribute to the proxy type, based on one that may have been applied to the base type.
            
            
             From http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspx: A data contract has two basic requirements: a stable name and a list of members. The stable name consists of the namespace uniform resource identifier (URI) and the local name of the contract. By default, when you apply the DataContractAttribute to a class, it uses the class name as the local name and the class's namespace (prefixed with "http://schemas.datacontract.org/2004/07/") as the namespace URI. You can override the defaults by setting the Name and Namespace properties. You can also change the namespace by applying the ContractNamespaceAttribute to the namespace. Use this capability when you have an existing type that processes data exactly as you require but has a different namespace and class name from the data contract. By overriding the default values, you can reuse your existing type and have the serialized data conform to the data contract. 
             The first attempt at WCF serialization of proxies involved adding a DataContractAttribute to the proxy type in such a way so that the name and namespace of the proxy's data contract matched that of the base class. This worked when serializing proxy objects for the root type of the DataContractSerializer, but not for proxy objects of types derived from the root type. Attempting to add the proxy type to the list of known types failed as well, since the data contract of the proxy type did not match the base type as intended. This was due to the fact that inheritance is captured in the data contract. So while the proxy and base data contracts had the same members, the proxy data contract differed in that is declared itself as an extension of the base data contract. So the data contracts were technically not equivalent. The approach used instead is to allow proxy types to have their own DataContract. Users then have at least two options available to them. The first approach is to add the proxy types to the list of known types. The second approach is to implement an IDataContractSurrogate that can map a proxy instance to a surrogate that does have a data contract equivalent to the base type (you could use the base type itself for this purpose). While more complex to implement, it allows services to hide the use of proxies from clients. This can be quite useful in order to maximize potential interoperability. 
            
        
        
            
            Factory for creating proxy classes that can intercept calls to a class' members.
            
        
        
            
            A hook such that test code can change the AssemblyBuilderAccess of the
            proxy assembly through reflection into the EntityProxyFactory.
            
        
        
            
            Dictionary of proxy class type information, keyed by the pair of the CLR type and EntityType CSpaceName of the type being proxied.
            A null value for a particular EntityType name key records the fact that
            no proxy Type could be created for the specified type.
            
        
        
            
            Dictionary of proxy class type information, keyed by the proxy type
            
        
        
            
            The runtime assembly of the proxy types.
            This is not the same as the AssemblyBuilder used to create proxy types.
            
        
        
            
            Return proxy type information for the specified O-Space EntityType.
            
             EntityType in O-Space that represents the CLR type to be proxied. Must not be null. 
             A non-null EntityProxyTypeInfo instance that contains information about the type of proxy for the specified O-Space EntityType; or null if no proxy can be created for the specified type. 
        
        
            
            A mechanism to lookup AssociationType metadata for proxies for a given entity and association information
            
             The entity instance used to lookup the proxy type 
             The name of the relationship (FullName or Name) 
             The AssociationType for that property 
             True if an AssociationType is found in proxy metadata, false otherwise 
        
        
            
            Enumerate list of supplied O-Space EntityTypes,
            and generate a proxy type for each EntityType (if possible for the particular type).
            
             Enumeration of O-Space EntityType objects. Must not be null. In addition, the elements of the enumeration must not be null. 
             
        
        
            
            Determine if the specified type represents a known proxy type.
            
             The Type to be examined. 
             True if the type is a known proxy type; otherwise false. 
        
        
            
            Return an enumerable of the current set of CLR proxy types.
            
             Enumerable of the current set of CLR proxy types. This value will never be null. 
            
            The enumerable is based on a shapshot of the current list of types.
            
        
        
            
            Build a CLR proxy type for the supplied EntityType.
            
             
             EntityType in O-Space that represents the CLR type to be proxied. 
             
             EntityProxyTypeInfo object that contains the constructed proxy type, along with any behaviors associated with that type; or null if a proxy type cannot be constructed for the specified EntityType. 
        
        
            
            In order for deserialization of proxy objects to succeed in this AppDomain,
            an assembly resolve handler must be added to the AppDomain to resolve the dynamic assembly,
            since it is not present in a location discoverable by fusion.
            
             Proxy assembly to be resolved. 
        
        
            
            Construct an interception delegate for the specified proxy member.
            
             EdmMember that specifies the member to be intercepted. 
             Type of the proxy. 
             
        
        
            
            Sets a delegate onto the _resetFKSetterFlag field such that it can be executed to make
            a call into the state manager to reset the InFKSetter flag.
            
        
        
            
            Returns the delegate that takes a proxy instance and uses it to reset the InFKSetter flag maintained
            by the state manager of the context associated with the proxy instance.
            
        
        
            
            Called in the finally clause of each overridden property setter to ensure that the flag
            indicating that we are in an FK setter is cleared.  Note that the wrapped entity is passed as
            an obejct becayse IEntityWrapper is an internal type and is therefore not accessable to
            the proxy type.  Once we're in the framework it is cast back to an IEntityWrapper.
            
        
        
            
            Sets a delegate onto the _compareByteArrays field such that it can be executed to check
            whether two byte arrays are the same by value comparison.
            
        
        
            
            Return boolean that specifies if the specified type can be proxied.
            
             O-space EntityType 
             True if the class is not abstract or sealed, does not implement IEntityWithRelationships, and has a public or protected default constructor; otherwise false. 
            
            While it is technically possible to derive from an abstract type
            in order to create a proxy, we avoid this so that the proxy type
            has the same "concreteness" of the type being proxied.
            The check for IEntityWithRelationships ensures that codegen'ed
            entities that derive from EntityObject as well as properly
            constructed IPOCO entities will not be proxied.
            
        
        
            
            Specifies information about a proxied class member.
            The member must be a Property for the current implementation,
            but this may be generalized later to support methods as well.
            
            
            Initially, this class held a reference to the PropertyInfo that represented the proxy property.
            This property was unused, so it was removed.  However, it may be necessary to add it later.
            This is pointed out here since it may not seem obvious as to why this would be omitted.
            
        
        
            
            Contains the Type of a proxy class, along with any behaviors associated with that proxy Type.
            
        
        
            
            Set the proxy object's private entity wrapper field value to the specified entity wrapper object.
            The proxy object (representing the wrapped entity) is retrieved from the wrapper itself.
            
             Wrapper object to be referenced by the proxy. 
             The supplied entity wrapper. This is done so that this method can be more easily composed within lambda expressions (such as in the materializer). 
        
        
            
            Gets the proxy object's entity wrapper field value
            
        
        
            
            Provides Entity-SQL query building services for .
            Knowledge of how to compose Entity-SQL fragments using query builder operators resides entirely in this class.
            
        
        
            
            Helper method to extract the Entity-SQL command text from an  instance if that
            instance models an Entity-SQL-backed ObjectQuery, or to throw an exception indicating that query builder methods
            are not supported on this query.
            
             The instance from which the Entity-SQL command text should be retrieved 
             The Entity-SQL command text, if the specified query state instance is based on Entity-SQL 
            If the specified instance is not based on Entity-SQL command text, and so does not support Entity-SQL query builder methods
        
        
            
            Merges s from a source ObjectQuery with ObjectParameters specified as an argument to a builder method.
            A new  is returned that contains copies of parameters from both
            
            and .
            
            
            The  to use when constructing the new parameter collection
            
             ObjectParameters from the ObjectQuery on which the query builder method was called 
             ObjectParameters that were specified as an argument to the builder method 
             A new ObjectParameterCollection containing copies of all parameters 
        
        
            
            Merges s from two ObjectQuery arguments to SetOp builder methods (Except, Intersect, Union, UnionAll).
            A new  is returned that contains copies of parameters from both
            
            and .
            
             ObjectParameters from the first ObjectQuery argument (on which the query builder method was called) 
             ObjectParameters from the second ObjectQuery argument (specified as an argument to the builder method) 
             A new ObjectParameterCollection containing copies of all parameters 
        
        
            
            ObjectQueryState based on Entity-SQL query text.
            
        
        
            
            The Entity-SQL text that defines the query.
            
            
            It is important that this field is readonly for consistency reasons wrt .
            If this field becomes read-write, then write should be allowed only when  is null,
            or there should be a mechanism keeping both fields consistent.
            
        
        
            
            Optional  that defines the query. Must be semantically equal to the
            
            .
            
            
            It is important that this field is readonly for consistency reasons wrt .
            If this field becomes read-write, then there should be a mechanism keeping both fields consistent.
            
        
        
            
            Can a Limit subclause be appended to the text of this query?
            
        
        
            
            Initializes a new query EntitySqlQueryState instance.
            
             
             The Entity-SQL text of the query 
             
             The ObjectContext containing the metadata workspace the query was built against, the connection on which to execute the query, and the cache to store the results in. Must not be null. 
             
             
        
        
            
            Initializes a new query EntitySqlQueryState instance.
            
             
             The Entity-SQL text of the query 
            
            Optional  that defines the query. Must be semantically equal to the
            .
            
             
             The ObjectContext containing the metadata workspace the query was built against, the connection on which to execute the query, and the cache to store the results in. Must not be null. 
             
             
             
        
        
            
            Always returns the Entity-SQL text of the implemented ObjectQuery.
            
             Always set to the Entity-SQL text of this ObjectQuery. 
            
            Always returns true .
            
        
        
            
            Determines whether or not the current query is a 'Skip' or 'Sort' operation
            and so would allow a 'Limit' clause to be appended to the current query text.
            
            
            True if the current query is a Skip or Sort expression, or a Project expression with a Skip or Sort expression input.
            
        
        
            
            Implementation of the change tracking strategy for entities that support change trackers.
            These are typically entities that implement IEntityWithChangeTracker.
            
        
        
            
            A strategy interface that defines methods used for different types of change tracking.
            Implementors of this interface are used by the EntityWrapper class.
            
        
        
            
            Sets a change tracker onto an entity, or does nothing if the entity does not support change trackers.
            
             The change tracker to set 
        
        
            
            Takes a snapshot of the entity contained in the given state entry, or does nothing if
            snapshots are not required for the entity.
            
             The state entry representing the entity to snapshot 
        
        
            
            Sets the given value onto the entity with the registered change either handled by the
            entity itself or by using the given EntityEntry as the change tracker.
            
             The state entry of the entity to for which a value should be set 
             State member information indicating the member to set 
             The ordinal of the member to set 
             The object onto which the value should be set; may be the entity, or a contained complex value 
             The value to set 
        
        
            
            Updates the current value records using Shaper.UpdateRecord but with additional change tracking logic
            added as required by POCO and proxy entities.
            
             The value 
             The existing ObjectStateEntry 
        
        
            
            Constructs a strategy object that will cause the change tracker to be set onto the
            given object.
            
             The object onto which a change tracker will be set 
        
        
            
            Implementor of IEntityKeyStrategy for entities that implement IEntityWithKey.  Getting and setting
            the key is deferred to the entity itself.
            
        
        
            
            A strategy interface that defines methods used for setting and getting EntityKey values on an entity.
            Implementors of this interface are used by the EntityWrapper class.
            
        
        
            
            Gets the entity key.
            
             The key 
        
        
            
            Sets the entity key
            
             The key 
        
        
            
            Returns the entity key directly from the entity
            
             the key 
        
        
            
            Creates a strategy object for the given entity.  Keys will be stored in the entity.
            
             The entity to use 
        
        
            
            Implementation of the IEntityWrapper interface that is used for non-null entities that do not implement
            all of our standard interfaces: IEntityWithKey, IEntityWithRelationships, and IEntityWithChangeTracker, and
            are not proxies.
            Different strategies for dealing with these entities are defined by strategy objects that are set into the
            wrapper at construction time.
            
        
        
            
            Constructs a wrapper for the given entity.
            Note: use EntityWrapperFactory instead of calling this constructor directly.
            
             The entity to wrap 
             The RelationshipManager associated with the entity 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            Constructs a wrapper as part of the materialization process.  This constructor is only used
            during materialization where it is known that the entity being wrapped is newly constructed.
            This means that some checks are not performed that might be needed when thw wrapper is
            created at other times, and information such as the identity type is passed in because
            it is readily available in the materializer.
            
             The entity to wrap 
             The RelationshipManager associated with the entity 
             The entity's key 
             The entity set, or null if none is known 
             The context to which the entity should be attached 
             NoTracking for non-tracked entities, AppendOnly otherwise 
             The type of the entity ignoring any possible proxy type 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            Factory class for creating IEntityWrapper instances.
            
        
        
            
            Called to create a new wrapper outside of the normal materialization process.
            This method is typically used when a new entity is created outside the context and then is
            added or attached.  The materializer bypasses this method and calls wrapper constructors
            directory for performance reasons.
            This method does not check whether or not the wrapper already exists in the context.
            
             The entity for which a wrapper will be created 
             The key associated with that entity, or null 
             The new wrapper instance 
        
        
            
            Returns a delegate that creates the fast LightweightEntityWrapper
            
        
        
            
            Convenience function that gets the ObjectStateManager from the context and calls
            WrapEntityUsingStateManager.
            
             the entity to wrap 
             the context in which the entity may exist, or null 
             a new or existing wrapper 
        
        
            
            Convenience function that gets the ObjectStateManager from the context and calls
            WrapEntityUsingStateManager.
            
             The entity to wrap 
             The context in which the entity may exist, or null 
             Set to the existing state entry if one is found, else null 
             a new or existing wrapper 
        
        
            
            Wraps an entity and returns a new wrapper, or returns an existing wrapper if one
            already exists in the ObjectStateManager or in a RelationshipManager associated with
            the entity.
            
             the entity to wrap 
             the state manager in which the entity may exist, or null 
             a new or existing wrapper 
        
        
            
            Wraps an entity and returns a new wrapper, or returns an existing wrapper if one
            already exists in the ObjectStateManager or in a RelationshipManager associated with
            the entity.
            
             The entity to wrap 
             The state manager in which the entity may exist, or null 
             The existing state entry for the given entity if one exists, otherwise null 
             A new or existing wrapper 
        
        
            
            When an entity enters Object Services that was retreived with NoTracking, it may not have certain fields set that are in many cases
            assumed to be present. This method updates the wrapper with a key and a context.
            
             The wrapped entity 
             The context that will be using this wrapper 
             The entity set this wrapped entity belongs to 
        
        
            
            Returns a func that will create a PocoPropertyAccessorStrategy object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            Returns a func that will create a null IPropertyAccessorStrategy strategy object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            Returns a func that will create a EntityWithChangeTrackerStrategy object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            Returns a func that will create a SnapshotChangeTrackingStrategy object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            Returns a func that will create a EntityWithKeyStrategy object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            Returns a func that will create a GetPocoEntityKeyStrategyFunc object for a given entity.
            
             The func to be used to create the strategy object. 
        
        
            
            An extension of the EntityWrapper class for entities that are known not to implement
            IEntityWithRelationships.  Using this class causes the RelationshipManager to be created
            independently.
            
             The type of entity wrapped 
        
        
            
            Constructs a wrapper as part of the materialization process.  This constructor is only used
            during materialization where it is known that the entity being wrapped is newly constructed.
            This means that some checks are not performed that might be needed when thw wrapper is
            created at other times, and information such as the identity type is passed in because
            it is readily available in the materializer.
            
             The entity to wrap 
             The entity's key 
             The entity set, or null if none is known 
             The context to which the entity should be attached 
             NoTracking for non-tracked entities, AppendOnly otherwise 
             The type of the entity ignoring any possible proxy type 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            Constructs a wrapper for the given entity.
            Note: use EntityWrapperFactory instead of calling this constructor directly.
            
             The entity to wrap 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            An extension of the EntityWrapper class for entities that implement IEntityWithRelationships.
            Using this class causes creation of the RelationshipManager to be defered to the entity object.
            
             The type of entity wrapped 
        
        
            
            Constructs a wrapper as part of the materialization process.  This constructor is only used
            during materialization where it is known that the entity being wrapped is newly constructed.
            This means that some checks are not performed that might be needed when thw wrapper is
            created at other times, and information such as the identity type is passed in because
            it is readily available in the materializer.
            
             The entity to wrap 
             The entity's key 
             The entity set, or null if none is known 
             The context to which the entity should be attached 
             NoTracking for non-tracked entities, AppendOnly otherwise 
             The type of the entity ignoring any possible proxy type 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            Constructs a wrapper for the given entity.
            Note: use EntityWrapperFactory instead of calling this constructor directly.
            
             The entity to wrap 
             A delegate to create the property accesor strategy object 
             A delegate to create the change tracking strategy object 
             A delegate to create the entity key strategy object 
        
        
            
            Returns true if the supplied key represents a Conceptual Null
            
             The key to be checked 
        
        
            
            Checks if the Real Key represents different FK values
            than those present when the Conceptual Null was created
            
             The key representing the Conceptual Null 
             The key to be checked 
             True if the values are different, false otherwise 
        
        
            
            Creates an EntityKey that represents a Conceptual Null
            
             An EntityKey representing the existing FK values that could not be nulled 
             EntityKey marked as a conceptual null with the FK values from the original key 
        
        
            
            Creates an EntityKey for a principal entity based on the foreign key values contained
            in this entity.  This implies that this entity is at the dependent end of the relationship.
            
             The EntityEntry for the dependent that contains the FK 
             Identifies the principal end for which a key is required 
             The key, or null if any value in the key is null 
        
        
            
            Creates an EntityKey for a principal entity based on the foreign key values contained
            in this entity.  This implies that this entity is at the dependent end of the relationship.
            
             The EntityEntry for the dependent that contains the FK 
             The constraint that describes this FK relationship 
             The entity set at the principal end of the the relationship 
             If true then the key will be constructed from the original FK values 
             The key, or null if any value in the key is null 
        
        
            
            A strategy interface that defines methods used for setting and getting values of
            properties and collections on entities.
            Implementors of this interface are used by the EntityWrapper class.
            
        
        
            
            Gets the value of a navigation property for the given related end.
            
             Specifies the related end for which a value is required 
             The property value 
        
        
            
            Sets the value of a navigation property for the given related end.
            
             Specifies the related end for which a value should be set 
             The value to set 
        
        
            
            Adds a value to the collection represented by the given related end.
            
             The related end for the collection to use 
             The value to add to the collection 
        
        
            
            Removes a value from the collection represented by the given related end.
            
             The related end for the collection to use 
             The value to remove from the collection 
             True if a value was found and removed; false otherwise 
        
        
            
            Creates a new collection for the given related end.
            
             The related end for which a collection should be created 
             The new collection 
        
        
            
            Defines and injects behavior into proxy class Type definitions
            to allow navigation properties to lazily load their references or collection elements.
            
        
        
            
            Return an expression tree that represents the actions required to load the related end
            associated with the intercepted proxy member.
            
             EdmMember that specifies the member to be intercepted. 
             The Func that retrieves the wrapper from a proxy 
             Expression tree that encapsulates lazy loading behavior for the supplied member, or null if the expression tree could not be constructed. 
        
        
            
            Determine if the specified member is compatible with lazy loading.
            
             OSpace EntityType representing a type that may be proxied. 
            
            Member of the  to be examined.
            
             True if the member is compatible with lazy loading; otherwise false. 
            
            To be compatible with lazy loading,
            a member must meet the criteria for being able to be proxied (defined elsewhere),
            and must be a navigation property.
            In addition, for relationships with a multiplicity of Many,
            the property type must be an implementation of ICollection<T>.
            
        
        
            
            Method called by proxy interceptor delegate to provide lazy loading behavior for navigation properties.
            
             property type 
             The property value whose associated relationship is to be loaded. 
             String name of the relationship. 
            
            String name of the related end to be loaded for the relationship specified by
            
            .
            
             
             Entity wrapper object used to retrieve RelationshipManager for the proxied entity. 
             True if the value instance was mutated and can be returned False if the class should refetch the value because the instance has changed 
        
        
            
            Implementation of IEntityWrapper for any entity that implements IEntityWithChangeTracker, IEntityWithRelationships,
            and IEntityWithKey and is not a proxy.  This is a lightweight wrapper that delegates functionality to those interfaces.
            This improves the speed and memory utilization for the standard code-gen cases in materialization.
            
             The type of entity wrapped 
        
        
            
            Constructs a wrapper for the given entity.
            Note: use EntityWrapperFactory instead of calling this constructor directly.
            
             The entity to wrap 
        
        
            
            Constructs a wrapper as part of the materialization process.  This constructor is only used
            during materialization where it is known that the entity being wrapped is newly constructed.
            This means that some checks are not performed that might be needed when thw wrapper is
            created at other times, and information such as the identity type is passed in because
            it is readily available in the materializer.
            
             The entity to wrap 
             The key for the entity 
             The entity set, or null if none is known 
             The context to which the entity should be attached 
             NoTracking for non-tracked entities, AppendOnly otherwise 
             The type of the entity ignoring any possible proxy type 
        
        
            
            Defines an entity wrapper that wraps an entity with a null value.
            This is a singleton class for which the same instance is always returned
            any time a wrapper around a null entity is requested.  Objects of this
            type are immutable and mutable to allow this behavior to work correctly.
            
        
        
            
            The single instance of this class.
            
        
        
            
            Responsible for performing Relationship-span only rewrites over a Command Tree rooted
            by the  property. Virtual methods provide an opportunity for derived
            classes to implement Full-span rewrites.
            
        
        
            
            Constructs a new ObjectSpanRewriter that will attempt to apply spanning to the specified query
            (represented as a DbExpression) when  is called.
            
             
            
            A  representing the query to span.
            
             
        
        
            
            Main 'public' entry point called by ObjectQuery.
            
            
            The rewritten version of  if spanning was required; otherwise null .
            
        
        
            
            Gathers the applicable { from, to } relationship end pairings for the specified entity type.
            Note that it is possible for both { x, y } and { y, x } - where x and y are relationship ends -
            to be returned if the relationship is symmetric (in the sense that it has multiplicity of at
            most one in each direction and the type of each end is Ref to the same Entity type, or a supertype).
            
             The Entity type for which the applicable { from, to } end pairings should be retrieved. 
            
            A List of association end members pairings that describes the available { from, to } navigations for the specified Entity type that are valid for Relationship Span; or null if no such pairings exist.
            
        
        
            
            Determines whether the specified { from, to } relationship end pairing represents a navigation that is
            valid for a relationship span sourced by an instance of the specified entity type.
            
             The Entity type which valid 'from' ends must reference (or a supertype of that Entity type) 
             The Association type to consider. 
             The candidate 'from' end, which will be checked based on the Entity type it references 
             The candidate 'to' end, which will be checked base on the upper bound of its multiplicity 
            
            True if the end pairing represents a valid navigation from an instance of the specified entity type to an association end with a multiplicity upper bound of at most 1; otherwise false
            
        
        
            
            Gets the metadata workspace the will be used to retrieve required metadata, for example association types.
            
        
        
            
            Gets a DbExpression representing the query that should be spanned.
            
        
        
            
            Gets a value indicating whether relationship span is required (ObjectQuery sets this to 'false' for NoTracking queries).
            
        
        
            
            Gets a dictionary that indicates, for a given result row type produced by a span rewrite,
            which columns represent which association end members.
            This dictionary is initially empty before  is called and will remain so
            if no rewrites are required.
            
        
        
            
            Maintains a reference to the SpanPathInfo tree node representing the
            current position in the 'Include' path that is currently being expanded.
            
        
        
            
            Populates the Include span tree with appropriate branches for the Include path
            represented by the specified list of navigation property names.
            
             The root SpanPathInfo 
             A list of navigation property names that describes a single Include span path 
        
        
            
            Retrieves the Entity (result or element) type produced by a Navigation Property.
            
             The navigation property 
             The Entity type produced by the navigation property. This may be the immediate result type (if the result is at most one) or the element type of the result type, otherwise. 
        
        
            
            Retrieves the Entity (result or element) type referenced by the specified TypeUsage, if
            its EdmType is an Entity type or a collection type with an Entity element type.
            
             The TypeUsage that provides the EdmType to examine 
             The referenced Entity (element) type, if present. 
            
            true if the specified  is an Entity type or a collection type with an Entity element type; otherwise false .
            
        
        
            
            Utility method to retrieve the 'To' AssociationEndMember of a NavigationProperty
            
             The navigation property 
             The AssociationEndMember that is the target of the navigation operation represented by the NavigationProperty 
        
        
            
            Represents a node in the 'Include' navigation property tree
            built from the list of SpanPaths on the Span object with which
            the FullSpanRewriter is constructed.
            
        
        
            
            The effective Entity type of this node in the tree
            
        
        
            
            Describes the navigation properties that should be retrieved
            from this node in the tree and the Include sub-paths that extend
            from each of those navigation properties
            
        
        
            
            Represents the 'compiled' form of all elements (query + result assembly) required to execute a specific
            
            
        
        
            
            If the query yields entities from a single entity set, the value is stored here.
            
        
        
            
            For testing purposes only. For anything else call .
            
        
        
            
            Implementor of IEntityKeyStrategy for getting and setting a key on an entity that does not
            implement IEntityWithKey.  The key is stored in the strategy object.
            
        
        
            
            Implementation of the property accessor strategy that gets and sets values on POCO entities.  That is,
            entities that do not implement IEntityWithRelationships.
            
        
        
            
            Constructs a strategy object to work with the given entity.
            
             The entity to use 
        
        
            
            We only get here if a navigation property getter returns null.  In this case, we try to set the
            navigation property to some collection that will work.
            
        
        
            
            This class determines if the proxied type implements ISerializable with the special serialization constructor.
            If it does, it adds the appropriate members to the proxy type.
            
        
        
            
            Implementation of the change tracking strategy for entities that require snapshot change tracking.
            These are typically entities that do not implement IEntityWithChangeTracker.
            
        
        
            
            Returns the single static instance of this class; a single instance is all that is needed
            because the class is stateless.
            
        
        
            
            Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set.
            
             Type of entities returned from the queryable. 
        
        
            Notifies the set that an object that represents a new entity must be added to the set.
            
            Depending on the implementation, the change to the set may not be visible in an enumeration of the set
            until changes to that set have been persisted in some manner.
            
            The new object to add to the set.
        
        
            Notifies the set that an object that represents an existing entity must be added to the set.
            
            Depending on the implementation, the change to the set may not be visible in an enumeration of the set
            until changes to that set have been persisted in some manner.
            
            The existing object to add to the set.
        
        
            Notifies the set that an object that represents an existing entity must be deleted from the set. 
            
            Depending on the implementation, the change to the set may not be visible in an enumeration of the set
            until changes to that set have been persisted in some manner.
            
            The existing object to delete from the set.
        
        
            Notifies the set that an object that represents an existing entity must be detached from the set.
            
            Depending on the implementation, the change to the set may not be visible in an enumeration of the set
            until changes to that set have been persisted in some manner.
            
            The object to detach from the set.
        
        
            
            Defines the behavior required for objects that maintain a binding list exposed by ObjectView.
            
             The type of elements in the binding list. 
        
        
            
            Throw an exception if the IObjectViewData instance does not allow newly-created items to be added to this list.
            
        
        
            
            Add an item to the binding list.
            
             Item to be added. The value of this parameter will never be null, and the item is guaranteed to not already exist in the binding list. 
            
            True if this method is being called as part of a IBindingList.AddNew operation; otherwise false .
            
             Index of added item in the binding list. 
            
            If  is true,
            the item should only be added to the list returned by the List property, and not any underlying collection.
            Otherwise, the item should be added to the binding list as well as any underlying collection.
            
        
        
            
            Add the item in the binding list at the specified index to any underlying collection.
            
             Index of the item in the binding list. The index is guaranteed to be valid for the binding list. 
        
        
            
            Clear all of the items in the binding list, as well as in the underlying collection.
            
        
        
            
            Remove an item from the binding list.
            
             Item to be removed. The value of this parameter will never be null. The item does not have to exist in the binding list. 
            
            True if this method is being called as part of a ICancelAddNew.CancelNew operation; otherwise false .
            
            
            True if item was removed from list; otherwise false if item was not present in the binding list.
            
            
            If  is true,
            the item should only be removed from the binding list, and not any underlying collection.
            Otherwise, the item should be removed from the binding list as well as any underlying collection.
            
        
        
            
            Handle change to underlying collection.
            
             The source of the event. 
             Event arguments that specify the type of modification and the associated item. 
             Object used to register or unregister individual item notifications. 
             ListChangedEventArgs that provides details of how the binding list was changed, or null if no change to binding list occurred. The ObjectView will fire a list changed event if this method returns a non-null value. 
            
            The listener.RegisterEntityEvent method should be called for items added to the binding list,
            and the listener.UnregisterEntityEvents method should be called for items removed from the binding list.
            Other methods of the ObjectViewListener should not be used.
            
        
        
            
            Get the binding list maintained by an instance of IObjectViewData.
            
        
        
            
            Get boolean that specifies whether newly-created items can be added to the binding list.
            
            
            True if newly-created items can be added to the binding list; otherwise false .
            
        
        
            
            Get boolean that specifies whether properties of elements in the binding list can be modified.
            
            
            True if elements can be edited; otherwise false .
            
        
        
            
            Get boolean that specifies whether elements can be removed from the binding list.
            
            
            True if elements can be removed from the binding list; otherwise false .
            
        
        
            
            Get boolean that specifies whether the IObjectViewData instance implicitly fires list changed events
            when items are added to the binding list.
            
            
            True if the IObjectViewData instance fires list changed events on add; otherwise false .
            
            
            List changed events are fired by the ObjectContext if the IObjectViewData.OnCollectionChanged
            method returns a non-null ListChangedEventArgs object.
            
        
        
            
            Get boolean that specifies whether the IObjectViewData instance implicitly fires list changed events
            when items are removed from the binding list.
            
            
            True if the IObjectViewData instance fires list changed events on remove; otherwise false .
            
            
            List changed events are fired by the ObjectContext if the IObjectViewData.OnCollectionChanged
            method returns a non-null ListChangedEventArgs object.
            
        
        
            
            Get boolean that specifies whether the IObjectViewData instance implicitly fires list changed events
            when all items are cleared from the binding list.
            
            
            True if the IObjectViewData instance fires list changed events on clear; otherwise false .
            
            
            List changed events are fired by the ObjectContext if the IObjectViewData.OnCollectionChanged
            method returns a non-null ListChangedEventArgs object.
            
        
        
            
            The different ways that new objects loaded from the database can be merged with existing objects already in memory.
            
        
        
            
            Will only append new (top level-unique) rows.  This is the default behavior.
            
        
        
            
            Same behavior as LoadOption.OverwriteChanges.
            
        
        
            
            Same behavior as LoadOption.PreserveChanges.
            
        
        
            
            Will not modify cache.
            
        
        
            
            ObjectContext is the top-level object that encapsulates a connection between the CLR and the database,
            serving as a gateway for Create, Read, Update, and Delete operations.
            
        
        
            
            Initializes a new instance of the  class with the given connection. During construction, the metadata workspace is extracted from the
            
            object.
            
            
            An  that contains references to the model and to the data source connection.
            
            The  connection  is null.
            The  connection  is invalid or the metadata workspace is invalid. 
        
        
            
            Creates an ObjectContext with the given connection and metadata workspace.
            
             connection to the store 
             If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection. 
        
        
            
            Initializes a new instance of the  class with the given connection string and default entity container name.
            
            The connection string, which also provides access to the metadata information.
            The  connectionString  is null.
            The  connectionString  is invalid or the metadata workspace is not valid. 
        
        
            
            Initializes a new instance of the  class with a given connection string and entity container name.
            
            The connection string, which also provides access to the metadata information.
            The name of the default entity container. When the  defaultContainerName  is set through this method, the property becomes read-only.
            The  connectionString  is null.
            The  connectionString ,  defaultContainerName , or metadata workspace is not valid.
        
        
            
            Initializes a new instance of the  class with a given connection and entity container name.
            
            
            An  that contains references to the model and to the data source connection.
            
            The name of the default entity container. When the  defaultContainerName  is set through this method, the property becomes read-only.
            The  connection  is null.
            The  connection ,  defaultContainerName , or metadata workspace is not valid.
        
        
            
            For testing porpoises only.
            
        
        
            
            A private helper function for the _savingChanges/SavingChanges event.
            
        
        
            Accepts all changes made to objects in the object context.
        
        
            Adds an object to the object context. 
            Represents the entity set name, which may optionally be qualified by the entity container name. 
            
            The  to add.
            
            The  entity  parameter is null or the  entitySetName  does not qualify.
        
        
            
            Adds an object to the cache without adding its related
            entities.
            
             EntitySet for the Object to be added. 
             Object to be added. 
             Name of the argument passed to a public method, for use in exceptions. 
        
        
            Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option. 
            The entity for which related objects are to be loaded.
            The name of the navigation property that returns the related objects to be loaded.
            
            The  entity  is in a ,
            
            or  state or the  entity  is attached to another instance of
            
            .
            
        
        
            Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option. 
            The entity for which related objects are to be loaded.
            The name of the navigation property that returns the related objects to be loaded.
            
            The  value to use when you load the related objects.
            
            
            The  entity  is in a ,
            
            or  state or the  entity  is attached to another instance of
            
            .
            
        
        
            Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option. 
            The source object for which related objects are to be loaded.
            A LINQ expression that defines the related objects to be loaded.
             selector  does not supply a valid input parameter.
             selector  is null.
            
            The  entity  is in a ,
            
            or  state or the  entity  is attached to another instance of
            
            .
            
        
        
            Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option. 
            The source object for which related objects are to be loaded.
            A LINQ expression that defines the related objects to be loaded.
            
            The  value to use when you load the related objects.
            
             selector  does not supply a valid input parameter.
             selector  is null.
            
            The  entity  is in a ,
            
            or  state or the  entity  is attached to another instance of
            
            .
            
        
        
            Applies property changes from a detached object to an object already attached to the object context.
            The name of the entity set to which the object belongs.
            The detached object that has property updates to apply to the original object.
            When  entitySetName  is null or an empty string or when  changed  is null.
            
            When the  from  entitySetName  does not match the
            
            of the object’s
            
            or Wwen the entity is in a state other than
            
            or
            
            or the original object is not attached to the context.
            
            When the type of the  changed  object is not the same type as the original object.
        
        
            
            Copies the scalar values from the supplied object into the object in the
            
            that has the same key.
            
            The updated object.
            The name of the entity set to which the object belongs.
            
            The detached object that has property updates to apply to the original object. The entity key of  currentEntity  must match the
            
            property of an entry in the
            
            .
            
            The entity type of the object.
             entitySetName  or  current  is null.
            
            The  from  entitySetName  does not match the
            
            of the object’s
            
             or the object is not in the
            
            or it is in a
            
            state or the entity key of the supplied object is invalid.
            
             entitySetName  is an empty string.
        
        
            
            Copies the scalar values from the supplied object into set of original values for the object in the
            
            that has the same key.
            
            The updated object.
            The name of the entity set to which the object belongs.
            
            The detached object that has original values to apply to the object. The entity key of  originalEntity  must match the
            
            property of an entry in the
            
            .
            
            The type of the entity object.
             entitySetName  or  original  is null.
            
            The  from  entitySetName  does not match the
            
            of the object’s
            
             or an
            
            for the object cannot be found in the
            
             or the object is in an
            
            or a
            
            state  or the entity key of the supplied object is invalid or has property changes.
            
             entitySetName  is an empty string.
        
        
            Attaches an object or object graph to the object context in a specific entity set. 
            Represents the entity set name, which may optionally be qualified by the entity container name. 
            
            The  to attach.
            
            The  entity  is null. 
            
            Invalid entity set  or the object has a temporary key or the object has an
            
            and the
            
            does not match with the entity set passed in as an argument of the method or the object does not have an
            
            and no entity set is provided or any object from the object graph has a temporary
            
             or any object from the object graph has an invalid
            
            (for example, values in the key do not match values in the object) or the entity set could not be found from a given  entitySetName  name and entity container name or any object from the object graph already exists in another state manager.
            
        
        
            Attaches an object or object graph to the object context when the object has an entity key. 
            The object to attach.
            The  entity  is null. 
            Invalid entity key. 
        
        
            
            Attaches single object to the cache without adding its related entities.
            
             Entity to be attached. 
             "Computed" entity set. 
        
        
            
            When attaching we need to check that the entity is not already attached to a different context
            before we wipe away that context.
            
        
        
            Creates the entity key for a specific object, or returns the entity key if it already exists. 
            
            The  of the object.
            
            The fully qualified name of the entity set to which the entity object belongs.
            The object for which the entity key is being retrieved. 
            When either parameter is null. 
            When  entitySetName  is empty or when the type of the  entity  object does not exist in the entity set or when the  entitySetName  is not fully qualified.
            When the entity key cannot be constructed successfully based on the supplied parameters.
        
        
            
            Creates a new  instance that is used to query, add, modify, and delete objects of the specified entity type.
            
            
            The new  instance.
            
            
            Entity type of the requested .
            
            
            The  property is not set on the
            
             or the specified type belongs to more than one entity set.
            
        
        
            
            Creates a new  instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name.
            
            
            The new  instance.
            
            
            Name of the entity set for the returned . The string must be qualified by the default container name if the
            
            property is not set on the
            
            .
            
            
            Entity type of the requested .
            
            
            The  from  entitySetName  does not match the
            
            of the object’s
            
             or the
            
            property is not set on the
            
            and the name is not qualified as part of the  entitySetName  parameter or the specified type belongs to more than one entity set.
            
        
        
            
            Find the EntitySet in the default EntityContainer for the specified CLR type.
            Must be a valid mapped entity type and must be mapped to exactly one EntitySet across all of the EntityContainers in the metadata for this context.
            
             CLR type to use for EntitySet lookup. 
        
        
            
            Finds an EntitySet with the specified name and verifies that its type matches the specified type.
            
             Name of the EntitySet to find. Can be fully-qualified or unqualified if the DefaultContainerName is set 
             Expected CLR type of the EntitySet. Must exactly match the type for the EntitySet, base types are not valid. 
             Argument name to use if an exception occurs. 
             EntitySet that was found in metadata with the specified parameters 
        
        
            
            Ensures that the connection is opened for an operation that requires an open connection to the store.
            Calls to EnsureConnection MUST be matched with a single call to ReleaseConnection.
            
            
            If the  instance has been disposed.
            
        
        
            
            Resets the state of connection management when the connection becomes closed.
            
        
        
            
            Releases the connection, potentially closing the connection if no active operations
            require the connection to be open. There should be a single ReleaseConnection call
            for each EnsureConnection call.
            
            
            If the
            
            instance has been disposed.
            
        
        
            
            Creates an  in the current object context by using the specified query string.
            
            
            An  of the specified type.
            
            The query string to be executed.
            Parameters to pass to the query.
            
            The entity type of the returned .
            
            The  queryString  or  parameters  parameter is null.
        
        
            
            Creates an EntityConnection from the given connection string.
            
             the connection string 
             the newly created connection 
        
        
            
            Given an entity connection, returns a copy of its MetadataWorkspace. Ensure we get
            all of the metadata item collections by priming the entity connection.
            
            
            If the
            
            instance has been disposed.
            
        
        
            Marks an object for deletion. 
            
            An object that specifies the entity to delete. The object can be in any state except
            
            .
            
        
        
            
            Common DeleteObject method that is used by both ObjectContext.DeleteObject and ObjectSet.DeleteObject.
            
             Object to be deleted. 
             EntitySet that the specified object is expected to be in. Null if the caller doesn't want to validate against a particular EntitySet. 
        
        
            Removes the object from the object context.
            
            Object to be detached. Only the  entity  is removed; if there are any related objects that are being tracked by the same
            
            , those will not be detached automatically.
            
            The  entity  is null. 
            
            The  entity  is not associated with this  (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached).
            
        
        
            
            Common Detach method that is used by both ObjectContext.Detach and ObjectSet.Detach.
            
             Object to be detached. 
             EntitySet that the specified object is expected to be in. Null if the caller doesn't want to validate against a particular EntitySet. 
        
        
            Releases the resources used by the object context.
        
        
            Releases the resources used by the object context.
            true to release both managed and unmanaged resources; false to release only unmanaged resources.
        
        
            
            Returns the EntitySet with the given name from given container.
            
             Name of entity set. 
             Name of container. 
             The appropriate EntitySet. 
            The entity set could not be found for the given name.
            The entity container could not be found for the given name.
        
        
            
            Validate that an EntitySet is compatible with a given entity instance's CLR type.
            
             an EntitySet 
             The CLR type of an entity instance 
        
        
            Returns an object that has the specified entity key.
            
            An  that is an instance of an entity type.
            
            The key of the object to be found.
            The  key  parameter is null.
            
            The object is not found in either the  or the data source.
            
        
        
            Updates a collection of objects in the object context with data from the database. 
            
            A  value that indicates whether 
            property changes in the object context are overwritten with property values from the database.
            
            
            An  collection of objects to refresh.
            
             collection  is null.
             refreshMode  is not valid.
             collection is empty or an object is not attached to the context. 
        
        
            Updates an object in the object context with data from the database. 
            
            A  value that indicates whether 
            property changes in the object context are overwritten with property values from the database.
            
            The object to be refreshed. 
             entity  is null.
             refreshMode  is not valid.
             entity is not attached to the context. 
        
        
            
            Validates that the given entity/key pair has an ObjectStateEntry
            and that entry is not in the added state.
            The entity is added to the entities dictionary, and checked for duplicates.
            
             on exit, entity is added to this dictionary. 
             
        
        
            Persists all updates to the database and resets change tracking in the object context.
            
            The number of objects in an ,
            , 
            or  state when
             was called.
            
            An optimistic concurrency violation has occurred while saving changes.
        
        
            Persists all updates to the database and optionally resets change tracking in the object context.
            
            This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after
            
            finishes. If false, you must call the 
            method after .
            
            
            The number of objects in an ,
            , 
            or  state when
             was called.
            
            An optimistic concurrency violation has occurred while saving changes.
        
        
            Persists all updates to the database and optionally resets change tracking in the object context.
            
            A  value that determines the behavior of the operation.
            
            
            The number of objects in an ,
            , 
            or  state when
             was called.
            
            An optimistic concurrency violation has occurred while saving changes.
        
        
            
            Executes a function in a local transaction and returns the result.
            
            
            A local transaction is created only if there are no existing local nor ambient transactions.
            This method will ensure that the connection is opened and release it if an exception is thrown.
            The caller is responsible of releasing the connection if no exception is thrown, unless
             is set to true.
            
             Type of the result. 
             The function to invoke. 
             The execution strategy used for this operation. 
             Whether should start a new local transaction when there's no existing one. 
             Whether the connection will also be released when no exceptions are thrown. 
            
            The result from invoking .
            
        
        
            
            Ensures that  changes are synchronized with changes in all objects that are tracked by the
            
            .
            
        
        
            Returns an object that has the specified entity key.
            true if the object was retrieved successfully. false if the  key  is temporary, the connection is null, or the  value  is null.
            The key of the object to be found.
            When this method returns, contains the object.
            Incompatible metadata for  key .
             key  is null.
        
        
            
            Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed
            
            .
            
            
            An  for the data that is returned by the stored procedure.
            
            The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
            
            An array of  objects.
            
            
            The entity type of the  returned when the function is executed against the data source. This type must implement
            
            .
            
             function  is null or empty or function  is not found.
            The entity reader does not support this  function or there is a type mismatch on the reader and the  function .
        
        
            
            Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed
            
            .
            
            
            An  for the data that is returned by the stored procedure.
            
            The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
            
            The  to use when executing the query.
            
            
            An array of  objects.
            
            
            The entity type of the  returned when the function is executed against the data source. This type must implement
            
            .
            
             function  is null or empty or function  is not found.
            The entity reader does not support this  function or there is a type mismatch on the reader and the  function .
        
        
            
            Executes the given function on the default container.
            
             Element type for function results. 
            
            Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known.
            
             The options for executing this function. 
             The parameter values to use for the function. 
             If function is null or empty 
            
            If function is invalid (syntax,
            does not exist, refers to a function with return type incompatible with T)
            
        
        
            Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution.
            The number of rows affected.
            The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
            
            An array of  objects.
            
             function  is null or empty or function  is not found.
            The entity reader does not support this  function or there is a type mismatch on the reader and the  function .
        
        
            
            Get the materializer for the resultSetIndexth result set of storeReader.
            
        
        
            Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration.
            
            An enumeration of  objects that represent custom data classes that map to the conceptual model.
            
        
        
            Returns all the existing proxy types.
            
            An  of all the existing proxy types.
            
        
        
            Returns the entity type of the POCO entity associated with a proxy object of a specified type.
            
            The  of the associated POCO entity.
            
            
            The  of the proxy object.
            
        
        
            Creates and returns an instance of the requested type .
            An instance of the requested type  T , or an instance of a derived type that enables  T  to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework.
            Type of object to be returned.
        
        
             
             Executes an arbitrary command directly against the data source using the existing connection.
             The command is specified using the server's native query language, such as SQL.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
             
             If there isn't an existing local transaction a new transaction will be used
             to execute the command.
             
             The command specified in the server's native query language.
              The parameter values to use for the query. 
             The number of rows affected.
        
        
             
             Executes an arbitrary command directly against the data source using the existing connection.
             The command is specified using the server's native query language, such as SQL.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              Controls the creation of a transaction for this command. 
             The command specified in the server's native query language.
              The parameter values to use for the query. 
             The number of rows affected.
        
        
             
             Executes a query directly against the data source and returns a sequence of typed results. 
             The query is specified using the server's native query language, such as SQL.
             Results are not tracked by the context, use the overload that specifies an entity set name to track results.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The element type of the result sequence. 
              The query specified in the server's native query language. 
              The parameter values to use for the query. 
             
             An enumeration of objects of type  .
             
        
        
             
             Executes a query directly against the data source and returns a sequence of typed results. 
             The query is specified using the server's native query language, such as SQL.
             Results are not tracked by the context, use the overload that specifies an entity set name to track results.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The element type of the result sequence. 
              The query specified in the server's native query language. 
              The options for executing this query. 
              The parameter values to use for the query. 
             
             An enumeration of objects of type  .
             
        
        
             
             Executes a query directly against the data source and returns a sequence of typed results. 
             The query is specified using the server's native query language, such as SQL.
             If an entity set name is specified, results are tracked by the context.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The element type of the result sequence. 
              The query specified in the server's native query language. 
             The entity set of the  TResult  type. If an entity set name is not provided, the results are not going to be tracked.
             
             The  to use when executing the query. The default is
             .
             
              The parameter values to use for the query. 
             
             An enumeration of objects of type  .
             
        
        
             
             Executes a query directly against the data source and returns a sequence of typed results. 
             The query is specified using the server's native query language, such as SQL.
             If an entity set name is specified, results are tracked by the context.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The element type of the result sequence. 
              The query specified in the server's native query language. 
             The entity set of the  TResult  type. If an entity set name is not provided, the results are not going to be tracked.
              The options for executing this query. 
              The parameter values to use for the query. 
             
             An enumeration of objects of type  .
             
        
        
            
            Translates a  that contains rows of entity data to objects of the requested entity type.
            
            An enumeration of objects of type  TResult .
            
            The  that contains entity data to translate into entity objects.
            
            When  reader  is null.
        
        
            
            Translates a  that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option.
            
            An enumeration of objects of type  TResult .
            
            The  that contains entity data to translate into entity objects.
            
            The entity set of the  TResult  type.
            
            The  to use when translated objects are added to the object context. The default is
            
            .
            
            When  reader  is null.
            
            When the supplied  mergeOption  is not a valid  value.
            
            When the supplied  entitySetName  is not a valid entity set for the  TResult  type. 
        
        
            
            Creates the database by using the current data source connection and the metadata in the
            
            .
            
        
        
            Deletes the database that is specified as the database in the current data source connection.
        
        
            
            Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work
            is done by the DbProviderServices implementation for the current store connection.
            
        
        
            
            Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the
            
            . The
            
            loads metadata from store schema definition language (SSDL) files.
            
            
            A DDL script that creates schema objects for the metadata in the
            
            .
            
        
        
            
            Attempts to retrieve an DbGeneratedViewCacheTypeAttribute specified at assembly level,
            that associates the type of the context with an mapping view cache type. If one is found
            this method initializes the mapping view cache factory for this context with a new 
            instance of DefaultDbMappingViewCacheFactory.
            
            A DbContext that owns this ObjectContext.
        
        
            Gets the connection used by the object context.
            
            A  object that is the connection.
            
            
            When the  instance has been disposed.
            
        
        
            Gets or sets the default container name.
            
            A  that is the default container name.
            
        
        
            Gets the metadata workspace used by the object context. 
            
            The  object associated with this
            
            .
            
        
        
            Gets the object state manager used by the object context to track object changes.
            
            The  used by this
            
            .
            
        
        
            
            ClrPerspective based on the MetadataWorkspace.
            
        
        
            Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used.
            
            An  value that is the timeout value, in seconds.
            
            The timeout value is less than 0. 
        
        
            Gets the LINQ query provider associated with this object context.
            
            The  instance used by this object context.
            
        
        
            
            Whether or not we are in the middle of materialization
            Used to suppress operations such as lazy loading that are not allowed during materialization
            
        
        
            
            Indicates whether there is an asynchronous method currently running that uses this instance
            
        
        
            
            Gets the  instance that contains options that affect the behavior of the
            
            .
            
            
            The  instance that contains options that affect the behavior of the
            
            .
            
        
        
            
            Returns itself. ObjectContext implements  to provide a common
            interface for  and ObjectContext both of which will return the underlying
            ObjectContext.
            
        
        
            Occurs when changes are saved to the data source. 
        
        
            Occurs when a new entity object is created from data in the data source as part of a query or load operation. 
        
        
            
            Returns true if any handlers for the ObjectMaterialized event exist.  This is
            used for perf reasons to avoid collecting the information needed for the event
            if there is no point in firing it.
            
        
        
            
            Supports binding EntityClient parameters to Object Services parameters.
            
        
        
            
            Defines options that affect the behavior of the ObjectContext.
            
        
        
            Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed.
            true if lazy loading is enabled; otherwise, false.
        
        
            Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant.
            true if proxies are created; otherwise, false. The default value is true.
        
        
            Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior.
            true if the legacy PreserveChanges behavior should be used; otherwise, false.
        
        
            Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior.
            
            If this flag is set to false then setting the Value property of the  for an
            FK relationship to null when it is already null will have no effect. When this flag is set to true, then
            setting the value to null will always cause the FK to be nulled and the relationship to be deleted
            even if the value is currently null. The default value is false when using ObjectContext and true
            when using DbContext.
            
            true if the consistent NullReference behavior should be used; otherwise, false.
        
        
            Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior.
            
            This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities.
            If this flag is set, then any equality comparison between two operands, both of which are potentially
            nullable, will be rewritten to show C# null comparison semantics. As an example:
            (operand1 = operand2) will be rewritten as
            (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL))
            The default value is false when using .
            
            true if the C# NullComparison behavior should be used; otherwise, false.
        
        
            
            EventArgs for the ObjectMaterialized event.
            
        
        
            
            The object that was materialized.
            
        
        
            
            Constructs new arguments for the ObjectMaterialized event.
            
             The object that has been materialized. 
        
        
            Gets the entity object that was created.
            The entity object that was created.
        
        
            
            Delegate for the ObjectMaterialized event.
            
             The ObjectContext responsable for materializing the object. 
             EventArgs containing a reference to the materialized object. 
        
        
            
            This class represents a query parameter at the object layer, which consists
            of a Name, a Type and a Value.
            
        
        
            
            This internal method uses regular expression matching to ensure that the
            specified parameter name is valid. Parameter names must start with a letter,
            and may only contain letters (A-Z, a-z), numbers (0-9) and underscores (_).
            
        
        
            
            Initializes a new instance of the  class with the specified name and type.
            
            The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character.
            The common language runtime (CLR) type of the parameter.
            If the value of either argument is null.
            If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores.
        
        
            
            Initializes a new instance of the  class with the specified name and value.
            
            The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character.
            The initial value (and inherently, the type) of the parameter.
            If the value of either argument is null.
            If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores.
        
        
            
            This constructor is used by  to create a new ObjectParameter
            with field values taken from the field values of an existing ObjectParameter.
            
             The existing ObjectParameter instance from which field values should be taken. 
             A new ObjectParameter instance with the same field values as the specified ObjectParameter 
        
        
            
            The name of the parameter. Cannot be null and is immutable.
            
        
        
            
            The CLR type of the parameter. Cannot be null and is immutable.
            
        
        
            
            The mappable CLR type of the parameter. Unless the parameter type is
            Nullable, this type is equal to the parameter type. In the case of
            Nullable parameters, this type is the underlying Nullable argument
            type. Cannot be null and is immutable.
            
        
        
            
            Used to specify the exact metadata type of this parameter.
            Typically null, can only be set using the internal  property.
            
        
        
            
            The value of the parameter. Does not need to be bound until execution
            time and can be modified at any time.
            
        
        
            
            Creates a new ObjectParameter instance with identical field values to this instance.
            
             The new ObjectParameter instance 
        
        
            
            This internal method ensures that the specified type is a scalar
            type supported by the underlying provider by ensuring that scalar
            metadata for this type is retrievable.
            
        
        
            Gets the parameter name, which can only be set through a constructor.
            The parameter name, which can only be set through a constructor.
        
        
            Gets the parameter type.
            
            The  of the parameter.
            
        
        
            Gets or sets the parameter value.
            The parameter value.
        
        
            
            Gets or sets a  that specifies the exact
            type of which the parameter value is considered an instance.
            
        
        
            
            The mappable parameter type; this is primarily used to handle the case of
            Nullable parameter types. For example, metadata knows nothing about 'int?',
            only 'Int32'. For internal use only.
            
        
        
            
            This class represents a collection of query parameters at the object layer.
            
        
        
            
            This internal constructor creates a new query parameter collection and
            initializes the internal parameter storage.
            
        
        
            
            Can parameters be added or removed from this collection?
            
        
        
            
            The internal storage for the query parameters in the collection.
            
        
        
            
            A CLR perspective necessary to do type-checking on parameters as they
            are added to the collection.
            
        
        
            
            A string that can be used to represent the current state of this parameter collection in an ObjectQuery cache key.
            
        
        
            
            Adds the specified  to the collection.
            
            The parameter to add to the collection.
            The  parameter  argument is null.
            
            The  parameter  argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the  parameter  argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a
            
            .
            
            The type of the  parameter  is not valid.
        
        
            
            Deletes all  instances from the collection.
            
        
        
            
            Checks for the existence of a specified  in the collection by reference.
            
            Returns true if the parameter object was found in the collection; otherwise, false.  
            
            The  to find in the collection.
            
            The  parameter  argument is null.
        
        
            
            Determines whether an  with the specified name is in the collection.
            
            Returns true if a parameter with the specified name was found in the collection; otherwise, false.
            The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name.
            The  name  parameter is null.
        
        
            Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index.
            The array into which to copy the parameters.
            The index in the array at which to start copying the parameters.
        
        
            
            Removes an instance of an  from the collection by reference if it exists in the collection.
            
            Returns true if the parameter object was found and removed from the collection; otherwise, false. 
            An object to remove from the collection.
            The  parameter  argument is null.
        
        
            
            These methods return enumerator instances, which allow the collection to
            be iterated through and traversed.
            
        
        
            Returns an untyped enumerator over the collection. 
            
            An  instance.
            
        
        
            
            Retrieves a string that may be used to represent this parameter collection in an ObjectQuery cache key.
            If this collection has not changed since the last call to this method, the same string instance is returned.
            Note that this string is used by various ObjectQueryImplementations to version the parameter collection.
            
             A string that may be used to represent this parameter collection in an ObjectQuery cache key. 
        
        
            
            Locks or unlocks this parameter collection, allowing its contents to be added to, removed from, or cleared.
            Calling this method consecutively with the same value has no effect but does not throw an exception.
            
            
            If true , this parameter collection is now locked; otherwise it is unlocked
            
        
        
            
            Creates a new copy of the specified parameter collection containing copies of its element
            
            s.
            If the specified argument is null, then null is returned.
            
             The parameter collection to copy 
            
            The new collection containing copies of  parameters, if
            
            is non-null; otherwise null .
            
        
        
            
            This private method checks for the existence of a given parameter object
            by name by iterating through the list and comparing each parameter name
            to the specified name. This is a case-insensitive lookup.
            
        
        
            
            This method successfully returns only if the parameter collection is not considered 'locked';
            otherwise an  is thrown.
            
        
        
            Gets the number of parameters currently in the collection.
            
            The number of  objects that are currently in the collection.
            
        
        
            
            This collection is read-write - parameters may be added, removed
            and [somewhat] modified at will (value only) - provided that the
            implementation the collection belongs to has not locked its parameters
            because it's command definition has been prepared.
            
        
        
            Provides an indexer that allows callers to retrieve parameters by name.
            
            The  instance.
            
            The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name.
            No parameter with the specified name is found in the collection.
        
        
            
            This class implements untyped queries at the object-layer.
            
        
        
            
            The underlying implementation of this ObjectQuery as provided by a concrete subclass
            of ObjectQueryImplementation. Implementations currently exist for Entity-SQL- and Linq-to-Entities-based ObjectQueries.
            
        
        
            
            The result type of the query - 'TResultType' expressed as an O-Space type usage. Cached here and
            only instantiated if the  method is called.
            
        
        
            
            Every instance of ObjectQuery get a unique instance of the provider. This helps propagate state information
            using the provider through LINQ operators.
            
        
        
            
            The common constructor.
            
             The underlying implementation of this ObjectQuery 
             A new ObjectQuery instance. 
        
        
            
            For testing.
            
        
        
            Returns the commands to execute against the data source.
            A string that represents the commands that the query executes against the data source.
        
        
            Returns information about the result type of the query.
            
            A  value that contains information about the result type of the query.
            
        
        
            Executes the untyped object query with the specified merge option.
            
            The  to use when executing the query. 
            The default is .
            
            
            An  that contains a collection of entity objects returned by the query.
            
        
        
            
            Returns the collection as an  used for data binding.
            
            
            An  of entity objects.
            
        
        
            Returns an enumerator that iterates through a collection.
            
            An  that can be used to iterate through the collection.
            
        
        
            
            Gets an untyped instantiation of the underlying ObjectQueryState that implements this ObjectQuery.
            
        
        
            
            Gets the  associated with this query instance.
            
        
        
            Returns the command text for the query.
            A string value.
        
        
            Gets the object context associated with this object query.
            
            The  associated with this
            
            instance.
            
        
        
            Gets or sets how objects returned from a query are added to the object context. 
            
            The query .
            
        
        
            
            Whether the query is streaming or buffering
            
        
        
            Gets the parameter collection for this object query.
            
            The parameter collection for this .
            
        
        
            Gets or sets a value that indicates whether the query plan should be cached.
            A value that indicates whether the query plan should be cached.
        
        
            
            Gets the result element type for this query instance.
            
        
        
            
            Gets the expression describing this query. For queries built using
            LINQ builder patterns, returns a full LINQ expression tree; otherwise,
            returns a constant expression wrapping this query. Note that the
            default expression is not cached. This allows us to differentiate
            between LINQ and Entity-SQL queries.
            
        
        
            
            Gets the  associated with this query instance.
            
        
        
            
            ObjectQuery implements strongly-typed queries at the object-layer.
            Queries are specified using Entity-SQL strings and may be created by calling
            the Entity-SQL-based query builder methods declared by ObjectQuery.
            
             The result type of this ObjectQuery 
        
        
            
            The default query name, which is used in query-building to refer to an
            element of the ObjectQuery; e.g., in a call to ObjectQuery.Where(), a predicate of
            the form "it.Name = 'Foo'" can be specified, where "it" refers to a T.
            Note that the query name may eventually become a parameter in the command
            tree, so it must conform to the parameter name restrictions enforced by
            ObjectParameter.ValidateParameterName(string).
            
        
        
            
            The name of the current sequence, which defaults to "it". Used in query-
            builder methods that process an Entity-SQL command text fragment to refer to an
            instance of the return type of this query.
            
        
        
            
            Creates a new  instance using the specified Entity SQL command as the initial query.
            
            The Entity SQL query.
            
            The  on which to execute the query.
            
        
        
            
            Creates a new  instance using the specified Entity SQL command as the initial query and the specified merge option.
            
            The Entity SQL query.
            
            The  on which to execute the query.
            
            
            Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same
            
            .
            
        
        
            
            This method creates a new ObjectQuery instance that represents a scan over
            the specified . This ObjectQuery carries the scan as 
            and as Entity SQL. This is needed to allow case-sensitive metadata access (provided by the  by default).
            The context specifies the connection on which to execute the query as well as the metadata and result cache.
            The merge option specifies how the cache should be populated/updated.
            
             The entity set this query scans. 
            
            The ObjectContext containing the metadata workspace the query will be built against, the connection
            on which to execute the query, and the cache to store the results in.
            
             The MergeOption to use when executing the query. 
             A new ObjectQuery instance. 
        
        
            
            For testing.
            
        
        
            Executes the object query with the specified merge option.
            
            The  to use when executing the query. 
            The default is .
            
            
            An  that contains a collection of entity objects returned by the query.
            
        
        
            Specifies the related objects to include in the query results.
            
            A new  with the defined query path.
            
            Dot-separated list of related objects to return in the query results.
             path  is null.
             path  is empty.
        
        
            Limits the query to unique results.
            
            A new  instance that is equivalent to the original instance with SELECT DISTINCT applied.
            
        
        
            
            This query-builder method creates a new query whose results are all of
            the results of this query, except those that are also part of the other
            query specified.
            
             A query representing the results to exclude. 
             a new ObjectQuery instance. 
            If the query parameter is null.
        
        
            Groups the query results by the specified criteria.
            
            A new  instance of type
            
            that is equivalent to the original instance with GROUP BY applied.
            
            The key columns by which to group the results.
            The list of selected properties that defines the projection. 
            Zero or more parameters that are used in this method.
            The  query  parameter is null or an empty string 
            or the  projection  parameter is null or an empty string.
        
        
            
            This query-builder method creates a new query whose results are those that
            are both in this query and the other query specified.
            
             A query representing the results to intersect with. 
             a new ObjectQuery instance. 
            If the query parameter is null.
        
        
            Limits the query to only results of a specific type.
            
            A new  instance that is equivalent to the original instance with OFTYPE applied.
            
            
            The type of the  returned when the query is executed with the applied filter.
            
            The type specified is not valid.
        
        
            Orders the query results by the specified criteria.
            
            A new  instance that is equivalent to the original instance with ORDER BY applied.
            
            The key columns by which to order the results.
            Zero or more parameters that are used in this method.
            The  keys  or  parameters  parameter is null.
            The  key  is an empty string.
        
        
            Limits the query results to only the properties that are defined in the specified projection.
            
            A new  instance of type
            
            that is equivalent to the original instance with SELECT applied.
            
            The list of selected properties that defines the projection.
            Zero or more parameters that are used in this method.
             projection  is null or parameters is null.
            The  projection  is an empty string.
        
        
            Limits the query results to only the property specified in the projection.
            
            A new  instance of a type compatible with the specific projection. The returned
            
            is equivalent to the original instance with SELECT VALUE applied.
            
            The projection list.
            An optional set of query parameters that should be in scope when parsing.
            
            The type of the  returned by the
            
            method.
            
             projection  is null or parameters  is null.
            The  projection  is an empty string.
        
        
            Orders the query results by the specified criteria and skips a specified number of results.
            
            A new  instance that is equivalent to the original instance with both ORDER BY and SKIP applied.
            
            The key columns by which to order the results.
            The number of results to skip. This must be either a constant or a parameter reference.
            An optional set of query parameters that should be in scope when parsing.
            Any argument is null.
             keys  is an empty string or count  is an empty string.
        
        
            Limits the query results to a specified number of items.
            
            A new  instance that is equivalent to the original instance with TOP applied.
            
            The number of items in the results as a string. 
            An optional set of query parameters that should be in scope when parsing.
             count  is null.
             count  is an empty string.
        
        
            
            This query-builder method creates a new query whose results are all of
            the results of this query, plus all of the results of the other query,
            without duplicates (i.e., results are unique).
            
             A query representing the results to add. 
             a new ObjectQuery instance. 
            If the query parameter is null.
        
        
            
            This query-builder method creates a new query whose results are all of
            the results of this query, plus all of the results of the other query,
            including any duplicates (i.e., results are not necessarily unique).
            
             A query representing the results to add. 
             a new ObjectQuery instance. 
            If the query parameter is null.
        
        
            Limits the query to results that match specified filtering criteria.
            
            A new  instance that is equivalent to the original instance with WHERE applied.
            
            The filter predicate.
            Zero or more parameters that are used in this method.
             predicate  is null or parameters  is null.
            The  predicate  is an empty string.
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the database.
            
             The query results. 
        
        
            
        
        
            
        
        
            
        
        
            
            Retrieves the LINQ expression that backs this ObjectQuery for external consumption.
            It is important that the work to wrap the expression in an appropriate MergeAs call
            takes place in this method and NOT in ObjectQueryState.TryGetExpression which allows
            the unmodified expression (that does not include the MergeOption-preserving MergeAs call)
            to be retrieved and processed by the ELinq ExpressionConverter.
            
             The LINQ expression for this ObjectQuery, wrapped in a MergeOption-preserving call to the MergeAs method if the ObjectQuery.MergeOption property has been set. 
        
        
            Gets or sets the name of this object query.
            
            A string value that is the name of this .
            
            The value specified on set is not valid.
        
        
            
            This class implements IEnumerable and IDisposable. Instance of this class
            is returned from ObjectQuery.Execute method.
            
        
        
            Returns an enumerator that iterates through the query results.
            An enumerator that iterates through the query results.
        
        
            Returns the results in a format useful for data binding.
            
            An  of entity objects.
            
        
        
            Performs tasks associated with freeing, releasing, or resetting resources.
        
        
            Releases the resources used by the object result.
            true to release both managed and unmanaged resources; false to release only unmanaged resources.
        
        
            Gets the next result set of a stored procedure.
            An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call.
            The type of the element.
        
        
            
            IListSource.ContainsListCollection implementation. Always returns false.
            
        
        
            
            When overridden in a derived class, gets the type of the generic
            
            .
            
            
            The type of the generic .
            
        
        
            
            This class represents the result of the  method.
            
        
        
            Returns an enumerator that iterates through the query results.
            An enumerator that iterates through the query results.
        
        
            Releases the unmanaged resources used by the  and optionally releases the managed resources.
            true to release managed and unmanaged resources; false to release only unmanaged resources.
        
        
            
            Gets the type of the .
            
            
            A  that is the type of the .
            
        
        
            
            Represents a typed entity set that is used to perform create, read, update, and delete operations. 
            
            The type of the entity.
        
        
            
            Creates a new ObjectSet that has a base ObjectQuery with the CommandText that represents
            all of the entities in the specified EntitySet.
            Sets the query's command text to the fully-qualified, quoted, EntitySet name, i.e. [EntityContainerName].[EntitySetName]
            Explicitly set MergeOption to AppendOnly in order to mirror CreateQuery behavior
            
             Metadata EntitySet on which to base the ObjectSet. 
             ObjectContext to be used for the query and data modification operations. 
        
        
            Adds an object to the object context in the current entity set. 
            The object to add.
        
        
            Attaches an object or object graph to the object context in the current entity set. 
            The object to attach.
        
        
            Marks an object for deletion. 
            
            An object that represents the entity to delete. The object can be in any state except
            
            .
            
        
        
            Removes the object from the object context.
            
            Object to be detached. Only the  entity  is removed; if there are any related objects that are being tracked by the same
            
            , those will not be detached automatically.
            
        
        
            
            Copies the scalar values from the supplied object into the object in the
            
            that has the same key.
            
            The updated object.
            
            The detached object that has property updates to apply to the original object. The entity key of  currentEntity  must match the
            
            property of an entry in the
            
            .
            
        
        
            
            Sets the  property of an
            
            to match the property values of a supplied object.
            
            The updated object.
            
            The detached object that has property updates to apply to the original object. The entity key of  originalEntity  must match the
            
            property of an entry in the
            
            .
            
        
        
            Creates a new entity type object.
            The new entity type object, or an instance of a proxy type that corresponds to the entity type.
        
        
            Creates an instance of the specified type.
            An instance of the requested type  T , or an instance of a proxy type that corresponds to the type  T .
            Type of object to be returned.
        
        
            
            Gets the metadata of the entity set represented by this  instance.
            
            
            An  object.
            
        
        
            
            The original values of the properties of an entity when it was retrieved from the database.
            
        
        
            
            Maintains object state and identity management for entity type instances and relationship instances.
            
        
        
            
            Initializes a new instance of the  class.
            
            
            The , which supplies mapping and metadata information.
            
        
        
            
            Adds an object stub to the cache.
            
             the key of the object to add 
             the entity set of the given object 
        
        
            
            Validates that the proxy type being attached to the context matches the proxy type
            that would be generated for the given CLR type for the currently loaded metadata.
            This prevents a proxy for one set of metadata being incorrectly loaded into a context
            which has different metadata.
            
        
        
            
            Adds an object to the ObjectStateManager.
            
             the object to add 
             
             the entity set of the given object 
             Name of the argument passed to a public method, for use in exceptions. 
             Indicates whether the entity is added or unchanged. 
        
        
            
            Adds an entry to the index of foreign keys that reference entities that we don't yet know about.
            
             The foreign key found in the entry 
             The entry that contains the foreign key that was found 
        
        
            
            Removes an entry to the index of foreign keys that reference entities that we don't yet know about.
            This is typically done when the entity is detached from the context.
            
             The foreign key found in the entry 
             The entry that contains the foreign key that was found 
        
        
            
            Removes the foreign key from the index of those keys that have been found in entries
            but for which it was not possible to do fixup because the entity that the foreign key
            referenced was not in the state manager.
            
             The key to lookup and remove 
        
        
            
            Gets all state entries that contain the given foreign key for which we have not performed
            fixup because the state manager did not contain the entity to which the foreign key pointed.
            
             The key to lookup 
             The state entries that contain the key 
        
        
            
            Adds to index of currently tracked entities that have FK values that are conceptually
            null but not actually null because the FK properties are not nullable.
            If this index is non-empty in AcceptAllChanges or SaveChanges, then we throw.
            If AcceptChanges is called on an entity and that entity is in the index, then
            we will throw.
            Note that the index is keyed by EntityEntry reference because it's only ever used
            when we have the EntityEntry and this makes it slightly faster than using key lookup.
            
        
        
            
            Checks whether or not there is some entry in the context that has any conceptually but not
            actually null FK values.
            
        
        
            
            Checks whether the given entry has conceptually but not actually null FK values.
            
        
        
            
            Stops keeping track of an entity with conceptual nulls because the FK values have been
            really set or because the entity is leaving the context or becoming deleted.
            
        
        
            
            Upgrades an entity key entry in the cache to a a regular entity
            
             the key entry that exists in the state manager 
             the object to add 
             True if this promoted key entry is replacing an existing detached entry 
             Tells whether we should allow the IsLoaded flag to be set to true for RelatedEnds 
             
        
        
            
            Performs non-generic collection or reference fixup between two entities
            This method should only be used in scenarios where we are automatically hooking up relationships for
            the user, and not in cases where they are manually setting relationships.
            
             The MergeOption to use to decide how to resolve EntityReference conflicts 
             The entity instance on the source side of the relationship 
             The AssociationEndMember that contains the metadata for the source entity 
             The entity instance on the source side of the relationship 
             The AssociationEndMember that contains the metadata for the target entity 
             Tells whether we should allow the IsLoaded flag to be set to true for RelatedEnds 
             Whether or not the relationship entry already exists in the cache for these entities 
             Whether this method is used in key entry promotion 
        
        
            
            Updates the relationships between a given source entity and a collection of target entities.
            Used for full span and related end Load methods, where the following may be true:
            (a) both sides of each relationship are always full entities and not stubs
            (b) there could be multiple entities to process at once
            (c) NoTracking queries are possible.
            Not used for relationship span because although some of the logic is similar, the above are not true.
            
             ObjectContext to use to look up existing relationships. Using the context here instead of ObjectStateManager because for NoTracking queries we shouldn't even touch the state manager at all, so we don't want to access it until we know we are not using NoTracking. 
             MergeOption to use when updating existing relationships 
             AssociationSet for the relationships 
             Role of sourceEntity in associationSet 
             Source entity in the relationship 
             Role of each targetEntity in associationSet 
             List of target entities to use to create relationships with sourceEntity 
             Tells whether we should allow the IsLoaded flag to be set to true for RelatedEnds 
        
        
            
            Removes relationships if necessary when a query determines that the source entity has no relationships on the server
            
             MergeOption to use when updating existing relationships 
             AssociationSet for the incoming relationship 
             EntityKey of the source entity in the relationship 
             Role of the source entity in the relationship 
        
        
            
            Tries to updates one or more existing relationships for an entity, based on a given MergeOption and a target entity.
            
             ObjectContext to use to look up existing relationships for sourceEntity 
             MergeOption to use when updating existing relationships 
             AssociationSet for the relationship we are looking for 
             AssociationEndMember for the source role of the relationship 
             EntityKey for the source entity in the relationship (passed here so we don't have to look it up again) 
             Source entity in the relationship 
             AssociationEndMember for the target role of the relationship 
             EntityKey for the target entity in the relationship 
             Tells whether we should allow the IsLoaded flag to be set to true for RelatedEnds 
             [out] EntityState to be used for in scenarios where we need to add a new relationship after this method has returned 
             true if an existing relationship is found and updated, and no further action is needed false if either no relationship was found, or if one was found and updated, but a new one still needs to be added 
        
        
            
            Attach entity in unchanged state (skip Added state, don't create temp key)
            It is equal (but faster) to call AddEntry(); AcceptChanges().
            
        
        
            
            Checks that the EntityKey attached to the given entity
            appropriately matches the given entity.
            
             The entity whose key must be verified 
             
             The entity set corresponding to the type of the given entity. 
             If true, then the exception message will reflect a bad key to attach, otherwise it will reflect a general inconsistency 
        
        
            
            Adds the given relationship cache entry to the mapping from each of its endpoint keys.
            
        
        
            
            Adds the given relationship cache entry to the mapping from the given endpoint key.
            
        
        
            
            Deletes the given relationship cache entry from the mapping from each of its endpoint keys.
            
        
        
            
            Deletes the given relationship cache entry from the mapping from the given endpoint key.
            
        
        
            
            DeleteRelationship
            
             The deleted entry 
        
        
            
            DeleteKeyEntry
            
        
        
            
            Finds all relationships with the given key at one end.
            
        
        
            
            Finds all relationships with the given key at one end.
            Do not use the list to add elements
            
        
        
            
            Find the ObjectStateEntry from _keylessEntityStore for an entity that doesn't implement IEntityWithKey.
            
        
        
            
            Returns a collection of  objects for objects or relationships with the given state.
            
            
            A collection of  objects in the given
            
            .
            
            
            An  used to filter the returned
            
            objects.
            
            
            When  state  is .
            
        
        
            
            Returns all CacheEntries in the given state.
            
            if EntityState.Detached flag is set in state
        
        
            
            Performs key-fixup on the given entry, by creating a (permanent) EntityKey
            based on the current key values within the associated entity and fixing up
            all associated relationship entries.
            
            
            Will promote EntityEntry.IsKeyEntry and leave in _unchangedStore
            otherwise will move EntityEntry from _addedStore to _unchangedStore.
            
        
        
            
            Replaces permanent EntityKey with a temporary key.  Used in N-Tier API.
            
        
        
            
            Resets the EntityKey for this entry.  This method is called
            as part of temporary key fixup and permanent key un-fixup. This method is necessary because it is the only
            scenario where we allow a new value to be set on a non-null EntityKey. This
            is the only place where we should be setting and clearing _inRelationshipFixup.
            
        
        
            
            Changes state of the  for a specific object to the specified  entityState .
            
            
            The  for the supplied  entity .
            
            The object for which the state must be changed.
            The new state of the object.
            When  entity  is null.
            
            When the object is not detached and does not have an entry in the state manager
            or when you try to change the state to 
            from any other 
            or when  state  is not a valid  value.
            
        
        
            Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property.
            
            The  for the relationship that was changed.
            
            
            The object instance or  of the source entity at one end of the relationship.
            
            
            The object instance or  of the target entity at the other end of the relationship.
            
            The name of the navigation property on  source  that returns the specified  target .
            
            The requested  of the specified relationship.
            
            When  source  or  target  is null.
            
            When trying to change the state of the relationship to a state other than 
                 or  
            when either  source  or  target  is in a  state 
            or when you try to change the state of the relationship to a state other than
             or 
            when either  source  or  target  is in an  state 
            or when  state  is not a valid  value
            
        
        
            Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property.
            
            The  for the relationship that was changed.
            
            
            The object instance or  of the source entity at one end of the relationship.
            
            
            The object instance or  of the target entity at the other end of the relationship.
            
            A LINQ expression that selects the navigation property on  source  that returns the specified  target .
            
            The requested  of the specified relationship.
            
            The entity type of the  source  object.
            When  source ,  target , or  selector  is null.
             selector  is malformed or cannot return a navigation property.
            
            When you try to change the state of the relationship to a state other than
              or  
            when either  source  or  target  is in a
             state
            or when you try to change the state of the relationship to a state other than
              or 
            when either  source  or  target  is in an  state 
            or when  state  is not a valid  value.
            
        
        
            Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship.
            
            The  for the relationship that was changed.
            
            
            The object instance or  of the source entity at one end of the relationship.
            
            
            The object instance or  of the target entity at the other end of the relationship.
            
            The name of the relationship.
            The role name at the  target  end of the relationship.
            
            The requested  of the specified relationship.
            
            When  source  or  target  is null.
            
            When you try to change the state of the relationship to a state other than
             or  
            when either  source  or  target  is in a  state 
            or when you try to change the state of the relationship to a state other than
             or 
            when either  source  or  target  is in an
             state 
            or when  state  is not a valid   value.
            
        
        
            
            Retrieve the corresponding IEntityStateEntry for the given EntityKey.
            
            if key is null
            if key is not found
        
        
            
            Returns an  for the object or relationship entry with the specified key.
            
            
            The corresponding  for the given
            
            .
            
            
            The .
            
            When  key  is null.
            When the specified  key  cannot be found in the state manager.
            
            No entity with the specified  exists in the
            
            .
            
        
        
            
            Returns an  for the specified object.
            
            
            The corresponding  for the given
            
            .
            
            
            The  to which the retrieved
            
            belongs.
            
            
            No entity for the specified  exists in the
            
            .
            
        
        
            
            Tries to retrieve the corresponding  for the specified
            
            .
            
            
            A Boolean value that is true if there is a corresponding
            
            for the given object; otherwise, false.
            
            
            The  to which the retrieved
            
            belongs.
            
            
            When this method returns, contains the  for the given
            
            This parameter is passed uninitialized.
            
        
        
            
            Retrieve the corresponding IEntityStateEntry for the given EntityKey.
            
             true if the corresponding IEntityStateEntry was found 
            if key is null
        
        
            
            Given a key that represents an entity on the dependent side of a FK, this method attempts to return the key of the
            entity on the principal side of the FK.  If the two entities both exist in the context, then the primary key of
            the principal entity is found and returned.  If the principal entity does not exist in the context, then a key
            for it is built up from the foreign key values contained in the dependent entity.
            
             The key of the dependent entity 
             The role indicating the FK to navigate 
             Set to the principal key or null on return 
             True if the principal key was found or built; false if it could not be found or built 
        
        
            
            Tries to retrieve the corresponding  for the object or relationship with the specified
            
            .
            
            
            A Boolean value that is true if there is a corresponding
            
            for the given
            
            ; otherwise, false.
            
            
            The given .
            
            
            When this method returns, contains an  for the given
            
            This parameter is passed uninitialized.
            
            A null (Nothing in Visual Basic) value is provided for  key .
        
        
            
            Retrieve the corresponding EntityEntry for the given entity.
            Returns null if key is unavailable or passed entity is null.
            
        
        
            
            Returns the  that is used by the specified object.
            
            
            The  for the specified object.
            
            
            The object for which to return the .
            
            
            The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager
            
        
        
            
            Returns the  that is used by the specified object.
            
            
            true if a  instance was returned for the supplied  entity ; otherwise false.
            
            
            The object for which to return the .
            
            
            When this method returns, contains the
            
            for the  entity .
            
        
        
            
            Removes the given cache entry from the appropriate dictionary, based on
            the given state and whether or not the entry represents a relationship.
            
        
        
            
            Removes the given cache entry from the appropriate dictionary, based on
            the given state and whether or not the entry represents a relationship.
            
        
        
            
            If a corresponding StateManagerTypeMetadata exists, it is returned.
            Otherwise, a StateManagerTypeMetadata is created and cached.
            
        
        
            
            If a corresponding StateManagerTypeMetadata exists, it is returned.
            Otherwise, a StateManagerTypeMetadata is created and cached.
            
        
        
            
            Creates an instance of StateManagerTypeMetadata from the given EdmType and ObjectMapping,
            and stores it in the metadata cache.  The new instance is returned.
            
        
        
            
            Mark the ObjectStateManager as disposed
            
        
        
            
            For every tracked entity which doesn't implement IEntityWithChangeTracker detect changes in the entity's property values
            and marks appropriate ObjectStateEntry as Modified.
            For every tracked entity which doesn't implement IEntityWithRelationships detect changes in its relationships.
            The method is used internally by ObjectContext.SaveChanges() but can be also used if user wants to detect changes
            and have ObjectStateEntries in appropriate state before the SaveChanges() method is called.
            
        
        
            
            Gets the  associated with this state manager.
            
            
            The  associated with this
            
            .
            
        
        
            Occurs when entities are added to or removed from the state manager.
        
        
            
            Flag that is set when we are processing an FK setter for a full proxy.
            This is used to determine whether or not we will attempt to call out into FK
            setters and null references during fixup.
            The value of this property is either null if the code is not executing an
            FK setter, or points to the entity on which the FK setter has been called.
            
        
        
            
            Manages a binding list constructed from an EntityCollection.
            
             Type of the elements in the binding list. 
             Type of element in the underlying EntityCollection. 
            
            The binding list is initialized from the EntityCollection,
            and is synchronized with changes made to the EntityCollection membership.
            This class always allows additions and removals from the binding list.
            
        
        
            
            True if item that was added to binding list but not underlying entity collection
            is now being committed to the collection.
            Otherwise false.
            Used by CommitItemAt and OnCollectionChanged methods to coordinate addition
            of new item to underlying entity collection.
            
        
        
            
            Construct a new instance of the ObjectViewEntityCollectionData class using the supplied entityCollection.
            
             EntityCollection used to populate the binding list. 
        
        
            
            Creates instances of ObjectView that provide a binding list for ObjectQuery results and EntityCollections.
            
            
            The factory methods construct an ObjectView whose generic type parameter (and typed of elements in the binding list)
            is of the same type or a more specific derived type of the generic type of the ObjectQuery or EntityCollection.
            The EDM type of the query results or EntityType or the EntityCollection is examined to determine
            the appropriate type to be used.
            For example, if you have an ObjectQuery whose generic type is "object", but the EDM result type of the Query maps
            to the CLR type "Customer", then the ObjectView returned will specify a generic type of "Customer", and not "object".
            
        
        
            
            Return a list suitable for data binding using the supplied query results.
            
             CLR type of query result elements declared by the caller. 
             The EDM type of the query results, used as the primary means of determining the CLR type of list returned by this method. 
             IEnumerable used to enumerate query results used to populate binding list. Must not be null. 
            
             associated with the query from which results were obtained. Must not be null.
            
            
            True to prevent modifications to the binding list built from the query result; otherwise false . Note that other conditions may prevent the binding list from being modified, so a value of false supplied for this parameter doesn't necessarily mean that the list will be writable.
            
            
            If the query results are composed of entities that only exist in a single
            
            , the value of this parameter is the single EntitySet. Otherwise the value of this parameter should be null.
            
            
             that is suitable for data binding.
            
        
        
            
            Return a list suitable for data binding using the supplied EntityCollection
            
             CLR type of the elements of the EntityCollection. 
             The EntityType of the elements in the collection. This should either be the same as the EntityType that corresponds to the CLR TElement type, or a EntityType derived from the declared EntityCollection element type. 
             The EntityCollection from which a binding list is created. 
            
             that is suitable for data binding.
            
        
        
            
            Create an ObjectView using reflection.
            
             Type to be used for the ObjectView's generic type parameter. 
             The type of class that implements the IObjectViewData to be used by the ObjectView. 
             The IObjectViewData to be used by the ObjectView to access the binding list. 
             Event source used by ObjectView for entity and membership changes. 
        
        
            
            Map the supplied TypeUsage to O-Space.
            
             The TypeUsage to be mapped to O-Space. Should either be associated with C-Space or O-Space. 
             ObjectContext used to perform type mapping. 
        
        
            
            Determine CLR Type to be exposed for data binding using the supplied EDM item type.
            
             CLR element type declared by the caller. There is no requirement that this method return the same type, or a type compatible with the declared type; it is merely a suggestion as to which type might be used. 
             The EDM O-Space type of the items in a particular query result. 
            
             instance that represents the CLR type that corresponds to the supplied EDM item type; or null if the EDM type does not map to a CLR type. Null is returned in the case where
            
            is a  , and no CLR type mapping is specified in the RowType metadata.
            
        
        
            
            Manages a binding list constructed from query results.
            
             Type of the elements in the binding list. 
            
            The binding list is initialized from query results.
            If the binding list can be modified,
            objects are added or removed from the ObjectStateManager (via the ObjectContext).
            
        
        
            
            ObjectContext used to add or delete objects when the list can be modified.
            
        
        
            
            If the TElement type is an Entity type of some kind,
            this field specifies the entity set to add entity objects.
            
        
        
            
            Construct a new instance of the ObjectViewQueryResultData class using the supplied query results.
            
             Result of object query execution used to populate the binding list. 
             ObjectContext used to add or remove items. If the binding list can be modified, this parameter should not be null. 
            
            True if items should not be allowed to be added or removed from the binding list. Note that other conditions may prevent the binding list from being modified, so a value of false supplied for this parameter doesn't necessarily mean that the list will be writable.
            
             If the TElement type is an Entity type of some kind, this field specifies the entity set to add entity objects. 
        
        
            
            Cannot be a DbDataRecord or a derivative of DbDataRecord
            
        
        
            
            Throw an exception is an entity set was not specified for this instance.
            
        
        
            
            A DataContractResolver that knows how to resolve proxy types created for persistent
            ignorant classes to their base types. This is used with the DataContractSerializer.
            
        
        
            During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object. 
            Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type.
            The xsi:type information to map.
            The namespace of the xsi:type.
            The declared type.
            
            An instance of .
            
        
        
            During serialization, maps actual types to xsi:type information.
            true if the type was resolved; otherwise, false.  
            The actual type of the persistence-ignorant object.
            The declared type.
            
            An instance of .
            
            When this method returns, contains a list of xsi:type declarations.
            When this method returns, contains a list of namespaces used.
        
        
            
            Defines the different ways to handle modified properties when refreshing in-memory data from the database.
            
        
        
            
            For unmodified client objects, same behavior as StoreWins.  For modified client
            objects, Refresh original values with store value, keeping all values on client
            object. The next time an update happens, all the client change units will be
            considered modified and require updating.
            
        
        
            
            Discard all changes on the client and refresh values with store values.
            Client original values is updated to match the store.
            
        
        
            
            Marks specified property as modified.
            
             This API recognizes the names in terms of OSpace 
            If State is not Modified or Unchanged
        
        
            
            Throws since the method has no meaning for relationship entries.
            
        
        
            
            Throws since the method has no meaning for relationship entries.
            
        
        
            
            Reuse or create a new (Entity)DataRecordInfo.
            
        
        
            
            Used to report that a scalar entity property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the entity property that is changing 
        
        
            
            Used to report that a scalar entity property has been changed
            The property value that was cached during EntityMemberChanging is now
            added to OriginalValues
            
             The name of the entity property that has changing 
        
        
            
            Used to report that a complex property is about to change
            The current value of the specified property is cached when this method is called.
            
             The name of the top-level entity property that is changing 
             The complex object that contains the property that is changing 
             The name of the property that is changing on complexObject 
        
        
            
            Used to report that a complex property has been changed
            The property value that was cached during EntityMemberChanging is now added to OriginalValues
            
             The name of the top-level entity property that has changed 
             The complex object that contains the property that changed 
             The name of the property that changed on complexObject 
        
        
            
            Update one of the ends of the relationship
            
        
        
            
            API to accept the current values as original values and  mark the entity as Unchanged.
            
             
             
        
        
            
            Original values
            
             
             DbDataRecord 
        
        
            
            Current values
            
             
             DbUpdatableDataRecord 
        
        
            
            Use when EntityEntry.EntityKey == this.Wrapper.Key0
            
        
        
            
            Use when EntityEntry.EntityKey == this.Wrapper.Key1
            
        
        
            
            Flags used to modify behavior of ObjectContext.SaveChanges()
            
        
        
            
            Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called.
            
        
        
            
            After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager.
            
        
        
            
            Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager.
            
        
        
            
            A collection of paths to determine which entities are spanned into a query.
            
        
        
            
            Checks whether relationship span needs to be performed. Currently this is only when the query is
            not using MergeOption.NoTracking.
            
             True if the query needs a relationship span rewrite 
        
        
            
            Includes the specified span path in the specified span instance and returns the updated span instance.
            If  is null, a new span instance is constructed and returned that contains
            the specified include path.
            
             The span instance to which the include path should be added. May be null 
             The include path to add 
             A non-null span instance that contains the specified include path in addition to any paths ut already contained 
        
        
            
            Returns a span instance that is the union of the two specified span instances.
            If  and  are both null,
            then null is returned.
            If  or  is null, but the remaining argument is non-null,
            then the non-null argument is returned.
            If neither  nor  are null, a new span instance is returned
            that contains the merged span paths from both.
            
            
            The first span instance from which to include span paths; may be null
            
            
            The second span instance from which to include span paths; may be null
            
            
            A span instance representing the union of the two arguments; may be null if both arguments are null
            
        
        
            
            Adds a path to span into the query.
            
             The path to span 
        
        
            
            Creates a new Span with the same SpanPaths as this Span
            
        
        
            
            Adds the path if it does not already exist
            
        
        
            
            Returns true if the path can be added
            
        
        
            
            The list of paths that should be spanned into the query
            
        
        
            
            Storage for a span path
            Currently this includes the list of navigation properties
            
        
        
            
            An index containing information about how the query was spanned
            This helps to determine how to materialize the query result
            
        
        
            
            Helper class to compare two RowTypes using EdmEquals instead of reference equality.
            
        
        
            
            This exception is thrown when a update operation violates the concurrency constraint.
            
        
        
            
            Exception during save changes to store
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of the  class that uses a specified error message and a reference to the inner exception that is the cause of this exception.
            
            The error message that explains the reason for the exception. 
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance of the  class that uses a specified error message, a reference to the inner exception, and an enumerable collection of
            
            objects.
            
            The error message that explains the reason for the exception. 
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
            
            The collection of  objects.
            
        
        
            
            Initializes a new instance of  with serialized data.
            
            
            The  that holds the serialized object data about the exception being thrown.
            
            
            The  that contains contextual information about the source or destination.
            
        
        
            
            Gets the  objects for this
            
            .
            
            
            A collection of  objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships.
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of  that uses a specified error message and a reference to the inner exception.
            
            The message that describes the error.
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance of  that uses a specified error message, a reference to the inner exception, and an enumerable collection of
            
            objects.
            
            The message that describes the error.
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
            
            The enumerable collection of  objects.
            
        
        
            
            Initializes a new instance of OptimisticConcurrencyException
            
        
        
            
            Property constraint exception class. Note that this class has state - so if you change even
            its internals, it can be a breaking change
            
        
        
            
            Initializes a new instance of the  class with default message.
            
        
        
            
            Initializes a new instance of the  class with supplied message.
            
            A localized error message.
        
        
            
            Initializes a new instance of the  class with supplied message and inner exception.
            
            A localized error message.
            The inner exception.
        
        
            
            Initializes a new instance of the  class.
            
            A localized error message.
            The name of the property.
        
        
            
            Initializes a new instance of the  class.
            
            A localized error message.
            The name of the property.
            The inner exception.
        
        
            Gets the name of the property that violated the constraint.
            The name of the property that violated the constraint.
        
        
            
            This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider
            
        
        
            
            Initializes a new instance of .
            
        
        
            
            Initializes a new instance of  with a specialized error message.
            
            The message that describes the error.
        
        
            
            Initializes a new instance of  that uses a specified error message.
            
            The message that describes the error.
            The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
        
        
            
            Initializes a new instance of ProviderIncompatibleException
            
        
        
            
            Basic Aggregates
            
        
        
            
            All scalars fall into this category
            
        
        
            
            Represents an operator
            
        
        
            
            Represents an unknown arity. Usually for Ops that can have a varying number of Args
            
        
        
            
            Basic constructor
            
        
        
            
            Is the other Op equivalent?
            
             the other Op to compare 
             true, if the Ops are equivalent 
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Kind of Op
            
        
        
            
            The Arity of this Op (ie) how many arguments can it have.
            Returns -1 if the arity is not known a priori
            
        
        
            
            Is this a ScalarOp
            
        
        
            
            Is this a RulePatternOp
            
        
        
            
            Is this a RelOp
            
        
        
            
            Is this an AncillaryOp
            
        
        
            
            Is this a PhysicalOp
            
        
        
            
            Simple mechanism to get the type for an Op. Applies only to scalar and ancillaryOps
            
        
        
            
            Default constructor
            
             kind of Op 
             type of value produced by this Op 
        
        
            
            Two scalarOps are equivalent (usually) if their OpTypes and types are the
            same. Obviously, their arguments need to be equivalent as well - but that's
            checked elsewhere
            
             The other Op to compare against 
             true, if the Ops are indeed equivalent 
        
        
            
            ScalarOp
            
        
        
            
            Datatype of result
            
        
        
            
            Is this an Aggregate
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            The Aggregate function's metadata
            
        
        
            
            Is this a "distinct" aggregate
            
        
        
            
            Yes; this is an aggregate
            
        
        
            
            AncillaryOp
            
        
        
            
            Default constructor
            
             kind of Op 
        
        
            
            AncillaryOp
            
        
        
            
            Base class for all Apply Ops
            
        
        
            
            All relational operators - filter, project, join etc.
            
        
        
            
            Basic constructor.
            
             kind of Op 
        
        
            
            RelOp
            
        
        
            
            2 children - left, right
            
        
        
            
            Represents arithmetic operators - Plus,Minus,Multiply,Divide,Modulo,UnaryMinus
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Simple implemenation of the BasicOpVisitor interface.
            
        
        
            
            Visit the children of this Node
            
             The Node that references the Op 
        
        
            
            Visit the children of this Node. but in reverse order
            
             The current node 
        
        
            
            Visit this node
            
        
        
            
            Default node visitor
            
        
        
            
            Default handler for all constantOps
            
             the constant op 
             the node 
        
        
            
            Default handler for all TableOps
            
        
        
            
            Default handler for all JoinOps
            
             join op 
             
        
        
            
            Default handler for all ApplyOps
            
             apply op 
             
        
        
            
            Default handler for all SetOps
            
             set op 
             
        
        
            
            Default handler for all SortOps
            
             sort op 
             
        
        
            
            Default handler for all GroupBy ops
            
        
        
            
            Trap method for unrecognized Op types
            
             The Op being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ConstantOp
            
             The ConstantOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NullOp
            
             The NullOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NullSentinelOp
            
             The NullSentinelOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for InternalConstantOp
            
             The InternalConstantOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ConstantPredicateOp
            
             The ConstantPredicateOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for FunctionOp
            
             The FunctionOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for PropertyOp
            
             The PropertyOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for RelPropertyOp
            
             The RelPropertyOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for CaseOp
            
             The CaseOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ComparisonOp
            
             The ComparisonOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for LikeOp
            
             The LikeOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for AggregateOp
            
             The AggregateOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NewInstanceOp
            
             The NewInstanceOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NewEntityOp
            
             The NewEntityOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for DiscriminatedNewInstanceOp
            
             The DiscriminatedNewInstanceOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NewMultisetOp
            
             The NewMultisetOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NewRecordOp
            
             The NewRecordOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for RefOp
            
             The RefOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for VarRefOp
            
             The VarRefOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ConditionalOp
            
             The ConditionalOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ArithmeticOp
            
             The ArithmeticOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for TreatOp
            
             The TreatOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for CastOp
            
             The CastOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for SoftCastOp
            
             The SoftCastOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for IsOp
            
             The IsOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ExistsOp
            
             The ExistsOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ElementOp
            
             The ElementOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for GetEntityRefOp
            
             The GetEntityRefOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for GetRefKeyOp
            
             The GetRefKeyOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for NestOp
            
             The NestOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for VarDefOp
            
             The VarDefOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for VarDefListOp
            
             The VarDefListOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ScanTableOp
            
             The ScanTableOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ScanViewOp
            
             The ScanViewOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for UnnestOp
            
             The UnnestOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ProjectOp
            
             The ProjectOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for FilterOp
            
             The FilterOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for SortOp
            
             The SortOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ConstrainedSortOp
            
             The ConstrainedSortOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for GroupByOp
            
             The GroupByOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for GroupByIntoOp
            
             The GroupByIntoOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for CrossJoinOp
            
             The CrossJoinOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for InnerJoinOp
            
             The InnerJoinOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for LeftOuterJoinOp
            
             The LeftOuterJoinOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for FullOuterJoinOp
            
             The FullOuterJoinOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for CrossApplyOp
            
             The CrossApplyOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for OuterApplyOp
            
             The OuterApplyOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for UnionAllOp
            
             The UnionAllOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for IntersectOp
            
             The IntersectOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for ExceptOp
            
             The ExceptOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for DistinctOp
            
             The DistinctOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for SingleRowOp
            
             The SingleRowOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for SingleRowTableOp
            
             The SingleRowTableOp being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for PhysicalProjectOp
            
             The op being visited 
             The Node that references the Op 
        
        
            
            Common handling for all nestOps
            
             nest op 
             
        
        
            
            Visitor pattern method for SingleStreamNestOp
            
             The op being visited 
             The Node that references the Op 
        
        
            
            Visitor pattern method for MultistreamNestOp
            
             The op being visited 
             The Node that references the Op 
        
        
            
            ANSI switched Case expression.
            
        
        
            
            Pattern for use in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Cast operation. Convert a type instance into an instance of another type
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - instance
            
        
        
            
            Represents a column map for a collection column.
            The "element" represents the element of the collection - usually a Structured
            type, but occasionally a collection/simple type as well.
            The "ForeignKeys" property is optional (but usually necessary) to determine the
            elements of the collection.
            
        
        
            
            Represents a column
            
            
            A ColumnMap is a data structure that maps columns from the C space to
            the corresponding columns from one or more underlying readers.
            ColumnMaps are used by the ResultAssembly phase to assemble results in the
            desired shape (as requested by the caller) from a set of underlying
            (usually) flat readers. ColumnMaps are produced as part of the PlanCompiler
            module of the bridge, and are consumed by the Execution phase of the bridge.
            * Simple (scalar) columns (and UDTs) are represented by a SimpleColumnMap
            * Record type columns are represented by a RecordColumnMap
            * A nominal type instance (that supports inheritance) is usually represented
            by a PolymorphicColumnMap - this polymorphicColumnMap contains information
            about the type discriminator (assumed to be a simple column), and a mapping
            from type-discriminator value to the column map for the specific type
            * The specific type for nominal types is represented by ComplexTypeColumnMap
            for complextype columns, and EntityColumnMap for entity type columns.
            EntityColumnMaps additionally have an EntityIdentity that describes
            the entity identity. The entity identity is logically just a set of keys
            (and the column maps), plus a column map that helps to identify the
            the appropriate entity set for the entity instance
            * Refs are represented by a RefColumnMap. The RefColumnMap simply contains an
            EntityIdentity
            * Collections are represented by either a SimpleCollectionColumnMap or a
            DiscriminatedCollectionColumnMap. Both of these contain a column map for the
            element type, and an optional list of simple columns (the keys) that help
            demarcate the elements of a specific collection instance.
            The DiscriminatedCollectionColumnMap is used in scenarios when the containing
            row has multiple collections, and the different collection properties must be
            differentiated. This differentiation is achieved via a Discriminator column
            (a simple column), and a Discriminator value. The value of the Discriminator
            column is read and compared with the DiscriminatorValue stored in this map
            to determine if we're dealing with the current collection.
            NOTE:
            * Key columns are assumed to be SimpleColumns. There may be more than one key
            column (applies to EntityColumnMap and *CollectionColumnMap)
            * TypeDiscriminator and Discriminator columns are also considered to be
            SimpleColumns. There are singleton columns.
            It is the responsibility of the PlanCompiler phase to produce the right column
            maps.
            The result of a query is always assumed to be a collection. The ColumnMap that we
            return as part of plan compilation refers to the element type of this collection
            - the element type is usually a structured type, but may also be a simple type
            or another collection type. How does the DbRecord framework handle these cases?
            
        
        
            
            Default Column Name; should not be set until CodeGen once we're done
            with all our transformations that might give us a good name, but put
            here for ease of finding it.
            
        
        
            
            Simple constructor - just needs the name and type of the column
            
             column type 
             column name 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Get the column's datatype
            
        
        
            
            Get the column name
            
        
        
            
            Returns whether the column already has a name;
            
        
        
            
            Constructor
            
             datatype of column 
             column name 
             column map for collection element 
             List of keys 
             List of foreign keys 
        
        
            
            Get the list of columns that may comprise the foreign key
            
        
        
            
            Get the list of columns that may comprise the key
            
        
        
            
            Get the column map describing the collection element
            
        
        
            
            Represents information about one collection being managed by the NestOps.
            The CollectionVar is a Var that represents the entire collection.
            
        
        
            
            The collection-var
            
        
        
            
            the column map for the collection element
            
        
        
            
            list of vars describing the collection element; flattened to remove
            nested collections
            
        
        
            
            list of keys specific to this collection
            
        
        
            
            list of sort keys specific to this collection
            
        
        
            
            Discriminator Value for this collection (for a given NestOp).
            Should we break this out into a subtype of CollectionInfo
            
        
        
            
            Represents an arbitrary nest operation - can be used anywhere
            
        
        
            
            Pattern for use in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - instance
            
        
        
            
            Describes information about each column
            
        
        
            
            Default constructor
            
             Column name 
             Datatype of the column 
        
        
            
            More useful default constructor
            
             property describing this column 
        
        
            
            debugging help
            
        
        
            
            Column Name
            
        
        
            
            Datatype of the column
            
        
        
            
            Is this column nullable ?
            
        
        
            
            Describes a column of a table
            
        
        
            
            Same as a ValRef in SqlServer.
            
        
        
            
            Try to get the name of this Var.
            
        
        
            
            Debugging support
            
        
        
            
            Id of this var
            
        
        
            
            Kind of Var
            
        
        
            
            Datatype of this Var
            
        
        
            
            Constructor
            
        
        
            
            Get the name of this column var
            
        
        
            
            The table instance containing this column reference
            
        
        
            
            The column metadata for this column
            
        
        
            
            Represents a comparision operation (LT, GT etc.)
            
        
        
            
            Patterns for use in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            2 children - left, right
            
        
        
            
            Represents a column map for a specific complextype
            
        
        
            
            Column map for a "typed" column
            - either an entity type or a complex type
            
        
        
            
            Represents a column map for a structured column
            
        
        
            
            Structured columnmap constructor
            
             datatype for this column 
             column name 
             list of properties 
        
        
            
            Debugging support
            
        
        
            
            Get the null sentinel column, if any.  Virtual so only derived column map
            types that can have NullSentinel have to provide storage, etc.
            
        
        
            
            Get the list of properties that constitute this structured type
            
        
        
            
            Typed columnMap constructor
            
             Datatype of column 
             column name 
             List of column maps - one for each property 
        
        
            
            Constructor
            
             column Datatype 
             column name 
             list of properties 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the type Nullability column
            
        
        
            
            A computed expression. Defined by a VarDefOp
            
        
        
            
            Represents a conditional operation - and, or, in, not, is null
            
        
        
            
            Patterns for use in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Base class for all constant Ops
            
        
        
            
            Constructor overload for rules
            
        
        
            
            Two CostantBaseOps are equivalent if they are of the same
            derived type and have the same type and value.
            
             the other Op 
             true, if these are equivalent (not a strict equality test) 
        
        
            
            Get the constant value
            
        
        
            
            0 children
            
        
        
            
            Represents an external constant
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents a constant predicate (with a value of either true or false)
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Value of the constant predicate
            
        
        
            
            Is this the true predicate
            
        
        
            
            Is this the 'false' predicate
            
        
        
            
            A Constrained SortOp. Used to represent physical paging (skip, limit, skip + limit) operations.
            
        
        
            
            Base type for SortOp and ConstrainedSortOp
            
        
        
            
            Sort keys
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            3 children - the input, a possibly NullOp limit and a possibly NullOp skip count.
            
        
        
            
            CrossApply
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            A CrossJoin (n-way)
            
        
        
            
            Base class for all Join operations
            
        
        
            
            3 children - left, right, pred
            
        
        
            
            Singleton instance
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            varying number of children (but usually greater than 1)
            
        
        
            
            Gets the target entity pointed at by a reference
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - entity instance
            
        
        
            
            Represents a "discriminated" collection column.
            This represents a scenario when multiple collections are represented
            at the same level of the container row, and there is a need to distinguish
            between these collections
            
        
        
            
            Internal constructor
            
             Column datatype 
             column name 
             column map for collection element 
             Keys for the collection 
             Foreign keys for the collection 
             Discriminator column map 
             Discriminator value 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the column that describes the discriminator
            
        
        
            
            Get the discriminator value
            
        
        
            
            This class also represents entity identity. However, this class addresses
            those scenarios where the entityset for the entity is not uniquely known
            a priori. Instead, the query is annotated with information, and based on
            the resulting information, the appropriate entityset is identified.
            Specifically, the specific entityset is represented as a SimpleColumnMap
            in the query. The value of that column is used to look up a dictionary,
            and then identify the appropriate entity set.
            It is entirely possible that no entityset may be located for the entity
            instance - this represents a transient entity instance
            
        
        
            
            Abstract base class representing entity identity. Used by both
            EntityColumnMap and RefColumnMap.
            An EntityIdentity captures two pieces of information - the list of keys
            that uniquely identify an entity within an entityset, and the the entityset
            itself.
            
        
        
            
            Simple constructor - gets a list of key columns
            
        
        
            
            Get the key columns
            
        
        
            
            Simple constructor
            
             column map representing the entityset 
             Map from value -> the appropriate entityset 
             list of key columns 
        
        
            
            Debugging support
            
        
        
            
            Get the column map representing the entityset
            
        
        
            
            Return the entityset map
            
        
        
            
            Polymorphic new instance creation (takes all properties of all types in the hierarchy + discriminator)
            
        
        
            
            Base class for DiscriminatedNewEntityOp and NewEntityOp
            
        
        
            
            True if the entity constructor is scoped to a particular entity set or null (scoped as "unscoped").
            False if the scope is not yet known. Scope is determined in PreProcessor.
            
        
        
            
            Get the entityset (if any) associated with this constructor
            
        
        
            
            get the list of relationship properties (if any) specified for this constructor
            
        
        
            
            Gets discriminator and type information used in construction of type.
            
        
        
            
            DistinctOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - input
            
        
        
            
            Get "key" vars for the distinct
            
        
        
            
            Represents an Element() op - extracts the scalar value from a collection
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - collection instance
            
        
        
            
            Represents a column map for a specific entity type
            
        
        
            
            constructor
            
             column datatype 
             column name 
             list of properties 
             entity identity information 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the entity identity information
            
        
        
            
            ExceptOp (Minus)
            
        
        
            
            Base class for set operations - union, intersect, except
            
        
        
            
            2 children - left, right
            
        
        
            
            Map of result vars to the vars of each branch of the setOp
            
        
        
            
            Get the set of output vars produced
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents an EXISTS subquery?
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - collection input
            
        
        
            
            An ExtendedNodeInfo class adds additional information to a standard NodeInfo.
            This class is usually applicable only to RelOps and PhysicalOps.
            The ExtendedNodeInfo class has in addition to the information maintained by NodeInfo
            the following
            - a set of local definitions
            - a set of definitions
            - a set of keys
            - a set of non-nullable definitions
            - a set of non-nullable definitions that are visible at this node
            NOTE: When adding a new member to track inforation, make sure to update the Clear method
            in this class to set that member to the default value.
            
        
        
            
            The NodeInfo class represents additional information about a node in the tree.
            By default, this includes a set of external references for each node (ie) references
            to Vars that are not defined in the same subtree
            The NodeInfo class also includes a "hashValue" that is a hash value for the entire
            subtree rooted at this node
            NOTE: When adding a new member to track inforation, make sure to update the Clear method
            in this class to set that member to the default value.
            
        
        
            
            Clear out all information - usually used by a Recompute
            
        
        
            
            Compute the hash value for a Vec
            
        
        
            
            Computes the hash value for this node. The hash value is simply the
            local hash value for this node info added with the hash values of the child
            nodes
            
             current command 
             current node 
        
        
            
            All external references from this node
            
        
        
            
            Get the hash value for this nodeInfo
            
        
        
            
            Compute the hash value for this node
            
        
        
            
            Set the rowcount for this node
            
             min rows produced by this node 
             max rows produced by this node 
        
        
            
            Initialize the rowcounts for this node from the source node
            
             nodeinfo of source 
        
        
            
            Definitions made specifically by this node
            
        
        
            
            All definitions visible as outputs of this node
            
        
        
            
            The keys for this node
            
        
        
            
            The definitions of vars that are guaranteed to be non-nullable when output from this node
            
        
        
            
            The definitions that come from the rel-op inputs of this node that are guaranteed to be non-nullable
            
        
        
            
            Min number of rows returned from this node
            
        
        
            
            Max rows returned from this node
            
        
        
            
            FilterOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            2 children - input, pred
            
        
        
            
            A FullOuterJoin
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents an arbitrary function call
            
        
        
            
            Singleton instance used for patterns in transformation rules
            
        
        
            
            Two FunctionOps are equivalent if they reference the same EdmFunction
            
             the other Op 
             true, if these are equivalent 
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            The function that's being invoked
            
        
        
            
            Extracts the ref from an entity instance
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - entity instance
            
        
        
            
            extracts the key from a ref
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - ref instance
            
        
        
            
            GroupByBaseOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            GroupBy keys
            
        
        
            
            All outputs of this Op - includes keys and aggregates
            
        
        
            
            GroupByIntoOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            GroupBy keys
            
        
        
            
            4 children - input, keys (vardeflist), aggregates (vardeflist), groupaggregates (vardeflist)
            
        
        
            
            GroupByOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            3 children - input, keys (vardeflist), aggregates (vardeflist)
            
        
        
            
            An InnerJoin
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents internally generated constants
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            An IntersectOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            An IS OF operation
            
        
        
            
            Pattern used for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - instance
            
        
        
            
            The type being checked for
            
        
        
            
            The KeySet class encapsulates all information about the keys of a RelOp node in
            the query tree.
            A KeyVec is logically a set of vars that uniquely identify the row of the current
            RelOp. Some RelOps may have no unique keys - such a state is identified by the
            "NoKeys" property
            
        
        
            
            A LeftOuterJoin
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents a string comparison operation
            
        
        
            
            Pattern for use in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            3 children - string, pattern , escape
            
        
        
            
            Represents a function import column map.
            
        
        
            
            Internal constructor
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the type discriminator column
            
        
        
            
            Get the type mapping
            
        
        
            
            Gets discriminator delegate
            
        
        
            
            Base class for Nest operations
            
        
        
            
            Represents all physical operators
            
        
        
            
            Default constructor
            
             the op type 
        
        
            
            This is a physical Op
            
        
        
            
            (Ordered) list of prefix sort keys (defines ordering of results)
            
        
        
            
            Outputs of the NestOp. Includes the Keys obviously, and one Var for each of
            the collections produced. In addition, this may also include non-key vars
            from the outer row
            
        
        
            
            Information about each collection managed by the NestOp
            
        
        
            
            A new entity instance constructor
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            A new instance creation
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents a new record constructor
            
        
        
            
            Basic constructor. All fields have a value specified
            
        
        
            
            Alternate form of the constructor. Only some fields have a value specified
            The arguments to the corresponding Node are exactly 1-1 with the fields
            described here.
            The missing fields are considered to be "null"
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Determine if a value has been provided for the specified field.
            Returns the position of this field (ie) the specific argument in the Node's
            children. If no value has been provided for this field, then simply
            return false
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            List of all properties that have values specified
            
        
        
            
            The NodeInfoVisitor is a simple class (ab)using the Visitor pattern to define
            NodeInfo semantics for various nodes in the tree
            
        
        
            
            The only public method. Recomputes the nodeInfo for a node in the tree,
            but only if the node info has already been computed.
            Assumes that the NodeInfo for each child (if computed already) is valid
            
             Node to get NodeInfo for 
        
        
            
            Basic constructor
            
        
        
            
            Default implementation for scalarOps. Simply adds up external references
            from each child
            
        
        
            
            The given definition is non nullable if it is a non-null constant
            or a reference to non-nullable input
            
        
        
            
            The only special case among all scalar and ancillaryOps. Simply adds
            its var to the list of unreferenced Ops
            
             The VarRefOp 
             Current node 
        
        
            
            Definitions = Local Definitions = referenced table columns
            External References = none
            Keys = keys of entity type
            RowCount (default): MinRows = 0, MaxRows = *
            NonNullableDefinitions : non nullable table columns that are definitions
            NonNullableInputDefinitions : default(empty) because cannot be used
            
             ScanTable/ScanView op 
             current subtree 
             nodeinfo for this subtree 
        
        
            
            Computes a NodeInfo for an UnnestOp.
            Definitions = columns of the table produced by this Op
            Keys = none
            External References = the unnestVar + any external references of the
            computed Var (if any)
            RowCount (default): MinRows = 0; MaxRows = *
            NonNullableDefinitions: default(empty)
            NonNullableInputDefinitions : default(empty) because cannot be used
            
        
        
            
            Walk through the computed vars defined by a VarDefListNode, and look for
            "simple" Var renames. Build up a mapping from original Vars to the renamed Vars
            
             the varDefListNode subtree 
             A dictionary of Var->Var renames 
        
        
            
            Computes a NodeInfo for a ProjectOp.
            Definitions = the Vars property of this Op
            LocalDefinitions = list of computed Vars produced by this node
            Keys = Keys of the input Relop (if they are all preserved)
            External References = any external references from the computed Vars
            RowCount = Input's RowCount
            NonNullabeDefinitions = Outputs that are either among the NonNullableDefinitions of the child or
            are constants defined on this node
            NonNullableInputDefinitions = NonNullableDefinitions of the child
            
             The ProjectOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a FilterOp.
            Definitions = Definitions of the input Relop
            LocalDefinitions = None
            Keys = Keys of the input Relop
            External References = any external references from the input + any external
            references from the predicate
            MaxOneRow = Input's RowCount
            If the predicate is a "false" predicate, then max RowCount is zero
            If we can infer additional info from the key-selector, we may be
            able to get better estimates
            NonNullabeDefinitions = NonNullabeDefinitions of the input RelOp
            NonNullableInputDefinitions = NonNullabeDefinitions of the input RelOp
            
             The FilterOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a GroupByOp.
            Definitions = Keys + aggregates
            LocalDefinitions = Keys + Aggregates
            Keys = GroupBy Keys
            External References = any external references from the input + any external
            references from the local computed Vars
            RowCount =
            (1,1) if no group-by keys;
            otherwise if input MinRows is 1 then (1, input MaxRows);
            otherwise (0, input MaxRows)
            NonNullableDefinitions: non-nullable keys
            NonNullableInputDefinitions : default(empty)
            
             The GroupByOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a CrossJoinOp.
            Definitions = Definitions of my children
            LocalDefinitions = None
            Keys = Concatenation of the keys of my children (if every one of them has keys; otherwise, null)
            External References = any external references from the inputs
            RowCount: MinRows: min(min-rows of each child)
            MaxRows: max(max-rows of each child)
            NonNullableDefinitions : The NonNullableDefinitions of the children
            NonNullableInputDefinitions : default(empty) because cannot be used
            
             The CrossJoinOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for an Inner/LeftOuter/FullOuter JoinOp.
            Definitions = Definitions of my children
            LocalDefinitions = None
            Keys = Concatenation of the keys of my children (if every one of them has keys; otherwise, null)
            External References = any external references from the inputs + any external
            references from the join predicates
            RowCount:
            FullOuterJoin: MinRows = 0, MaxRows = N
            InnerJoin: MinRows = 0;
            MaxRows = N; if both inputs have RowCount lesser than (or equal to) 1, then maxCard = 1
            OuterJoin: MinRows = leftInput.MinRows
            MaxRows = N; if both inputs have RowCount lesser than (or equal to) 1, then maxCard = 1
            NonNullableDefinitions:
            FullOuterJoin: None.
            InnerJoin: NonNullableDefinitions of both children
            LeftOuterJoin: NonNullableDefinitions of the left child
            NonNullableInputDefinitions : NonNullabeDefinitions of both children
            
             The JoinOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a CrossApply/OuterApply op.
            Definitions = Definitions of my children
            LocalDefinitions = None
            Keys = Concatenation of the keys of my children (if every one of them has keys; otherwise, null)
            External References = any external references from the inputs
            RowCount:
            CrossApply: minRows=0; MaxRows=Unbounded
            (MaxRows = 1, if both inputs have MaxRow less than or equal to 1)
            OuterApply: minRows=leftInput.MinRows; MaxRows=Unbounded
            (MaxRows = 1, if both inputs have MaxRow less than or equal to 1)
            NonNullableDefinitions =
            CrossApply: NonNullableDefinitions of both children
            OuterApply: NonNullableDefinitions of the left child
            NonNullableInputDefinitions = NonNullabeDefinitions of both children
            
             The ApplyOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for SetOps (UnionAll, Intersect, Except).
            Definitions = OutputVars
            LocalDefinitions = OutputVars
            Keys = Output Vars for Intersect, Except. For UnionAll ??
            External References = any external references from the inputs
            RowCount: Min = 0, Max = unbounded.
            For UnionAlls, MinRows = max(MinRows of left and right inputs)
            NonNullable definitions =
            UnionAll - Columns that are NonNullableDefinitions on both (children) sides
            Except  - Columns that are NonNullableDefinitions on the left child side
            Intersect - Columns that are NonNullableDefinitions on either side
            NonNullableInputDefinitions = default(empty) because cannot be used
            
             The SetOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a ConstrainedSortOp/SortOp.
            Definitions = Definitions of the input Relop
            LocalDefinitions = not allowed
            Keys = Keys of the input Relop
            External References = any external references from the input + any external
            references from the keys
            RowCount = Input's RowCount
            NonNullabeDefinitions = NonNullabeDefinitions of the input RelOp
            NonNullableInputDefinitions = NonNullabeDefinitions of the input RelOp
            
             The SortOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for Distinct.
            Definitions = OutputVars that are not external references
            LocalDefinitions = None
            Keys = Output Vars
            External References = any external references from the inputs
            RowCount = Input's RowCount
            NonNullabeDefinitions : NonNullabeDefinitions of the input RelOp that are outputs
            NonNullableInputDefinitions : default(empty) because cannot be used
            
             The DistinctOp 
             corresponding Node 
        
        
            
            Compute NodeInfo for a SingleRowOp.
            Definitions = child's definitions
            Keys = child's keys
            Local Definitions = none
            External references = child's external references
            RowCount=(0,1)
            NonNullabeDefinitions = NonNullabeDefinitions of the input RelOp
            NonNullableInputDefinitions : default(empty) because cannot be used
            
             The SingleRowOp 
             current subtree 
             NodeInfo for this node 
        
        
            
            SingleRowTableOp
            No definitions, external references, non-nullable definitions
            Keys = empty list (not the same as "no keys")
            RowCount = (1,1)
            
             the SingleRowTableOp 
             current subtree 
             nodeInfo for this subtree 
        
        
            
            Computes a NodeInfo for a PhysicalProjectOp.
            Definitions = OutputVars
            LocalDefinitions = None
            Keys = None
            External References = any external references from the inputs
            RowCount=default
            NonNullabeDefinitions = NonNullabeDefinitions of the input RelOp that are among the definitions
            NonNullableInputDefinitions = NonNullabeDefinitions of the input RelOp
            
             The PhysicalProjectOp 
             corresponding Node 
        
        
            
            Computes a NodeInfo for a NestOp (SingleStream/MultiStream).
            Definitions = OutputVars
            LocalDefinitions = Collection Vars
            Keys = Keys of my child
            External References = any external references from the inputs
            RowCount=default
            
             The NestOp 
             corresponding Node 
        
        
            
            Represents null constants
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents an internally generated constant that is used to serve as a null sentinel,
            i.e. to be checked whether it is null.
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Delegate that describes the processing
            
             RuleProcessing context 
             Node to process 
        
        
            
            The operator types. Includes both scalar and relational operators,
            and physical and logical operators, and rule operators
            
        
        
            
            Constants
            
        
        
            
            An internally generated constant
            
        
        
            
            An internally generated constant used as a null sentinel
            
        
        
            
            A null constant
            
        
        
            
            ConstantPredicate
            
        
        
            
            A Var reference
            
        
        
            
            GreaterThan
            
        
        
            
            >=
            
        
        
            
            Lessthan or equals
            
        
        
            
            Less than
            
        
        
            
            Equals
            
        
        
            
            Not equals
            
        
        
            
            String comparison
            
        
        
            
            Addition
            
        
        
            
            Subtraction
            
        
        
            
            Multiplication
            
        
        
            
            Division
            
        
        
            
            Modulus
            
        
        
            
            Unary Minus
            
        
        
            
            And
            
        
        
            
            Or
            
        
        
            
            In
            
        
        
            
            Not
            
        
        
            
            is null
            
        
        
            
            switched case expression
            
        
        
            
            treat-as
            
        
        
            
            is-of
            
        
        
            
            Cast
            
        
        
            
            Internal cast
            
        
        
            
            a basic aggregate
            
        
        
            
            function call
            
        
        
            
            Reference to a "relationship" property
            
        
        
            
            property reference
            
        
        
            
            entity constructor
            
        
        
            
            new instance constructor for a named type(other than multiset, record)
            
        
        
            
            new instance constructor for a named type and sub-types
            
        
        
            
            Multiset constructor
            
        
        
            
            record constructor
            
        
        
            
            Get the key from a Ref
            
        
        
            
            Get the ref from an entity instance
            
        
        
            
            create a reference
            
        
        
            
            exists
            
        
        
            
            get the singleton element from a collection
            
        
        
            
            Builds up a collection
            
        
        
            
            gets the target entity pointed at by a reference
            
        
        
            
            Traverse a relationship and get the references of the other end
            
        
        
            
            A table scan
            
        
        
            
            A view scan
            
        
        
            
            Filter
            
        
        
            
            Project
            
        
        
            
            InnerJoin
            
        
        
            
            LeftOuterJoin
            
        
        
            
            FullOuter join
            
        
        
            
            Cross join
            
        
        
            
            cross apply
            
        
        
            
            outer apply
            
        
        
            
            Unnest
            
        
        
            
            Sort
            
        
        
            
            Constrained Sort (physical paging - Limit and Skip)
            
        
        
            
            GroupBy
            
        
        
            
            GroupByInto (projects the group as well)
            
        
        
            
            UnionAll
            
        
        
            
            Intersect
            
        
        
            
            Except
            
        
        
            
            Distinct
            
        
        
            
            Select a single row from a subquery
            
        
        
            
            A table with exactly one row
            
        
        
            
            Variable definition
            
        
        
            
            List of variable definitions
            
        
        
            
            Leaf
            
        
        
            
            Physical Project
            
        
        
            
            single-stream nest aggregation
            
        
        
            
            multi-stream nest aggregation
            
        
        
            
            NotValid
            
        
        
            
            OuterApply
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Describes a query parameter
            
        
        
            
            Get the name of this Var
            
        
        
            
            Name of the parameter
            
        
        
            
            A PatternMatchRule allows for a pattern to be specified to identify interesting
            subtrees, rather than just an OpType
            
        
        
            
            A Rule - more specifically, a transformation rule - describes an action that is to
            be taken when a specific kind of subtree is found in the tree
            
        
        
            
            Basic constructor
            
             The OpType we're interested in processing 
             The callback to invoke 
        
        
            
            Does the rule match the current node?
            
             the node in question 
             true, if a match was found 
        
        
            
            We need to invoke the specified callback on the subtree in question - but only
            if the match succeeds
            
             Current rule processing context 
             The node (subtree) to process 
             the (possibly) modified subtree 
             true, if the subtree was modified 
        
        
            
            The OpType we're interested in transforming
            
        
        
            
            The "callback" function for each rule.
            Every callback function must return true if the subtree has
            been modified (or a new subtree has been returned); and must return false
            otherwise. If the root of the subtree has not changed, but some internal details
            of the subtree have changed, it is the responsibility of the rule to update any
            local bookkeeping information.
            
             The rule processing context 
             the subtree to operate on 
             possibly transformed subtree 
             transformation status - true, if there was some change; false otherwise 
        
        
            
            Basic constructor
            
             The pattern to look for 
             The callback to invoke when such a pattern is identified 
        
        
            
            A PhysicalProjectOp is a physical Op capping the entire command tree (and the
            subtrees of CollectOps).
            
        
        
            
            Instance for pattern matching in rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            basic constructor
            
             List of outputs from this Op 
             column map that describes the result to be shaped 
        
        
            
            Get the column map that describes how the result should be reshaped
            
        
        
            
            Get the (ordered) list of output vars that this node produces
            
        
        
            
            ProjectOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            2 children - input, projections (VarDefList)
            
        
        
            
            The Vars projected by this Op
            
        
        
            
            Represents a property access
            
        
        
            
            Used for patterns in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - the instance
            
        
        
            
            The property metadata
            
        
        
            
            Represents a record (an untyped structured column)
            
        
        
            
            Constructor for a record column map
            
             Datatype of this column 
             column name 
             List of ColumnMaps - one for each property 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Get the type Nullability column
            
        
        
            
            A column map that represents a ref column.
            
        
        
            
            Constructor for a ref column
            
             column datatype 
             column name 
             identity information for this entity 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Get the entity identity information for this ref
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - key
            
        
        
            
            The EntitySet to which the reference refers
            
        
        
            
            A "Rel" property is best thought of as a collocated reference (aka foreign key).
            Any entity may have zero or more rel-properties carried along with it (purely
            as a means to optimize for common relationship traversal scenarios)
            Although the definition is lax here, we only deal with RelProperties that
            are one-ended (ie) the target multiplicity is at most One.
            Consider for example, an Order entity with a (N:1) Order-Customer relationship. The Customer ref
            will be treated as a rel property for the Order entity.
            Similarly, the OrderLine entity may have an Order ref rel property (assuming that there was
            a N:1 relationship between OrderLine and Order)
            
        
        
            
            Our definition of equality
            
        
        
            
            our hash code
            
        
        
            
            String form
            
        
        
            
            The relationship
            
        
        
            
            The source end of the relationship
            
        
        
            
            the target end of the relationship
            
        
        
            
            Almost identical to a PropertyOp - the only difference being that we're dealing with an
            "extended" property (a rel property) this time
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - the entity instance
            
        
        
            
            Get the property metadata
            
        
        
            
            Enum describing row counts
            
        
        
            
            Zero rows
            
        
        
            
            One row
            
        
        
            
            Unbounded (unknown number of rows)
            
        
        
            
            A RuleProcessingContext encapsulates information needed by various rules to process
            the query tree.
            
        
        
            
            Callback function to be applied to a node before any rules are applied
            
             the node 
        
        
            
            Callback function to be applied to the subtree rooted at the given
            node before any rules are applied
            
             the node that is the root of the subtree 
        
        
            
            Callback function to be applied on a node after a rule has been applied
            that has modified the node
            
             current node 
             the rule that modified the node 
        
        
            
            Callback function to be applied to the subtree rooted at the given
            node after any rules are applied
            
             the node that is the root of the subtree 
        
        
            
            Get the hashcode for this node - to ensure that we don't loop forever
            
             current node 
             int hashcode 
        
        
            
            Column map for a scalar column - maps 1-1 with a column from a
            row of the underlying reader
            
        
        
            
            Base class for simple column maps; can be either a VarRefColumnMap or
            ScalarColumnMap; the former is used pretty much throughout the PlanCompiler,
            while the latter will only be used once we generate the final Plan.
            
        
        
            
            Basic constructor
            
             datatype for this column 
             column name 
        
        
            
            Basic constructor
            
             datatype for this column 
             column name 
             Underlying command to locate this column 
             Position in underlying reader 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            The command (reader, really) to get this column value from
            
        
        
            
            Column position within the reader of the command
            
        
        
            
            Get the table instance produced by this Op
            
        
        
            
            Scans a table
            
        
        
            
            Scan constructor
            
        
        
            
            Only to be used for pattern matches
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            No children
            
        
        
            
            Scans a view - very similar to a ScanTable
            
        
        
            
            Scan constructor
            
        
        
            
            Only to be used for pattern matches
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Exactly 1 child
            
        
        
            
            A SetOp Var - used as the output var for set operations (Union, Intersect, Except)
            
        
        
            
            Represents a "simple" collection map.
            
        
        
            
            Basic constructor
            
             Column datatype 
             column name 
             column map for the element of the collection 
             list of key columns 
             list of foreign key columns 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            This class is a "simple" representation of the entity identity, where the
            entityset containing the entity is known a priori. This may be because
            there is exactly one entityset for the entity; or because it is inferrable
            from the query that only one entityset is relevant here
            
        
        
            
            Basic constructor.
            Note: the entitySet may be null - in which case, we are referring to
            a transient entity
            
             The entityset 
             key columns of the entity 
        
        
            
            Debugging support
            
        
        
            
            The entityset containing the entity
            
        
        
            
            Represents a polymorphic typed column - either an entity or
            a complex type.
            
        
        
            
            Internal constructor
            
             datatype of the column 
             column name 
             base list of fields common to all types 
             column map for type discriminator column 
             map from type discriminator value->columnMap 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the type discriminator column
            
        
        
            
            Get the type mapping
            
        
        
            
            A SimpleRule is a rule that specifies a specific OpType to look for, and an
            appropriate action to take when such an Op is identified
            
        
        
            
            Basic constructor.
            
             The OpType we're interested in 
             The callback to invoke when we see such an Op 
        
        
            
            Selects out a single row from a underlying subquery. Two flavors of this Op exist.
            The first flavor enforces the single-row-ness (ie) an error is raised if the
            underlying subquery produces more than one row.
            The other flavor simply choses any row from the input
            
        
        
            
            Singleton instance
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - input
            
        
        
            
            Single-stream nest aggregation Op.
            (Somewhat similar to a group-by op - should we merge these?)
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - the input
            
        
        
            
            The discriminator Var (when there are multiple collections)
            
        
        
            
            List of postfix sort keys (mostly to deal with multi-level nested collections)
            
        
        
            
            Set of keys for this nest operation
            
        
        
            
            An internal cast operation. (Softly) Convert a type instance into an instance of another type
            This Op is intended to capture "promotion" semantics. (ie) int16 promotes to an int32; Customer promotes to Person
            etc. This Op is intended to shield the PlanCompiler from having to reason about
            the promotion semantics; and is intended to make the query tree very
            explicit
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - input expression
            
        
        
            
            A Sortkey
            
        
        
            
            The Var being sorted
            
        
        
            
            Is this a sort asc, or a sort desc
            
        
        
            
            An optional collation (only for string types)
            
        
        
            
            A SortOp
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - the input, SortOp must not contain local VarDefs
            
        
        
            
            Describes metadata about a table
            
        
        
            
            private initializer
            
             the entity set corresponding to this table (if any) 
        
        
            
            Create a typed-table definition corresponding to an entityset (if specified)
            The table has exactly one column - the type of the column is specified by
            the "type" parameter. This table is considered to be un-"flattened"
            
             type of each element (row) of the table 
             entityset corresponding to the table (if any) 
        
        
            
            Creates a "flattened" table definition.
            The table has one column for each specified property in the "properties" parameter.
            The name and datatype of each table column are taken from the corresponding property.
            The keys of the table (if any) are those specified in the "keyProperties" parameter
            The table may correspond to an entity set (if the entityset parameter was non-null)
            
             prperties corresponding to columns of the table 
             
             entityset corresponding to the table (if any) 
        
        
            
            String form - for debugging
            
        
        
            
            The extent metadata (if any)
            
        
        
            
            List of columns of this table
            
        
        
            
            Keys for this table
            
        
        
            
            Is this table a "flat" table?
            
        
        
            
            Represents a TREAT AS operation
            
        
        
            
            Used as patterns in transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - instance
            
        
        
            
            Is this a "fake" treat?
            
        
        
            
            UnionAll (ie) no duplicate elimination
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Returns the branch discriminator var for this op.  It may be null, if
            we haven't been through key pullup yet.
            
        
        
            
            Scans a virtual extent (ie) a transient collection
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            The (collection-typed) Var that's being unnested
            
        
        
            
            The table instance produced by this Op
            
        
        
            
            Exactly 1 child
            
        
        
            
            Helps define a list of VarDefOp
            
        
        
            
            singleton instance
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            The ColumnMapCopier clones an entire ColumnMap hierarchy; this is different
            than the ColumnMapTranslator, which only copies things that need to be copied.
            Note that this is a stateless visitor; it uses the visitor's argument for its
            state management.
            The Visitor's argument is a VarMap; anytime a Var is found in the ColumnMap
            hierarchy, it is replaced with the replacement from the VarMap.
            Note also that previous implementations of this class attempted to avoid re-
            processing ColumnMaps by caching the results for each input and returning it.
            I wasn't convinced that we were buying much with all that caching, since the
            only ColumnMaps that should be repeated in the hierarchy are simple ones; there
            is about as much object creation either way.  The only reason I see that we
            want to cache these is if we really cared to have only one VarRefColumnMap
            instance for a given Var and be able to use reference equality instead of
            comparing the Vars themselves.  I don't believe we're making that guarantee
            anywhere else, so I've removed that for now because I don't want the added
            complexity that the caching adds.  If performance analysis indicates there is
            a problem, we can considier addding the cache back in.
            
        
        
            
            Singleton instance for the "public" methods to use;
            
        
        
            
            Constructor; no one should use this.
            
        
        
            
            Return a copy of the column map, replacing all vars with the replacements
            found in the replacementVarMap
            
        
        
            
            Returns the var to use in the copy, either the original or the
            replacement.  Note that we will follow the chain of replacements, in
            case the replacement was also replaced.
            
        
        
            
            Copies the List of ColumnMaps or SimpleColumnMaps
            
        
        
            
            Copies the DiscriminatedEntityIdentity
            
        
        
            
            Copies the SimpleEntityIdentity
            
        
        
            
            ComplexTypeColumnMap
            
        
        
            
            DiscriminatedCollectionColumnMap
            
        
        
            
            EntityColumnMap
            
        
        
            
            SimplePolymorphicColumnMap
            
        
        
            
            MultipleDiscriminatorPolymorphicColumnMap
            
        
        
            
            RecordColumnMap
            
        
        
            
            RefColumnMap
            
        
        
            
            ScalarColumnMap
            
        
        
            
            SimpleCollectionColumnMap
            
        
        
            
            VarRefColumnMap
            
        
        
            
            Factory methods for prescriptive column map patterns (includes default
            column maps for materializer services and function mappings).
            
        
        
            
            Creates a column map for the given reader and function mapping.
            
        
        
            
            Build the collectionColumnMap from a store datareader, a type and an entitySet.
            
        
        
            
            Requires: a public type with a public, default constructor. Returns a column map initializing the type
            and all properties of the type with a public setter taking a primitive type and having a corresponding
            column in the reader.
            
        
        
            
            Build the entityColumnMap from a store datareader, a type and an entitySet and
            a list ofproperties.
            
        
        
            
            For a given edmType, build an array of scalarColumnMaps that map to the columns
            in the store datareader provided.  Note that we're hooking things up by name, not
            by ordinal position.
            
        
        
            
            Given a store datareader and a member of an edmType, find the column ordinal
            in the datareader with the name of the member.
            
        
        
            
            Given a store datareader, a column name, find the column ordinal
            in the datareader with the name of the column.
            We only have the functionImport provided to include it in the exception
            message.
            
        
        
            
            Given a store datareader and a column name, try to find the column ordinal
            in the datareader with the name of the column.
            
             true if found, false otherwise. 
        
        
            
            The Command object encapsulates all information relating to a single command.
            It includes the expression tree in question, as well as the parameters to the
            command.
            Additionally, the Command class serves as a factory for building up different
            nodes and Ops. Every node in the tree has a unique id, and this is enforced by
            the node factory methods
            
        
        
            
            Creates a new command
            
        
        
            
            For mocking.
            
        
        
            
            Get the primitive type by primitive type kind
            
             EdmMetadata.PrimitiveTypeKind of the primitive type 
             A TypeUsage that represents the specified primitive type 
            
            True if the specified primitive type could be retrieved; otherwise false .
            
        
        
            
            VarVec constructor
            
             A new, empty, VarVec 
        
        
            
            Create a VarVec with a single Var
            
        
        
            
            Create a VarVec with the set of specified vars
            
        
        
            
            Create a new VarVec from the input VarVec
            
        
        
            
            Release a VarVec to the freelist
            
        
        
            
            Create a new enumerator for a VarVec; use a free one if its
            available; otherwise, create a new one
            
        
        
            
            Release an enumerator; keep it in a local stack for future use
            
        
        
            
            Create an ordered list of Vars - initially empty
            
        
        
            
            Create an ordered list of Vars
            
        
        
            
            Create a table whose element type is "elementType"
            
             type of each element (row) of the table 
             a table definition object 
        
        
            
            Creates a new table definition based on an extent. The element type
            of the extent manifests as the single column of the table
            
             the metadata extent 
             A new TableMD instance based on the extent 
        
        
            
            Create a "flat" table definition object (ie) the table has one column
            for each property of the specified row type
            
             the shape of each row of the table 
             the table definition 
        
        
            
            Create a "flat" table defintion. The table has one column for each property
            specified, and the key columns of the table are those specified in the
            keyMembers parameter
            
             list of columns for the table 
             the key columns (if any) 
             (OPTIONAL) entityset corresponding to this table 
        
        
            
            Creates a new table instance
            
             table metadata 
             A new Table instance with columns as defined in the specified metadata 
        
        
            
            Access an existing variable in the query (by its id)
            
             The ID of the variable to retrieve 
             The variable with the specified ID 
        
        
            
            Gets the ParameterVar that corresponds to a given named parameter
            
             The name of the parameter for which to retrieve the ParameterVar 
             The ParameterVar that corresponds to the specified parameter 
        
        
            
            Creates a variable for a parameter in the query
            
             The name of the parameter for which to create the var 
             The type of the parameter, and therefore the new var 
             A new ParameterVar instance with the specified name and type 
        
        
            
            Creates a variable for the given parameter variable and replaces it in parameter map.
            
             Parameter variable that needs to replaced. 
             Delegate that generates the replacement parameter's type. 
            
            A new ParameterVar instance created of  .
            
            
            This method should be used only to replace external enum or strong spatial parameters with a counterpart whose
            type is the underlying type of the enum type, or the union type contating the strong spatial type of the
            
            .
            The operation invalidates the . After the operation has completed
            the ) is invalidated internally and should no longer be used.
            
        
        
            
            Creates a variable for the given enum parameter variable and replaces it in parameter map.
            
             Enum parameter variable that needs to replaced. 
            
            A new ParameterVar instance created of  .
            
            
            This method should be used only to replace external enum parameter with a counterpart whose
            type is the underlying type of the enum type of the .
            The operation invalidates the . After the operation has completed
            the ) is invalidated internally and should no longer be used.
            
        
        
            
            Creates a variable for the given spatial parameter variable and replaces it in parameter map.
            
             Spatial parameter variable that needs to replaced. 
            
            A new ParameterVar instance created of  .
            
            
            This method should be used only to replace external strong spatial parameter with a counterpart whose
            type is the appropriate union type for .
            The operation invalidates the . After the operation has completed
            the ) is invalidated internally and should no longer be used.
            
        
        
            
            Creates a new var for a table column
            
             The table instance that produces the column 
             column metadata 
             A new ColumnVar instance that references the specified column in the given table 
        
        
            
            Creates a computed var (ie) a variable that is computed by an expression
            
             The type of the result produced by the expression that defines the variable 
             A new ComputedVar instance with the specified result type 
        
        
            
            Creates a SetOp Var of
            
             Datatype of the Var 
             A new SetOp Var with the specified result type 
        
        
            
            Creates a Node with zero children
            
             The operator that the Node should reference 
             A new Node with zero children that references the specified Op 
        
        
            
            Creates a node with a single child Node
            
             The operator that the Node should reference 
             The single child Node 
             A new Node with the specified child Node, that references the specified Op 
        
        
            
            Creates a node with two child Nodes
            
             The operator that the Node should reference 
             The first child Node 
             the second child Node 
             A new Node with the specified child Nodes, that references the specified Op 
        
        
            
            Creates a node with 3 child Nodes
            
             The operator that the Node should reference 
             The first child Node 
             The second child Node 
             The third child Node 
             A new Node with the specified child Nodes, that references the specified Op 
        
        
            
            Create a Node with the specified list of child Nodes
            
             The operator that the Node should reference 
             The list of child Nodes 
             A new Node with the specified child nodes, that references the specified Op 
        
        
            
            Create a Node with the specified list of child Nodes
            
             The operator that the Node should reference 
             The list of child Nodes 
             A new Node with the specified child nodes, that references the specified Op 
        
        
            
            Creates a new ConstantOp
            
             The type of the constant value 
             The constant value (may be null) 
             A new ConstantOp with the specified type and value 
        
        
            
            Create an "internal" constantOp - only for use by the plan compiler to
            represent internally generated constants.
            User constants in the query should never get into this function
            
             datatype of the constant 
             constant value 
             a new "internal" constant op that represents the constant 
        
        
            
            An internal constant that serves as a null sentinel, i.e. it is only ever used
            to be checked whether it is null
            
        
        
            
            An "internal" null constant
            
             datatype of the null constant 
             a new "internal" null constant op 
        
        
            
            Create a constant predicateOp
            
             value of the constant predicate 
        
        
            
            Create a constant predicate with value=true
            
        
        
            
            Create a constant predicateOp with the value false
            
        
        
            
            Creates a new FunctionOp
            
             EdmFunction metadata that represents the function that is invoked by the Op 
             A new FunctionOp that references the specified function metadata 
        
        
            
            Creates a new TreatOp
            
             Type metadata that specifies the type that the child of the treat node should be treated as 
             A new TreatOp that references the specified type metadata 
        
        
            
            Create a "dummy" treatOp (i.e.) we can actually ignore the treatOp.
            
        
        
            
            Creates a new IsOfOp, which tests if the argument is of the specified type or a promotable type
            
             Type metadata that specifies the type with which the type of the argument should be compared 
             A new IsOfOp that references the specified type metadata 
        
        
            
            Creates a new IsOfOp, which tests if the argument is of the specified type (and only the specified type)
            
             Type metadata that specifies the type with which the type of the argument should be compared 
             A new IsOfOp that references the specified type metadata 
        
        
            
            Creates a new CastOp
            
             Type metadata that represents the type to which the argument should be cast 
             A new CastOp that references the specified type metadata 
        
        
            
            Creates a new SoftCastOp and casts the input to the desired type.
            The caller is expected to determine if the cast is necessary or not
            
             Type metadata that represents the type to which the argument should be cast 
             A new CastOp that references the specified type metadata 
        
        
            
            Creates a new ComparisonOp of the specified type
            
             An OpType that specifies one of the valid comparison OpTypes: EQ, GT, GE, NE, LT, LE 
             A new ComparisonOp of the specified comparison OpType 
        
        
            
            Creates a new LikeOp
            
             The new LikeOp 
        
        
            
            Creates a new ConditionalOp of the specified type
            
             An OpType that specifies one of the valid condition operations: And, Or, Not, IsNull 
             A new ConditionalOp with the specified conditional OpType 
        
        
            
            Creates a new CaseOp
            
             The result type of the CaseOp 
             A new CaseOp with the specified result type 
        
        
            
            Creates a new AggregateOp
            
             EdmFunction metadata that specifies the aggregate function 
             Indicates whether or not the aggregate is a distinct aggregate 
             A new AggregateOp with the specified function metadata and distinct property 
        
        
            
            Creates a named type constructor
            
             Type metadata that specifies the type of the instance to construct 
             A new NewInstanceOp with the specified result type 
        
        
            
            Build out a new NewEntityOp constructing the entity  scoped to the
            
            .
            
        
        
            
            Build out a new NewEntityOp constructing the uscoped entity .
            
        
        
            
            Create a discriminated named type constructor
            
             Type metadata that specifies the type of the instance to construct 
             Mapping information including discriminator values 
             the entityset that this instance belongs to 
             list of rel properties that have corresponding values 
             A new DiscriminatedNewInstanceOp with the specified result type and discrimination behavior 
        
        
            
            Creates a multiset constructor
            
             Type metadata that specifies the type of the multiset to construct 
             A new NewMultiSetOp with the specified result type 
        
        
            
            Creates a record constructor
            
             Type metadata that specifies that record type to construct 
             A new NewRecordOp with the specified result type 
        
        
            
            Creates a record constructor
            
             Type metadata that specifies that record type to construct 
             A new NewRecordOp with the specified result type 
        
        
            
            A variant of the above method to create a NewRecordOp. An additional
            argument - fields - is supplied, and the semantics is that only these fields
            have any values specified as part of the Node. All other fields are
            considered to be null.
            
        
        
            
            Creates a new VarRefOp
            
             The variable to reference 
             A new VarRefOp that references the specified variable 
        
        
            
            Creates a new ArithmeticOp of the specified type
            
             An OpType that specifies one of the valid arithmetic operations: Plus, Minus, Multiply, Divide, Modulo, UnaryMinus 
             Type metadata that specifies the result type of the arithmetic operation 
             A new ArithmeticOp of the specified arithmetic OpType 
        
        
            
            Creates a new PropertyOp
            
             EdmProperty metadata that specifies the property 
             A new PropertyOp that references the specified property metadata 
        
        
            
            Create a "relationship" propertyOp
            
             the relationship property 
             a RelPropertyOp 
        
        
            
            Creates a new RefOp
            
             The EntitySet to which the ref refers 
             The result type of the RefOp 
             A new RefOp that references the specified EntitySet and has the specified result type 
        
        
            
            Creates a new ExistsOp
            
             A new ExistsOp 
        
        
            
            Creates a new ElementOp
            
             Type metadata that specifies the result (element) type 
             A new ElementOp with the specified result type 
        
        
            
            Creates a new GetEntityRefOp: a ref-extractor (from an entity instance) Op
            
             Type metadata that specifies the result type 
             A new GetEntityKeyOp with the specified result type 
        
        
            
            Creates a new GetRefKeyOp: a key-extractor (from a ref instance) Op
            
             Type metadata that specifies the result type 
             A new GetRefKeyOp with the specified result type 
        
        
            
            Creates a new CollectOp
            
             Type metadata that specifies the result type of the Nest operation 
             A new NestOp with the specified result type 
        
        
            
            Create a DerefOp
            
             Entity type of the target entity 
             a DerefOp 
        
        
            
            Create a new NavigateOp node
            
             the output type of the navigateOp 
             the relationship property 
             the navigateOp 
        
        
            
            Creates a VarDefListOp
            
             A new VarDefListOp 
        
        
            
            Creates a VarDefOp (for a computed var)
            
             The computed var 
             A new VarDefOp that references the computed var 
        
        
            
            Create a VarDefOp and the associated node for an expression.
            We create a computedVar first - of the same type as the expression, and
            then create a VarDefOp for the computed Var. Finally, we create a Node for
            the VarDefOp
            
             
             new Var produced 
        
        
            
            Creates a VarDefListOp with a single child - a VarDefOp created as in the function
            above.
            
             
             the computed Var produced 
        
        
            
            Creates a new ScanTableOp
            
             A Table metadata instance that specifies the table that should be scanned 
             A new ScanTableOp that references a new Table instance based on the specified table metadata 
        
        
            
            A variant of the above
            
             The table instance 
             a new ScanTableOp 
        
        
            
            Creates an instance of a ScanViewOp
            
             the table instance 
             a new ScanViewOp 
        
        
            
            Creates an instance of a ScanViewOp
            
             the table metadata 
             a new ScanViewOp 
        
        
            
            Creates a new UnnestOp, which creates a streaming result from a scalar (non-RelOp) value
            
             The Var that indicates the value to unnest 
             A new UnnestOp that targets the specified Var 
        
        
            
            Creates a new UnnestOp - a variant of the above with the Table supplied
            
             the unnest Var 
             the table instance 
             a new UnnestOp 
        
        
            
            Creates a new FilterOp
            
             A new FilterOp 
        
        
            
            Creates a new ProjectOp
            
             A VarSet that specifies the Vars produced by the projection 
             A new ProjectOp with the specified output VarSet 
        
        
            
            A variant of the above where the ProjectOp produces exactly one var
            
        
        
            
            Creates a new InnerJoinOp
            
             A new InnerJoinOp 
        
        
            
            Creates a new LeftOuterJoinOp
            
             A new LeftOuterJoinOp 
        
        
            
            Creates a new FullOuterJoinOp
            
             A new FullOuterJoinOp 
        
        
            
            Creates a new CrossJoinOp
            
             A new CrossJoinOp 
        
        
            
            Creates a new CrossApplyOp
            
             A new CrossApplyOp 
        
        
            
            Creates a new OuterApplyOp
            
             A new OuterApplyOp 
        
        
            
            Creates a new SortKey with the specified var, order and collation
            
             The variable to sort on 
             The sort order (true for ascending, false for descending) 
             The sort collation 
             A new SortKey with the specified var, order and collation 
        
        
            
            Creates a new SortKey with the specified var and order
            
             The variable to sort on 
             The sort order (true for ascending, false for descending) 
             A new SortKey with the specified var and order 
        
        
            
            Creates a new SortKey with the specified var
            
             The variable to sort on 
             A new SortKey with the specified var 
        
        
            
            Creates a new SortOp
            
             The list of SortKeys that define the sort var, order and collation for each sort key 
             A new SortOp with the specified sort keys 
        
        
            
            Creates a new ConstrainedSortOp
            
             The list of SortKeys that define the sort var, order and collation for each sort key 
             A new ConstrainedSortOp with the specified sort keys and a default WithTies value of false 
        
        
            
            Creates a new ConstrainedSortOp
            
             The list of SortKeys that define the sort var, order and collation for each sort key 
             The value to use for the WithTies property of the new ConstrainedSortOp 
             A new ConstrainedSortOp with the specified sort keys and WithTies value 
        
        
            
            Creates a new GroupByOp
            
             A VarSet that specifies the Key variables produced by the GroupByOp 
             A VarSet that specifies all (Key and Aggregate) variables produced by the GroupByOp 
             A new GroupByOp with the specified key and output VarSets 
        
        
            
            Creates a new GroupByIntoOp
            
             A VarSet that specifies the Key variables produced by the GroupByOp 
             A VarSet that specifies all (Key and Aggregate) variables produced by the GroupByOp 
             A VarSet that specifies the vars from the input that represent the real grouping input 
             A new GroupByOp with the specified key and output VarSets 
        
        
            
            Creates a new DistinctOp
            
             list of key vars 
             A new DistinctOp 
        
        
            
            An overload of the above - where the distinct has exactly one key
            
        
        
            
            Creates a new UnionAllOp
            
             Mappings from the Output Vars to the Vars produced by the left argument 
             Mappings from the Output Vars to the Vars produced by the right argument 
             A UnionAllOp that references the specified left and right Vars 
        
        
            
            Creates a new UnionAllOp, with a branch descriminator.
            
             Mappings from the Output Vars to the Vars produced by the left argument 
             Mappings from the Output Vars to the Vars produced by the right argument 
             Var that contains the branch discrimination value (may be null until key pullup occurs) 
             A UnionAllOp that references the specified left and right Vars 
        
        
            
            Creates a new IntersectOp
            
             Mappings from the Output Vars to the Vars produced by the left argument 
             Mappings from the Output Vars to the Vars produced by the right argument 
             An IntersectOp that references the specified left and right Vars 
        
        
            
            Creates a new ExceptOp
            
             Mappings from the Output Vars to the Vars produced by the left argument 
             Mappings from the Output Vars to the Vars produced by the right argument 
             An ExceptOp that references the specified left and right Vars 
        
        
            
            Create a single-row-op (the relop analog of Element)
            
        
        
            
            Create a SingleRowTableOp - a table with exactly one row (and no columns)
            
        
        
            
            Create a PhysicalProjectOp - with a columnMap describing the output
            
             list of output vars 
             columnmap describing the output element 
        
        
            
            Create a physicalProjectOp - with a single column output
            
             the output element 
        
        
            
            Another overload - with an additional discriminatorValue.
            Should this be a subtype instead?
            
             the collectionVar 
             column map for the collection element 
             elementVars with any nested collections pulled up 
             keys specific to this collection 
             sort keys specific to this collecion 
             discriminator value for this collection (under the current nestOp) 
             a new CollectionInfo instance 
        
        
            
            Create a singleStreamNestOp
            
             keys for the nest operation 
             list of prefix sort keys 
             list of postfix sort keys 
             List of outputVars 
             CollectionInfo for each collection 
             Var describing the discriminator 
        
        
            
            Create a MultiStreamNestOp
            
             list of prefix sort keys 
             List of outputVars 
             CollectionInfo for each collection element 
        
        
            
            Get auxilliary information for a Node
            
             the node 
             node info for this node 
        
        
            
            Get extended node information for a RelOpNode
            
             the node 
             extended node info for this node 
        
        
            
            Recompute the nodeinfo for a node, but only if has already been computed
            
             Node in question 
        
        
            
            Pulls up keys if necessary and gets the key information for a Node
            
             node 
             key information 
        
        
            
            Check to see if two types are considered "equal" for the purposes
            of the plan compiler.
            Two types are considered to be equal if their "identities" are equal.
            
             true, if the types are "equal" 
        
        
            
            Check to see if two types are considered "equal" for the purposes
            of the plan compiler
            
             true, if the types are "equal" 
        
        
            
            Builds out a UNION-ALL ladder from a sequence of node,var pairs.
            Assumption: Each node produces exactly one Var
            If the input sequence has zero elements, we return null
            If the input sequence has one element, we return that single element
            Otherwise, we build out a UnionAll ladder from each of the inputs. If the input sequence was {A,B,C,D},
            we build up a union-all ladder that looks like
            (((A UA B) UA C) UA D)
            
             list of input nodes - one for each branch 
             list of input vars - N for each branch 
             the resulting union-all subtree 
             the output vars from the union-all subtree 
        
        
            
            A simplified version of the method above - each branch can produce only one var
            
        
        
            
            Build a projectOp tree over the input.
            This function builds a projectOp tree over the input. The Outputs (vars) of the project are the
            list of vars from the input (inputVars), plus one computed Var for each of the computed expressions
            (computedExpressions)
            
             the input relop to the project 
             List of vars from the input that need to be projected 
             list (possibly empty) of any computed expressions 
        
        
            
            A "simpler" builder method for ProjectOp. The assumption is that the only output is the
            (var corresponding to) the computedExpression. None of the Vars of the "input" are projected out
            The single output Var is returned in the "outputVar" parameter
            
             the input relop 
             the computed expression 
             (output) the computed var corresponding to the computed expression 
             the new project subtree node 
        
        
            
            Build the equivalent of an OfTypeExpression over the input (ie) produce the set of values from the
            input that are of the desired type (exactly of the desired type, if the "includeSubtypes" parameter is false).
            Further more, "update" the result element type to be the desired type.
            We accomplish this by first building a FilterOp with an IsOf (or an IsOfOnly) predicate for the desired
            type. We then build out a ProjectOp over the FilterOp, where we introduce a "Fake" TreatOp over the input
            element to cast it to the right type. The "Fake" TreatOp is only there for "compile-time" typing reasons,
            and will be ignored in the rest of the plan compiler
            
             the input collection 
             the single Var produced by the input collection 
             the desired element type 
             do we include subtypes of the desired element type 
             the result subtree 
             the single Var produced by the result subtree 
        
        
            
            Builds out a ProjectOp over the input that introduces a "Fake" TreatOp over the input Var to cast it to the desired type
            The "Fake" TreatOp is only there for "compile-time" typing reasons, and will be ignored in the rest of the plan compiler.
            
             the input collection 
             the single Var produced by the input collection 
             the desired element type 
             the single Var produced by the result subtree 
             the result subtree 
        
        
            
            Build a comparisonOp over the input arguments. Build SoftCasts over the inputs, if we need
            to.
            
             the comparison optype 
             Arg 0 
             Arg 1 
             the resulting comparison tree 
        
        
            
            Build up a CollectOp over a relop tree
            
             the relop tree 
             the single output var from the relop tree 
        
        
            
            Mark this rel-property as "referenced" in the current query, if the target
            end has multiplicity of one (or zero_or_one)
            
             the rel-property 
        
        
            
            Is this rel-property referenced in the query so far
            
             the rel-property 
             true, if the rel property was referenced in the query 
        
        
            
            Gets the metadata workspace associated with this command
            
        
        
            
            Gets/sets the root node of the query
            
        
        
            
            Returns the next value for a UnionAll BranchDiscriminator.
            
        
        
            
            Returns the next value for a node id, without incrementing it.
            
        
        
            
            Helper routine to get the metadata representation for the bool type
            
        
        
            
            Helper routine to get the metadata representation of the int type
            
        
        
            
            Helper routine to get the metadata representation of the string type
            
        
        
            
            All vars in the query
            
        
        
            
            The set of referenced rel properties in the current query
            
        
        
            
            A dump module for the Iqt
            
        
        
            
            Driver method to dump the entire tree
            
        
        
            
            Driver method to dump the a subtree of a tree
            
        
        
            
            Private constructor
            
        
        
            
            Common CollectionColumnMap code
            
        
        
            
            Common code to produce an the attributes for the dumper's XML node
            
        
        
            
            ComplexTypeColumnMap
            
        
        
            
            DiscriminatedCollectionColumnMap
            
        
        
            
            EntityColumnMap
            
        
        
            
            PolymorphicColumnMap
            
        
        
            
            MultipleDiscriminatorPolymorphicColumnMap
            
        
        
            
            RecordColumnMap
            
        
        
            
            RefColumnMap
            
        
        
            
            SimpleCollectionColumnMap
            
        
        
            
            SimpleColumnMap
            
        
        
            
            SimpleColumnMap
            
        
        
            
            DiscriminatedEntityIdentity
            
        
        
            
            SimpleEntityIdentity
            
        
        
            
            Describes user-defined discriminator metadata (e.g. for a basic TPH mapping). Encapsulates
            relevant data from System.Data.Entity.Core.Mapping.ViewGenerabetion.DiscriminatorMap (that is to say,
            data relevant to the PlanCompiler). This separate class accomplishes two things:
            1. Maintain separation of ViewGen and PlanCompiler
            2. Avoid holding references to CQT expressions in ITree ops (which the ViewGen.DiscriminatorMap
            holds a few CQT references)
            
        
        
            
            Returns the type id for the given entity type, or null if non exists.
            
        
        
            
            Maps from discriminator value to type.
            
        
        
            
            Gets property containing discriminator value.
            
        
        
            
            All properties for the type hierarchy.
            
        
        
            
            Represents one instance of a table. Contains the table metadata
            
        
        
            
            String form - for debugging
            
        
        
            
            Metadata for the table instance
            
        
        
            
            List of column references
            
        
        
            
            Get the list of all referenced columns.
            
        
        
            
            List of keys
            
        
        
            
            (internal) id for this table instance
            
        
        
            
            Counts the number of nodes in a tree
            
        
        
            
            Public entry point - Calculates the nubmer of nodes in the given subTree
            
        
        
            
            Common processing for all node types
            Count = 1 (self) + count of children
            
        
        
            
            A Node describes a node in a query tree. Each node has an operator, and
            a list of zero or more children of that operator.
            
        
        
            
            Basic constructor.
            NEVER call this routine directly - you should always use the Command.CreateNode
            factory methods.
            
             id for the node 
             The operator 
             List of child nodes 
        
        
            
            This routine is only used for building up rule patterns.
            NEVER use this routine for building up nodes in a user command tree.
            
        
        
            
            Is this subtree equivalent to another subtree
            
        
        
            
            Get the nodeInfo for a node. Initializes it, if it has not yet been initialized
            
             Current command object 
             NodeInfo for this node 
        
        
            
            Gets the "extended" nodeinfo for a node; if it has not yet been initialized, then it will be
            
             current command object 
             extended nodeinfo for this node 
        
        
            
            Get the list of children
            
        
        
            
            Gets or sets the node's operator
            
        
        
            
            Simpler (?) getter/setter routines
            
        
        
            
            Do I have a zeroth child?
            
        
        
            
            Get/set first child
            
        
        
            
            Do I have a child1?
            
        
        
            
            get/set second child
            
        
        
            
            get/set second child
            
        
        
            
            Do I have a child2 (third child really)
            
        
        
            
            Do I have a child3 (fourth child really)
            
        
        
            
            Has the node info been initialized, i.e. previously computed
            
        
        
            
            All rule pattern operators - Leaf, Tree
            
        
        
            
            Default constructor
            
             kind of Op 
        
        
            
            RulePatternOp
            
        
        
            
            Represents a multi-stream nest operation. The first input represents the
            container row, while all the other inputs represent collections
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            Represents a table with a single row
            
        
        
            
            Singleton instance
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            0 children
            
        
        
            
            A helper class for all rel-properties
            
        
        
            
            Add the rel property induced by the specified relationship, (if the target
            end has a multiplicity of one)
            We only keep track of rel-properties that are "interesting"
            
             the association relationship 
             source end of the relationship traversal 
             target end of the traversal 
        
        
            
            Add any rel properties that are induced by the supplied relationship
            
             the relationship 
        
        
            
            Get the rel properties declared by this type (and *not* by any of its subtypes)
            
             the entity type 
             set of rel properties declared for this type 
        
        
            
            Get the rel-properties of this entity and its supertypes (starting from the root)
            
             the entity type 
             set of rel-properties for this entity type (and its supertypes) 
        
        
            
            LeafOp - matches any subtree
            
        
        
            
            The singleton instance of this class
            
        
        
            
            Niladic constructor
            
        
        
            
            0 children
            
        
        
            
            The RuleProcessor helps apply a set of rules to a query tree
            
        
        
            
            A lookup table for rules.
            The lookup table is an array indexed by OpType and each entry has a list of rules.
            
        
        
            
            Initializes a new RuleProcessor
            
        
        
            
            Apply rules to the current subtree in a bottom-up fashion.
            
             Current rule processing context 
             The look-up table with the rules to be applied 
             Current subtree 
             Parent node 
             Index of this child within the parent 
             the result of the transformation 
        
        
            
            Apply a set of rules to the subtree
            
             Rule processing context 
             
             current subtree 
             transformed subtree 
        
        
            
            Navigate a relationship, and get the reference(s) of the target end
            
        
        
            
            Pattern for transformation rules
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - entity instance
            
        
        
            
            The rel property that describes this nvaigation
            
        
        
            
            The relationship we're traversing
            
        
        
            
            The starting point of the traversal
            
        
        
            
            The end-point of the traversal
            
        
        
            
            A definition of a variable
            
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            1 child - the defining expression
            
        
        
            
            The Var being defined
            
        
        
            
            An ordered list of Vars. Use this when you need an ordering.
            
        
        
            
            Trivial constructor
            
        
        
            
            Not so trivial constructor
            
        
        
            
            Debugging support
            provide a string representation for debugging.
            
             
        
        
            
            A VarRefColumnMap is our intermediate representation of a ColumnMap.
            Eventually, this gets translated into a regular ColumnMap - during the CodeGen phase
            
        
        
            
            Simple constructor
            
             datatype of this Var 
             the name of the column 
             the var producing the value for this column 
        
        
            
            Visitor Design Pattern
            
        
        
            
            Visitor Design Pattern
            
        
        
            
            Debugging support
            
        
        
            
            Get the Var that produces this column's value
            
        
        
            
            A reference to an existing variable
            
        
        
            
            Singleton used for pattern matching
            
        
        
            
            Two VarRefOps are equivalent, if they reference the same Var
            
             the other Op 
             true, if these are equivalent 
        
        
            
            Visitor pattern method
            
             The BasicOpVisitor that is visiting this Op 
             The Node that references this Op 
        
        
            
            Visitor pattern method for visitors with a return value
            
             The visitor 
             The node in question 
             An instance of TResultType 
        
        
            
            0 children
            
        
        
            
            The Var that this Op is referencing
            
        
        
            
            Helps map one variable to the next.
            
        
        
            
            Types of variable
            
        
        
            
            a parameter
            
        
        
            
            Column of a table
            
        
        
            
            A Computed var
            
        
        
            
            Var for SetOps (Union, Intersect, Except)
            
        
        
            
            NotValid
            
        
        
            
            A VarVec is a compressed representation of a set of variables - with no duplicates
            and no ordering
            A VarVec should be used in many places where we expect a number of vars to be
            passed around; and we don't care particularly about the ordering of the vars
            This is obviously not suitable for representing sort keys, but is still
            reasonable for representing group by keys, and a variety of others.
            
        
        
            
            Computes (this Minus other) by performing (this And (Not(other)))
            A temp VarVec is used and released at the end of the operation
            
        
        
            
            Does this have a non-zero overlap with the other vec
            
        
        
            
            Does this Vec include every var in the other vec?
            Written this way deliberately under the assumption that "other"
            is a relatively small vec
            
        
        
            
            The enumerator pattern
            
        
        
            
            Walk through the input varVec, replace any vars that have been "renamed" based
            on the input varMap, and return the new VarVec
            
             dictionary of renamed vars 
             a new VarVec 
        
        
            
            Debugging support
            provide a string representation for debugging.
            
        
        
            
            Create a clone of this vec
            
        
        
            
            Number of vars in this set
            
        
        
            
            Is this Vec empty?
            
        
        
            
            Get me the first var that is set
            
        
        
            
            A VarVec enumerator is a specialized enumerator for a VarVec.
            
        
        
            
            Constructs a new enumerator for the specified Vec
            
        
        
            
            Initialize the enumerator to enumerate over the supplied Vec
            
        
        
            
            Move to the next position
            
        
        
            
            Reset enumerator to start off again
            
        
        
            
            Dispose of the current enumerator - return it to the Command
            
        
        
            
            Get the Var at the current position
            
        
        
            
            The Aggregate Pushdown feature tries to identify function aggregates defined over a
            group aggregate and push their definitions in the group by into node corresponding to
            the group aggregate.
            
        
        
            
            Apply Aggregate Pushdown over the tree in the given plan complier state.
            
        
        
            
            The main driver
            
        
        
            
            Try to push the given function aggregate candidate to the corresponding group into node.
            The candidate can be pushed if all ancestors of the group into node up to the least common
            ancestor between the group into node and the function aggregate have one of the following node op types:
            Project
            Filter
            ConstraintSortOp
            
        
        
            
            Check whether all nodes in the given list of nodes are of types
            that we know how to propagate an aggregate through
            
        
        
            
            Finds the paths from each of node1 and node2 to their least common ancestor
            
        
        
            
            Finds all ancestors of the given node.
            
             An ordered list of the all the ancestors of the given node starting from the immediate parent to the root of the tree 
        
        
            
            Utility class to gather helper methods used by more than one class in the Aggregate Pushdown feature.
            
        
        
            
            Determines whether the given node is a VarRef over the given var
            
        
        
            
            A reference to "all" properties of a type
            
        
        
            
            A PropertyRef class encapsulates a reference to one or more properties of
            a complex instance - a record type, a complex type or an entity type.
            A PropertyRef may be of the following kinds.
            - a simple property reference (just a reference to a simple property)
            - a typeid reference - applies only to entitytype and complextypes
            - an entitysetid reference - applies only to ref and entity types
            - a nested property reference (a reference to a nested property - a.b)
            - an "all" property reference (all properties)
            
        
        
            
            Create a nested property ref, with "p" as the prefix.
            The best way to think of this function as follows.
            Consider a type T where "this" describes a property X on T. Now
            consider a new type S, where "p" is a property of S and is of type T.
            This function creates a PropertyRef that describes the same property X
            from S.p instead
            
             the property to prefix with 
             the nested property reference 
        
        
            
            Create a nested property ref for a simple property. Delegates to the function
            above
            
             the simple property 
             a nestedPropertyRef 
        
        
            
            Creates a nested property ref for a rel-property. Delegates to the function above
            
             the rel-property 
             a nested property ref 
        
        
            
            The tostring method for easy debuggability
            
        
        
            
            Get the singleton instance
            
        
        
            
            Create a nested property ref, with "p" as the prefix
            
             the property to prefix with 
             the nested property reference 
        
        
            
            Transformation rules for ApplyOps - CrossApply, OuterApply
            
        
        
            
            Convert CrossApply(X, Filter(Y, p)) => InnerJoin(X, Y, p)
            OuterApply(X, Filter(Y, p)) => LeftOuterJoin(X, Y, p)
            if "Y" has no external references to X
            
             Rule processing context 
             Current ApplyOp 
             transformed subtree 
             Transformation status 
        
        
            
            Convert OuterApply(X, Project(Filter(Y, p), constant)) =>
            LeftOuterJoin(X, Project(Y, constant), p)
            if "Y" has no external references to X
            In an ideal world, we would be able to push the Project below the Filter,
            and then have the normal ApplyOverFilter rule handle this - but that causes us
            problems because we always try to pull up ProjectOp's as high as possible. Hence,
            the special case for this rule
            
             Rule processing context 
             Current ApplyOp 
             transformed subtree 
             Transformation status 
        
        
            
            Converts a CrossApply(X, Project(Y, ...)) => Project(CrossApply(X, Y), ...)
            where the projectVars are simply pulled up
            
             RuleProcessing context 
             The ApplyOp subtree 
             transformed subtree 
             Transfomation status 
        
        
            
            Converts a
            OuterApply(X, Project(Y, ...))
            =>
            Project(OuterApply(X, Project(Y, ...)), ...) or
            Project(OuterApply(X, Y), ...)
            The second (simpler) form is used if a "sentinel" var can be located (ie)
            some Var of Y that is guaranteed to be non-null. Otherwise, we create a
            dummy ProjectNode as the right child of the Apply - which
            simply projects out all the vars of the Y, and adds on a constant (say "1"). This
            constant is now treated as the sentinel var
            Then the existing ProjectOp is pulled up above the the outer-apply, but all the locally defined
            Vars have their defining expressions now expressed as
            case when sentinelVar is null then null else oldDefiningExpr end
            where oldDefiningExpr represents the original defining expression
            This allows us to get nulls for the appropriate columns when necessary.
            Special cases.
            * If the oldDefiningExpr is itself an internal constant equivalent to the null sentinel ("1"),
            we simply project a ref to the null sentinel, no need for cast
            * If the ProjectOp contained exactly one locally defined Var, and it was a constant, then
            we simply return - we will be looping endlessly otherwise
            * If the ProjectOp contained no local definitions, then we don't need to create the
            dummy projectOp - we can simply pull up the Project
            * If any of the defining expressions of the local definitions was simply a VarRefOp
            referencing a Var that was defined by Y, then there is no need to add the case
            expression for that.
            
             RuleProcessing context 
             The ApplyOp subtree 
             transformed subtree 
             Transfomation status 
        
        
            
            Converts a CrossApply(X,Y) => CrossJoin(X,Y)
            OuterApply(X,Y) => LeftOuterJoin(X, Y, true)
            only if Y has no external references to X
            
             Rule processing context 
             The ApplyOp subtree 
             transformed subtree 
             the transformation status 
        
        
            
            Converts a Apply(X,Y) => Project(X, Y1), where Y1 is a scalar subquery version of Y
            The transformation is valid only if all of the following conditions hold:
            1. Y produces only one output
            2. Y produces at most one row
            3. Y produces at least one row, or the Apply operator in question is an OuterApply
            
             Rule processing context 
             The ApplyOp subtree 
             transformed subtree 
             the transformation status 
        
        
            
            Determines whether an applyNode can be rewritten into a projection with a scalar subquery.
            It can be done if all of the following conditions hold:
            1. The right child or the apply has only one output
            2. The right child of the apply produces at most one row
            3. The right child of the apply produces at least one row, or the Apply operator in question is an OuterApply
            
        
        
            
            Convert a CrossApply(X, LeftOuterJoin(SingleRowTable, Y, on true))
            into just OuterApply(X, Y)
            
             rule processing context 
             the apply node 
             transformed subtree 
             transformation status 
        
        
            
            A visitor that calculates the number of output columns for a subree
            with a given root
            
        
        
            
            Calculates the number of output columns for the subree
            rooted at the given node
            
        
        
            
            Visitor for children. Simply visit all children,
            and sum the number of their outputs.
            
             Current node 
        
        
            
            A default processor for any node.
            Returns the sum of the children outputs
            
        
        
            
            The number of outputs is same as for any of the inputs
            
        
        
            
            Distinct
            
        
        
            
            FilterOp
            
        
        
            
            GroupByOp
            
        
        
            
            ProjectOp
            
        
        
            
            ScanTableOp
            
        
        
            
            SingleRowTableOp
            
        
        
            
            Same as the input
            
        
        
            
            A utility class that remaps a given var at its definition and also remaps all its references.
            The given var is remapped to an arbitrary new var.
            If the var is defined by a ScanTable, all the vars defined by that table and all their references
            are remapped as well.
            
        
        
            
            The VarRemapper is a utility class that can be used to "remap" Var references
            in a node, or a subtree.
            
        
        
            
            Internal constructor
            
             Current iqt command 
        
        
            
            Internal constructor
            
             Current iqt command 
             Var map to be used 
        
        
            
            Add a mapping for "oldVar" - when the replace methods are invoked, they
            will replace all references to "oldVar" by "newVar"
            
             var to replace 
             the replacement var 
        
        
            
            Update vars in just this node (and not the entire subtree)
            Does *not* recompute the nodeinfo - there are at least some consumers of this
            function that do not want the recomputation - transformation rules, for example
            
             current node 
        
        
            
            Update vars in this subtree. Recompute the nodeinfo along the way
            
             subtree to "remap" 
        
        
            
            Produce a a new remapped varList
            
             remapped varList 
        
        
            
            Remap the given varList using the given varMap
            
        
        
            
            Get the mapping for a Var - returns the var itself, mapping was found
            
        
        
            
            Default visitor for a node - does not visit the children
            The reason we have this method is because the default VisitDefault
            actually visits the children, and we don't want to do that
            
        
        
            
            Public entry point.
            Remaps the subree rooted at the given tree
            
        
        
            
            Update vars in this subtree. Recompute the nodeinfo along the way
            Unlike the base implementation, we want to visit the childrent, even if no vars are in the
            remapping dictionary.
            
        
        
            
            If the node defines the node that needs to be remapped,
            it remaps it to a new var.
            
        
        
            
            If the columnVars defined by the table contain the var that needs to be remapped
            all the column vars produces by the table are remaped to new vars.
            
        
        
            
            The var that needs to be remapped may be produced by a set op,
            in which case the varmaps need to be updated too.
            
        
        
            
            Replaces the entry in the varMap in which m_oldVar is a key
            with an entry in which newVAr is the key and the value remains the same.
            
        
        
            
            Additional information for a JoinNode
            AugmentedJoinNode - represents all joins (cross-joins, leftouter, fullouter
            and innerjoins). This class represents a number of column equijoin conditions
            via the LeftVars and RightVars properties, and also keeps track of additional
            (non-equijoin column) join predicates
            
        
        
            
            Additional information for a node.
            AugmentedNode - this is the base class for all annotations. This class
            wraps a Node, an id for the node (where the "id" is assigned in DFS order),
            and a list of children. All Nodes that are neither joins, nor scanTables
            are represented by this class
            
        
        
            
            basic constructor
            
             Id for this node 
             current node 
        
        
            
            Yet another constructor
            
             Id for this node 
             current node 
             list of children 
        
        
            
            Id of this node
            
        
        
            
            The node
            
        
        
            
            Parent node
            
        
        
            
            List of children
            
        
        
            
            List of directed edges in which:
            - If this is an AugmentedTableNode, it is the "left" table
            - If it is an AugumentedJoinNode, it is the join on which the edge is based
            
        
        
            
            basic constructor
            
             current node id 
             the join node 
             left side of the join (innerJoin, LOJ and FOJ only) 
             right side of the join 
             left-side equijoin vars 
             right-side equijoin vars 
             any remaining predicate 
        
        
            
            Yet another constructor - used for crossjoins
            
             node id 
             current node 
             list of children 
        
        
            
            Non-equijoin predicate
            
        
        
            
            Equijoin columns of the left side
            
        
        
            
            Equijoin columns of the right side
            
        
        
            
            Additional information for a "Table" node
            AugmentedTableNode - the augmentedTableNode is a subclass of AugmentedNode,
            and represents a ScanTable node. In addition to the information above, this
            class keeps track of all join edges that this node participates in,
            whether this table has been eliminated, and finally, how high in the tree
            this node is visible
            
        
        
            
            Basic constructor
            
             node id 
             scan table node 
        
        
            
            The Table
            
        
        
            
            The highest node (id) at which this table is visible
            
        
        
            
            Has this table been eliminated
            
        
        
            
            The replacement table (if any) for this table
            
        
        
            
            New location for this table
            
        
        
            
            Has this table "moved" ?
            
        
        
            
            Get the list of nullable columns (that require special handling)
            
        
        
            
            This involves
            * Converting the ITree into a set of ProviderCommandInfo objects
            * Creating a column map to enable result assembly
            Currently, we only produce a single ITree, and correspondingly, the
            following steps are trivial
            
             current compiler state 
             CQTs for each store command 
             column map to help in result assembly 
        
        
            
            The real driver. This routine walks the tree, converts each subcommand
            into a CTree, and converts the columnmap into a real column map.
            Finally, it produces a "real" plan that can be used by the bridge execution, and
            returns this plan
            The root of the tree must be a PhysicalProjectOp. Each child of this Op
            represents a command to be executed, and the ColumnMap of this Op represents
            the eventual columnMap to be used for result assembly
            
             CQTs for store commands 
             column map for result assembly 
        
        
            
            For each subcommand, build up a "location-map" for each top-level var that
            is projected out. This location map will ultimately be used to convert VarRefColumnMap
            into SimpleColumnMap
            
        
        
            
            Represents information about a collection typed Var.
            Each such Var is replaced by a Var with a new "mapped" type - the "mapped" type
            is simply a collection type where the element type has been "mapped"
            
        
        
            
            Information about a Var and its replacement
            
        
        
            
            Gets  for this .
            
        
        
            
            Get the list of new Vars introduced by this VarInfo
            
        
        
            
            Create a CollectionVarInfo
            
        
        
            
            Get the newVar
            
        
        
            
            Gets  for this . Always .
            
        
        
            
            Get the list of all NewVars - just one really
            
        
        
            
            Creates a column map for a column
            
             column datatype 
             column name 
        
        
            
            Create a column map for a complextype column
            
             Type information for the type 
             column name 
             Supertype info if any 
             Dictionary of typeidvalue->column map 
             List of all maps 
        
        
            
            Create a column map for an entitytype column.
            Currently, the key columns are not duplicated (ie) they point into the
            same locations as in the properties list.
            Note: we also don't handle keys that are properties of nested fields
            
             Type information for the type 
             column name 
             supertype information if any 
             Dictionary of typeid->column map information 
             List of all column maps (including those without typeid) 
             should we handle rel-properties? 
        
        
            
            Build up the list of columnmaps for the relproperties.
            Assumption: rel-properties follow after ALL the regular properties of the
            types in the type hierarchy.
            For now, we're simply going to ignore the rel-property columnmaps - we're
            just going to use this function to "drain" the corresponding vars
            
             typeinfo for the entity type 
             should we get rel-properties from our supertype instances 
        
        
            
            Create a column map for the entitysetid column
            
        
        
            
            Creates a column map for a polymorphic type. This method first
            creates column maps for each type that is a subtype of the input type,
            and then creates a dictionary of typeid value -> column
            Finally, a PolymorphicColumnMap is created with these pieces of information
            
             Info about the type 
             column name 
        
        
            
            Create a column map for a record type. Simply iterates through the
            list of fields, and produces a column map for each field
            
             Type information for the record type 
             column name 
        
        
            
            Create a column map for a ref type
            
             Type information for the ref type 
             Name of the column 
             Column map for the ref type 
        
        
            
            Create a simple columnmap - applies only to scalar properties
            (Temporarily, also for collections)
            Simply picks up the next available column in the reader
            
             Column type 
             column name 
             Column map for this column 
        
        
            
            Create a column map for the typeid column
            
        
        
            
            Create a column map for a structural column - ref/complextype/entity/record
            
             Type info for the type 
             column name 
        
        
            
            Build out an EntityIdentity structure - for use by EntityColumnMap and RefColumnMap
            
             the entity type in question 
             column map for the entitysetid column 
             column maps for the keys 
        
        
            
            Delegate pattern that the ColumnMapTranslator uses to find its replacement
            columnMaps.  Given a columnMap, return it's replacement.
            
        
        
            
            ColumnMapTranslator visits the ColumnMap hiearchy and runs the translation delegate
            you specify;  There are some static methods to perform common translations, but you
            can bring your own translation if you desire.
            This visitor only creates new ColumnMap objects when necessary; it attempts to
            replace-in-place, except when that is not possible because the field is not
            writable.
            NOTE: over time, we should be able to modify the ColumnMaps to have more writable
            fields;
            
        
        
            
            Singleton instance for the "public" methods to use;
            
        
        
            
            Constructor; no one should use this.
            
        
        
            
            Returns the var to use in the copy, either the original or the
            replacement.  Note that we will follow the chain of replacements, in
            case the replacement was also replaced.
            
        
        
            
            Bring-Your-Own-Replacement-Delegate method.
            
        
        
            
            Replace VarRefColumnMaps with the specified ColumnMap replacement
            
        
        
            
            Replace VarRefColumnMaps with new VarRefColumnMaps with the specified Var
            
        
        
            
            Replace VarRefColumnMaps with ScalarColumnMaps referring to the command and column
            
        
        
            
            List(ColumnMap)
            
        
        
            
            DiscriminatedEntityIdentity
            
        
        
            
            SimpleEntityIdentity
            
        
        
            
            ComplexTypeColumnMap
            
        
        
            
            DiscriminatedCollectionColumnMap
            
        
        
            
            EntityColumnMap
            
        
        
            
            SimplePolymorphicColumnMap
            
        
        
            
            MultipleDiscriminatorPolymorphicColumnMap
            
        
        
            
            RecordColumnMap
            
        
        
            
            RefColumnMap
            
        
        
            
            ScalarColumnMap
            
        
        
            
            SimpleCollectionColumnMap
            
        
        
            
            VarRefColumnMap
            
        
        
            
            Captures information about a single provider command
            
        
        
            
            Internal constructor for a ProviderCommandInfo object
            
             command tree for the provider command 
        
        
            
            Internal methods to get the command tree
            
        
        
            
            Transformation Rules for ConstrainedSortOp
            
        
        
            
            If the ConstrainedSortOp's input is guaranteed to produce no rows, remove the ConstrainedSortOp completly:
            CSort(EmptySet) => EmptySet
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            Keeps track of all foreign key relationships
            
        
        
            
            Is there a parent child relationship between table1 and table2 ?
            
             parent table ? 
             child table ? 
             list of constraints ? 
             true if there is at least one constraint 
        
        
            
            Load all relationships in this entity container
            
        
        
            
            Is this relationship a binary relationship (ie) does it have exactly 2 end points?
            This should ideally be a method supported by RelationType itself
            
             true, if this is a binary relationship 
        
        
            
            Asserts that the specified DbExpression is a 'RelOp' DbExpression, i.e. it is considered the publisher of one or more (IQT) RelVars.
            
             The DbExpression on which to Assert 
        
        
            
            Update the DbExpression to RelOpInfo map to indicate that the specified DbExpression logically publishes the Vars
            tracked in VarInfoList and that they should be bound under the specified name.
            
             The name under which the Vars tracked in VarInfoList are initially considered bound. This will be a unique name based on what kind of RelOp the specified DbExpression (the publisher) corresponds to 
             The DbExpression that is considered the logical publisher of the Vars tracked in publishedVars 
             A VarInfoList that contains VarInfo instances that track the IQT Vars that are logically published by the specified DbExpression 
             A new RelOpInfo instance that associates the given binding name and published Vars with the specified DbExpression. This RelOpInfo is also added to the DbExpression to RelOpInfo map 
        
        
            
            Removes an entry in the DbExpression to RelOpInfo map, 'consuming' it so that it is not visible higher in the converted CQT.
            
             The DbExpression for which the corresponding RelOpEntry should be removed 
             The RelOpInfo that was removed from the DbExpression to RelOpInfo map 
        
        
            
            Visit a Node that will be used as the basis of a DbExpressionBinding, optionally pushing the
            Vars that are logically published by the DbExpression produced from the Node's Op onto the expression binding scopes stack.
            
             The Node to Visit 
             Indicates whether or not the Vars published by the converted form of the Node's Op should be brought into scope before this method returns 
             The RelOpInfo that corresponds to the given Node, which details the DbExpression it was converted to, the Vars that are logically published by that DbExpression, and the unique name under which those Vars should be bound 
        
        
            
            Converts a list of VarDefOp Nodes into Expressions, builds a map of Var to DbExpression for each
            defined Var, and pushes a new VarDefScope containing the map onto the stack of 'in scope' Vars.
            
             A list of Nodes. Each Node in the list must reference a VarDefOp 
        
        
            
            A convenience method to create a new VarDefScope from the specified VarDefListOp Node
            
             The Node that references the VarDefListOp. Its children will be used as the basis of the new VarDefScope 
        
        
            
            Asserts that the top of the scope stack is actually a VarDefScope, and then pops it to remove the locally defined Vars from scope.
            
        
        
            
            Resolves an IQT Var to a CQT DbExpression.
            There are 3 possible ways for an IQT Var to resolve to a valid reference expressed as a CQT DbExpression:
            1. The specified Var is a valid ParameterVar in the IQT Command being converted:
            This resolves simply to ParameterRefExpression. A Parameter that corresponds to the ParameterVar
            is declared on the CQT DbCommandTree is this has not already been done.
            2. The specified Var is a ComputedVar that is defined locally to the Op being visited. In this case
            The DbExpression produced by converting the VarDefOp that defines the Var is returned.
            3. Otherwise, the Var must have been brought into scope because the DbExpression that logically produces it is
            being used in a DbExpressionBinding which is currently in scope. Each RelOpInfo on the ExpressionBindingScopes stack
            is asked to resolve the Var, if one of the RelOpInfo scopes is tracking the Var it will construct an appropriate combination
            of DbVariableReferenceExpression and PropertyRefExpressions that are sufficient to logically reference the Var.
            If none of the 3 above conditions are satisfied then the Var is unresolvable in the CQT being constructed and
            the original IQT Command must be considered invalid for the purposes of this conversion.
            
             The IQT Var to resolve 
             The CQT DbExpression to which the specified Var resolves 
        
        
            
            Asserts that the specified Node has exactly 2 child Nodes
            
             The Node on which to Assert 
        
        
            
            A SoftCastOp is intended to be used only for promotion (and/or equivalence)
            and should be ignored in the CTree
            
             the softcast Op 
             the node 
        
        
            
            Generates a name for the specified Var.
            If the Var has a name (TryGetName), then we use the name to look up
            the right alias generator, and get a column name from the alias generator
            Otherwise, we simply get a name from the default alias generator
            
             the var in question 
             map to identify the appropriate alias generator 
             the default alias generator 
             list of already used names 
        
        
            
            Called by both Visit(ProjectOp) and VisitSetOpArgument to create a DbProjectExpression
            based on the RelOpInfo of the projection input and the set of projected Vars.
            Note:
            The projected Vars must have already been brought into scope (by one of the
            methods such as EnterExpressionBinding, EnterVarDefScope, etc) before this method
            is called, or the projected Vars will not be successfully resolved.
            Both Visit(ProjectOp) and VisitSetOpArgument do this"
            1. Visit(ProjectOp) takes both DbExpressionBinding and VarDef based Vars into account
            2. The Vars produced by a SetOpArgument projection are only allowed to be DbExpressionBinding
            based and are brought into scope when the original SetOp argument Node is visited.
            
        
        
            
            Called by both ScanTableOp and UnnestOp Visitor pattern methods to determine
            the shape of the output of the converted form of those Ops, in terms of the
            IQT Vars that are published by the resulting DbExpression and how those Vars should
            be reached.
            
             The table that is logically produced by the Op. For non-record sourceTypes, this should consist of a single column that logically constitutes the entire 'table' 
             A VarInfoList containing VarInfo instances that correctly track the Var or Vars produced by the targetTable, in accordance with the shape of the sourceType 
        
        
            
            Translate UnnestOp which is assumed (at this stage) to wrap a native ScalarOp
            that returns a collection (e.g. a table-valued function node).
            
        
        
            
            Builds up an "empty" projection over the input node. Well, in reality, we build
            up a dummy projection node - which simply selects out some constant (which
            is never used). This is useful in scenarios where the outputs are
            uninteresting, but the input row count is
            
             the relOp node 
        
        
            
            Build up a Project Op with exactly the Vars that we want. If the input is
            a Project already, piggyback on it, and get the Vars we want. Otherwise,
            create a new ProjectOp, and define the specified Vars
            Note that the ProjectOp's output (element) type will be a record with the fields
            in exactly the order specified by the projectionVars argument
            
             the input relOpNode to cap with a Project 
             List of vars we are interested in 
             A ProjectOp that produces the right set of Vars 
        
        
            
            Massages the input to a join node.
            If the input is a Filter(ScanTable), we throw in a dummy project over
            this input. This projectOp simply looks at the "referenced" columns of
            the table, and uses those as the projection Vars
            Otherwise, sqlgen does not really know which columns are referenced, and
            ends up adding a projection with all columns of the table.
            NOTE: We may want to do this for Apply as well
            
             one of the inputs to the join node 
             RelopInfo for the transformed input 
        
        
            
            Called by all Visitor pattern method that handle binary JoinOps (Inner, FullOuter, LeftOuter)
            
             The IQT Node that references the JoinOp 
             The CQT DbExpressionKind that represents the type of join to create 
        
        
            
            Called by both CrossApply and OuterApply visitor pattern methods - command handling of both types of Apply operation
            
             The Node that references the ApplyOp 
             The CQT DbExpressionKind that corresponds to the ApplyOp (DbExpressionKind.CrossApply for CrossApplyOp, DbExpressionKind.OuterApply for OuterApplyOp) 
             A new CqtResult containing a DbApplyExpression with the correct ApplyType 
        
        
            
            Called by VisitSetOp to convert each argument.
            Determines whether a column-reordering projection should be applied to
            the argument, and applies that projection if necessary during conversion
            to a DbExpression. A different projection is applied if no Nodes higher in
            the IQT consume the vars produced by the SetOp argument.
            
             A Node that provides one of the arguments to the SetOp 
             Defines the expected order of the Output Vars of the SetOp 
             The VarMap for the SetOp argument represented by the node. This specifies the Output (SetOp-produced) Var to Input (Argument-produced) Var mappings for the Vars in the outputVars enumerable. 
             A DbExpression that is the converted form of the argument (with an appropriate column-reording projection applied if necessary) 
        
        
            
            Called by UnionAll, Intersect and Except (SetOp) visitor pattern methods
            
             The visited SetOp 
             The Node that references the SetOp 
             Alias to use when publishing the SetOp's Vars 
             Callback to construct the SetOp DbExpression from the left and right arguments 
             The DbExpression equivalent of the SetOp 
        
        
            
            Convert SRO(e) => NewMultiset(Element(e'))
            where e' is the CTree version of e
            Add a Project over e, if it does not already have a ProjectOp
            
        
        
            
            Convert SingleRowTableOp into NewMultisetOp(1) - a single element
            collection. The element type of the collection doesn't really matter
            
             SingleRowTableOp 
             current subtree 
             CQT expression 
        
        
            
            Translates the PhysicalProjectOp. Handles two cases. If the child is a ProjectOp,
            then we simply piggyback on the ProjectOp method, but with our list of Vars.
            Otherwise, we visit the child, and then create a DbProjectExpression above it.
            The reason we special case the first scenario is because we do not want to add
            an extra Project over a Project-over-Sort expression tree. This causes bad
            problems later down the line
            
             the PhysicalProjectOp 
             current subtree 
             the CQT expression corresponding to this subtree 
        
        
            
            The VarInfo class tracks how a single IQT Var should be referenced in terms of CQT Expressions.
            The tracked Var must have been introduced by an IQT RelOp that was converted to a DbExpression that
            is subsequently used in a DbExpressionBinding, otherwise the Var is either a ParameterVar or a locally
            defined Var, which are tracked by the parameters collection of the Command and the VarDefScope
            class, respectively.
            An IQT Var that is tracked by a VarInfo instance is reachable in the following way:
            1. By a DbVariableReferenceExpression that references the Variable of the DbExpressionBinding that contains the DbExpression that logically publishes the IQT Var.
            This is tracked by the PublisherName property of the RelOpInfo class, which is used to track Vars brought into scope by a DbExpressionBinding.
            Without an enclosing RelOpInfo, the VarInfo is unbound and cannot be used to instantiate a CQT expression tree that is the equivalent of a VarRef of the IQT Var)
            2. By zero or more PropertyRefExpressions starting with a property of the DbVariableReferenceExpression created in step 1.
            These PropertyRefExpressions are introduced on top of the DbVariableReferenceExpression because of Join or ApplyExpressions that
            occur in the CQT between the expression that publishes the Var and the expression higher in the tree that contains a VarRefOp
            to the IQT Var that must be resolved to a CQT DbExpression. In such cases the DbExpression that logically publishes
            the IQT Var will have a record return Type.
            The required property names are tracked, in order, in the PropertyPath property of this class.
            The PrependProperty method is used to update the DbPropertyExpression path required to reach
            the DbVariableReferenceExpression when the referenced Variable becomes part of such a record-typed output.
            
        
        
            
            Constructs a new VarInfo instance that tracks the specified Var.
            
             The IQT Var that this VarInfo instance should track. 
        
        
            
            Adds a property name to the beginning of the property path for this VarInfo instance.
            Each time a new record structure is constructed on top of the expression that logically
            publishes this var, another DbPropertyExpression is required around the DbVariableReferenceExpression used
            to reach the Var in the CQT. Each new DbPropertyExpression must be added immediately around the
            DbVariableReferenceExpression, with previous PropertyExpressions now referring to the new DbPropertyExpression.
            Therefore the new property name added by this method is inserted at the start of the property path.
            See the Visit methods for the Join/ApplyOps for examples of using this method to adjust the property path.
            
             The new property name to insert at the start of the property path for the Var tracked by this VarInfo instance 
        
        
            
            Gets the Var tracked by this VarInfo instance
            
        
        
            
            Gets the names, in order of use, that should be used to build DbPropertyExpression around an initial DbVariableReferenceExpression in order to build a DbExpression subtree that correctly references the tracked IQT Var
            
        
        
            
            Groups a set of VarInfo instances together and allows certain operations (Bind/Unbind/PrependProperty)
            to be performed on all instances in the VarInfoList with a single call.
            
        
        
            
            Constructs a new, empty VarInfoList.
            
        
        
            
            Constructs a new VarInfoList that contains the specified VarInfo instances.
            
        
        
            
            Prepends the specified property name to the property path of all VarInfo instances in this list.
            
        
        
            
            Attempts to retrieve the VarInfo instance that tracks the specified IQT Var, if it is contained by this VarInfoList.
            
             The required IQT Var 
             Contains the VarInfo instance that tracks the specified Var if this method returns true 
             True if this list contains a VarInfo instance that tracks the specified Var; otherwise false 
        
        
            
            IqtVarScope is used to represent one or more IQT Vars that are currently in scope and can be mapped to a corresponding CQT DbExpression subtree.
            
        
        
            
            Attempts to resolve the specified IQT Var by building or mapping to a CQT DbExpression subtree. Overridden in derived classes.
            
             The IQT Var to resolve 
             If the methods returns true, the DbExpression to which the Var was resolved; otherwise null 
             True if the specified Var was successfully resolved; otherwise false 
        
        
            
            Implements the abstract IqtVarScope.TryResolveVar method. If the specified Var was published by this scope's DbExpression, it is mapped to a CQT DbExpression by calling CreateExpression on the VarInfo used to track it.
            
             The Var to resolve 
             If the method returns true, the DbExpression to which the Var was resolved; otherwise null 
             True if the specified Var was successfully resolved; otherwise false 
        
        
            
            Information (current binding name, property path) about the Vars logically published by the Publisher expression
            
        
        
            
            Represents a collection of IQT Vars that were brought into scope by a DbExpression used in a DbExpressionBinding. This class is also used to associate those Vars with that DbExpression, which is considered the logical 'publisher' of the Vars.
            
        
        
            
            Creates a new DbExpressionBinding that binds the publisher DbExpression under the binding name
            
             The new DbExpressionBinding 
        
        
            
            The unique name assigned to the CQT DbExpression that logically publishes the PublishedVars. Used primarily in ExpressionBindings that contain that DbExpression
            
        
        
            
            The CQT DbExpression that logically publishes the PublishedVars
            
        
        
            
            Represents a collection of IQT Vars that were brought into scope by a DbExpression used in a DbGroupExpressionBinding.
            
        
        
            
            Returns the DbGroupExpressionBinding that backs this group-by scope
            
             The new DbExpressionBinding 
        
        
            
            Represents a collection of IQT Vars that are in scope because they are defined locally (by VarDefOps) to an IQT Op that is being visited.
            
        
        
            
            Implements the abstract IqtVarScope.TryResolveVar method. If the specified Var exists in this scope, it is resolved by mapping it to the DbExpression that was produced by converting the IQT child Node of the VarDefOp that defines it to a CQT DbExpression subtree.
            
             The Var to resolve 
             If the method returns true, the DbExpression to which the Var was resolved; otherwise null 
             True if the specified Var was successfully resolved; otherwise false 
        
        
            
            Merge the discriminatorMap info we just found with what we've already found.
            In practice, if either the current or the new map is from an OfTypeOnly view, we
            have to avoid the optimizations.
            If we have a new map that is a superset of the current map, then we can just swap
            the new map for the current one.
            If the current map is tha super set of the new one ther's nothing to do.
            (Of course, if neither has changed, then we really don't need to look)
            
        
        
            
            Transformation Rules for DistinctOp
            
        
        
            
            If the DistinctOp includes all all the keys of the input, than it is unnecessary.
            Distinct (X, distinct_keys) -> Project( X, distinct_keys) where distinct_keys includes all keys of X.
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            An EntitySetId propertyref represents the EntitySetId property for
            an entity type or a ref type.
            As with TypeId, this class is a singleton instance
            
        
        
            
            Gets the singleton instance
            
        
        
            
            A simple class that represents a pair of extents
            
        
        
            
            Equals
            
        
        
            
            Hashcode
            
        
        
            
            Return the left component of the pair
            
        
        
            
            Return the right component of the pair
            
        
        
            
            Transformation rules for FilterOps
            
        
        
            
            Split up a predicate into 2 parts - the pushdown and the non-pushdown predicate.
            If the filter node has no external references *and* the "columns" parameter is null,
            then the entire predicate can be pushed down
            We then compute the set of valid column references - if the "columns" parameter
            is non-null, this set is used. Otherwise, we get the definitions of the
            input relop node of the filterOp, and use that.
            We use this list of valid column references to identify which parts of the filter
            predicate can be pushed down - only those parts of the predicate that do not
            reference anything beyond these columns are considered for pushdown. The rest are
            stuffed into the nonPushdownPredicate output parameter
            
             Command object 
             the FilterOp subtree 
             (Optional) List of columns to consider for "pushdown" 
             (output) Part of the predicate that cannot be pushed down 
             part of the predicate that can be pushed down 
        
        
            
            Convert Filter(Filter(X, p1), p2) => Filter(X, (p1 and p2))
            
             rule processing context 
             FilterOp node 
             modified subtree 
             transformed subtree 
        
        
            
            Convert Filter(Project(X, ...), p) => Project(Filter(X, p'), ...)
            
             Rule processing context 
             FilterOp subtree 
             modified subtree 
             transformed subtree 
        
        
            
            Transform Filter(UnionAll(X1, X2), p) => UnionAll(Filter(X1, p1), Filter(X, p2))
            Filter(Intersect(X1, X2), p) => Intersect(Filter(X1, p1), Filter(X2, p2))
            Filter(Except(X1, X2), p) => Except(Filter(X1, p1), X2)
            where p1 and p2 are the "mapped" versions of the predicate "p" for each branch
            
             Rule processing context 
             FilterOp subtree 
             modified subtree 
             true, if successful transformation 
        
        
            
            Transforms Filter(Distinct(x), p) => Filter(Distinct(Filter(X, p1), p2)
            where p2 is the part of the filter that can be pushed down, while p1 represents
            any external references
            
             Rule processing context 
             FilterOp subtree 
             modified subtree 
             Transformation status 
        
        
            
            Transforms Filter(GroupBy(X, k1.., a1...), p) =>
            Filter(GroupBy(Filter(X, p1'), k1..., a1...), p2)
            p1 and p2 represent the parts of p that can and cannot be pushed down
            respectively - specifically, p1 must only reference the key columns from
            the GroupByOp.
            "p1'" is the mapped version of "p1",
            
             Rule processing context 
             Current FilterOp subtree 
             modified subtree 
             Transformation status 
        
        
            
            Transform Filter()
            
             Rule Processing context 
             Current FilterOp subtree 
             Modified subtree 
             Transformation status 
        
        
            
            Convert Filter(OuterApply(X,Y), p) into
            Filter(CrossApply(X,Y), p)
            if "p" is not null-preserving for Y (ie) "p" does not preserve null values from Y
            
             Rule processing context 
             Filter node 
             modified subtree 
             transformation status 
        
        
            
            Convert
            Filter(X, true)  => X
            Filter(X, false) => Project(Filter(SingleRowTableOp, ...), false)
            where ... represent variables that are equivalent to the table columns
            
             Rule processing context 
             Current subtree 
             modified subtree 
             transformation status 
        
        
            
            Information about a foreign-key constraint
            
        
        
            
            Get the corresponding parent (key) property, for a specific child (foreign key) property
            
             child (foreign key) property name 
             corresponding parent property name 
             true, if the parent property was found 
        
        
            
            Build up an equivalence map of primary keys and foreign keys (ie) for each
            foreign key column, identify the corresponding primary key property
            
        
        
            
            Parent key properties
            
        
        
            
            Child key properties
            
        
        
            
            Get the parent-child pair
            
        
        
            
            Return the child rowcount
            
        
        
            
            A visitor that collects all group aggregates and the corresponding function aggregates
            that are defined over them, referred to as 'candidate aggregates'. The candidate aggregates are aggregates
            that have an argument that has the corresponding group aggregate as the only external reference
            
        
        
            
            Produces a list of all GroupAggregateVarInfos, each of which represents a single group aggregate
            and it candidate function aggregates. It also produces a delegate that given a child node returns the parent node
            
        
        
            
            Private constructor
            
        
        
            
            Determines whether the var or a property of the var (if the var is defined as a NewRecord)
            is defined exclusively over a single group aggregate. If so, it registers it as such with the
            group aggregate var info manager.
            
        
        
            
            Registers the group aggregate var with the group aggregate var info manager
            
        
        
            
            If the unnestOp's var is defined as a reference of a group aggregate var,
            then the columns it produces should be registered too, but as 'unnested' references
            
             the unnestOp 
             current subtree 
        
        
            
            If the op is a collection aggregate function it checks whether its arguement can be translated over
            a single group aggregate var. If so, it is tracked as a candidate to be pushed into that
            group by into node.
            
        
        
            
            Default visitor for nodes.
            It tracks the child-parent relationship.
            
        
        
            
            Utility class that tries to produce an equivalent tree to the input tree over
            a single group aggregate variable and no other external references
            
        
        
            
            Private constructor
            
        
        
            
            Try to produce an equivalent tree to the input subtree, over a single group aggregate variable.
            Such translation can only be produced if all external references of the input subtree are to a
            single group aggregate var, or to vars that are can be translated over that single group
            aggregate var
            
             The input subtree 
             
             
             
             The groupAggregateVarInfo over which the input subtree can be translated 
             A tree that is equvalent to the input tree, but over the group aggregate variable represented by the groupAggregetVarInfo 
             
             True, if the translation can be done, false otherwise 
        
        
            
            See 
            
        
        
            
            If the child is VarRef check if the subtree PropertyOp(VarRef) is reference to a
            group aggregate var.
            Otherwise do default processing
            
        
        
            
            If the Subtree rooted at the collect is of the following structure:
            PhysicalProject(outputVar)
            |
            Project(s)
            |
            Unnest
            where the unnest is over the group aggregate var and the output var
            is either a reference to the group aggregate var or to a constant, it returns the
            translation of the ouput var.
            
        
        
            
            Determines whether the given Node is a constant subtree
            It only recognizes any of the constant base ops
            and possibly casts over these nodes.
            
        
        
            
            (1) If the given var or the given property of the given var are defined over a group aggregate var,
            (2) and if that group aggregate var matches the var represented by represented by _targetGroupAggregateVarInfo
            if any
            it returns the corresponding translation over the group aggregate var. Also, if _targetGroupAggregateVarInfo
            is not set, it sets it to the group aggregate var representing the referenced var.
            
        
        
            
            Default processing for nodes.
            Visits the children and if any child has changed it creates a new node
            for the parent.
            If the reference of the child node did not change, the child node did not change either,
            this is because a node can only be reused "as is" when building a template.
            
        
        
            
            Helper class to track the aggregate nodes that are candidates to be
            pushed into the definingGroupByNode.
            
        
        
            
            Public constructor
            
             The GroupIntoOp node 
             
        
        
            
            Each key value pair represents a candidate aggregate.
            The key is the function aggregate subtree and the value is a 'template' of translation of the
            function aggregate's argument over the var representing the group aggregate.
            A valid candidate has an argument that does not have any external references
            except for the group aggregate corresponding to the DefiningGroupNode.
            
        
        
            
            Are there are agregates that are candidates to be pushed into the DefiningGroupNode
            
        
        
            
            The GroupIntoOp node that this GroupAggregateVarInfo represents
            
        
        
            
            Manages refereces to groupAggregate variables.
            
        
        
            
            Add an entry that var is a computation represented by the computationTemplate
            over the var represented by the given groupAggregateVarInfo
            
        
        
            
            Add an entry that the given property of the given var is a computation represented
            by the computationTemplate over the var represented by the given groupAggregateVarInfo
            
        
        
            
            Gets the groupAggregateVarRefInfo representing the definition of the given var over
            a group aggregate var if any.
            
        
        
            
            Gets the groupAggregateVarRefInfo representing the definition of the given property of the given
            var over a group aggregate var if any.
            
        
        
            
            Get all the groupAggregateVarInfos
            
        
        
            
            Helper class to track usage of GroupAggregateVarInfo
            It represents the usage of a single GroupAggregateVar.
            The usage is defined by the computation, it should be a subree whose only
            external reference is the group var represented by the GroupAggregateVarInfo.
            
        
        
            
            Public constructor
            
        
        
            
            Subtree whose only external reference is
            the group var represented by the GroupAggregateVarInfo
            
        
        
            
            The GroupAggregateVarInfo (possibly) referenced by the computation
            
        
        
            
            Is the computation over unnested group aggregate var
            
        
        
            
            Transformation Rules for GroupByOps
            
        
        
            
            If the GroupByOp defines some computedVars as part of its keys, but those computedVars are simply
            redefinitions of other Vars, then eliminate the computedVars.
            GroupBy(X, VarDefList(VarDef(cv1, VarRef(v1)), ...), VarDefList(...))
            can be transformed into
            GroupBy(X, VarDefList(...))
            where cv1 has now been replaced by v1
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            Converts a GroupBy(Project(X, c1,..ck), agg1, agg2, .. aggm) =>
            GroupBy(X, agg1', agg2', .. aggm')
            where agg1', agg2', .. aggm'  are the "mapped" versions
            of agg1, agg2, .. aggm, such that the references to c1, ... ck are
            replaced by their definitions.
            We only do this if each c1, ..ck is refereneced (in aggregates) at most once or it is a constant.
            
             Rule processing context 
             Current ProjectOp node 
             modified subtree 
             Transformation status 
        
        
            
            If the GroupByOp has no aggregates:
            (1) and if it includes all all the keys of the input, than it is unnecessary
            GroupBy (X, keys) -> Project(X, keys) where keys includes all keys of X.
            (2) else it can be turned into a Distinct:
            GroupBy (X, keys) -> Distinct(X, keys)
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            Replaces each occurance of the given vars with their definitions.
            
        
        
            
            "Public" entry point. In the subtree rooted at the given root,
            replace each occurance of the given vars with their definitions,
            where each key-value pair in the dictionary is a var-definition pair.
            
        
        
            
            Recomputes node info post regular processing.
            
        
        
            
            Used to determine whether any of the given vars occurs more than once
            in a given subtree.
            
        
        
            
            Public entry point. Returns true if at least one of the given vars occurs more than
            once in the subree rooted at the given root.
            
        
        
            
            Maintained for lambda and model-defined function applications (DbLambdaExpression and DbFunctionExpression).
            
        
        
            
            Initialize the DbExpressionKind --> OpType mappings for DbComparisonExpression and DbArithmeticExpression
            
        
        
            
            Generate an IQT given a query command tree and discriminator metadata (available for certain query mapping views)
            
        
        
            
            Is the current expression a predicate?
            
             expr to check 
             true, if the expression is a predicate 
        
        
            
            Convert this expression into a "scalar value" ITree expression. There are two main
            
        
        
            
            Convert an Itree node into a scalar op tree
            
             the subtree 
             the original CQT expression 
             the converted subtree 
        
        
            
            Convert a rel op Itree node into a scalar op tree
            
        
        
            
            Scalarize the predicate (x = y) by converting it into a "case when x = y then 'true' else 'false' end" expression.
            
        
        
            
            Convert an expression into an iqt predicate
            
             the expression to process 
        
        
            
            Process a list of expressions, and apply the delegate to each of the expressions
            
             list of cqt expressions to process 
             the callback to apply 
             a list of IQT expressions 
        
        
            
            Process a set of cqt expressions - and convert them into scalar iqt expressions
            
             list of cqt expressions 
             list of iqt expressions 
        
        
            
            Ensures that an input op is a RelOp. If the specified Node's Op is not a RelOp then it is wrapped in an Unnest to create a synthetic RelOp. This is only possible if the input Op produces a collection.
            
             The input Node/Op pair 
             A Node with an Op that is guaranteed to be a RelOp (this may be the original Node or a new Node created to perform the Unnest) 
        
        
            
            Cap a RelOp with a ProjectOp. The output var of the Project is the
            output var from the input
            
             the input relop tree 
             the relop tree with a projectNode at the root 
        
        
            
            Cap a relop tree with a PhysicalProjectOp. The Vars of the PhysicalProjectOp
            are the vars from the RelOp tree
            
             the input relop tree 
             relop tree capped by a PhysicalProjectOp 
        
        
            
            Creates a new variable scope that is based on a CQT DbExpressionBinding and pushes it onto the variable scope stack. The scope defines a single variable based on the DbExpressionBinding's VarName and DbExpression.
            
             The DbExpressionBinding that defines the scope 
             The Node produced by converting the binding's DbExpression 
        
        
            
            Creates a new variable scope that is based on a CQT DbGroupExpressionBinding and pushes it onto the variable scope stack. The scope defines a single variable based on the DbExpressionBinding's VarName and DbExpression.
            This method does not bring the GroupVarName into scope. Note that ExitExpressionBinding and NOT ExitGroupExpressionBinding should be used to remove this scope from the stack.
            
             The DbGroupExpressionBinding that defines the scope 
             The Node produced by converting the binding's DbExpression 
        
        
            
            Common implementation method called by both EnterExpressionBinding and EnterGroupExpressionBinding
            
             The DbExpression that defines the binding 
             The name of the binding variable 
        
        
            
            Common implementation method called by both VisitBoundExpressionPushBindingScope and VisitJoin
            
             The DbExpression that defines the binding 
            
            Var representing the RelOp produced for the 
            
        
        
            
            Common implementation method called by both VisitBoundExpressionPushBindingScope and VisitJoin
            
             The Var produced by the RelOp from DbExpression that defines the binding 
             The name of the binding variable 
        
        
            
            Removes a variable scope created based on a DbExpressionBinding from the top of the variable scope stack, verifying that it is in fact an ExpressionBindingScope.
            
             The removed ExpressionBindingScope 
        
        
            
            Removes a variable scope created based on a DbGroupExpressionBinding from the top of the variable scope stack, verifying that it is in fact an ExpressionBindingScope.
            Should only be called after visiting the Aggregates of a DbGroupByExpression in Visit(DbGroupByExpression).
            The sequence (in Visit(GroupExpression e) is:
            1. EnterGroupExpressionBinding
            2.     Visit e.Keys
            3. ExitExpressionBinding
            4. (Push new scope with GroupVarName instead of VarName)
            5.     Visit e.Aggregates
            6. ExitGroupExpressionBinding
            
        
        
            
            Creates a new variable scope that is based on a CQT DbLambda and pushes it onto the variable scope stack.
            
             The DbLambda that defines the scope 
             A list of Nodes and IsPredicate bits produced by converting the CQT Expressions that provide the arguments to the Lambda function 
             an edm function for which the current lambda represents the generated body, otherwise null 
        
        
            
            Removes a variable scope created based on a Lambda function from the top of the variable scope stack, verifying that it is in fact a LambdaScope.
            
             an edm function for which the current lambda represents the generated body, otherwise null 
        
        
            
            Constructs a NewRecordOp on top of a multi-Var-producing Op, resulting in a RelOp that produces a single Var.
            
             The Node that references the multi-Var-producing Op. This Node will become the first child node of the new ProjectOp's Node 
             Type metadata that describes the output record type 
             A list of Vars that provide the output columns of the projection 
             A new ProjectOp that projects a new record of the specified type from the specified Vars over the original input Op/Node 
        
        
            
            This method builds a "soft"Cast operator over the input node (if necessary) to (soft)
            cast it to the desired type (targetType)
            If the input is a scalarOp, then we simply add on the SoftCastOp
            directly (if it is needed, of course). If the input is a RelOp, we create a
            new ProjectOp above the input, add a SoftCast above the Var of the
            input, and then return the new ProjectOp
            The "need to cast" is determined by the Command.EqualTypes function. All type
            equivalence in the plan compiler is determined by this function
            
             the expression to soft-cast 
             the desired type to cast to 
        
        
            
            A variant of the function above. Works with an EdmType instead
            of a TypeUsage, but leverages all the work above
            
             the node to "cast" 
             the desired type 
             the transformed expression 
        
        
            
            We simplify the property instance where the user is accessing a key member of
            a reference navigation. The instance becomes simply the reference key in such
            cases.
            For instance, product.Category.CategoryID becomes Ref(product.Category).CategoryID,
            which gives us a chance of optimizing the query (using foreign keys rather than joins)
            
             The original property expression that specifies the member and instance 
             'Simplified' instance. If the member is a key and the instance is a navigation the rewritten expression's instance is a reference navigation rather than the full entity. 
            
            true if the property expression was rewritten, in which case  will be non-null, otherwise false , in which case
            
            will be null.
            
        
        
            
            Encapsulates the logic required to convert a SetOp (Except, Intersect, UnionAll) expression
            into an IQT Node/Op pair.
            
             The DbExceptExpression, DbIntersectExpression or DbUnionAllExpression to convert, as an instance of DbBinaryExpression 
             A new IQT Node that references the ExceptOp, IntersectOp or UnionAllOp created based on the expression 
        
        
            
            Build the equivalent of an OfTypeExpression over the input (ie) produce the set of values from the
            input that are of the desired type (exactly of the desired type, if the "includeSubtypes" parameter is false).
            Further more, "update" the result element type to be the desired type.
            We accomplish this by first building a FilterOp with an IsOf (or an IsOfOnly) predicate for the desired
            type. We then build out a ProjectOp over the FilterOp, where we introduce a "Fake" TreatOp over the input
            element to cast it to the right type. The "Fake" TreatOp is only there for "compile-time" typing reasons,
            and will be ignored in the rest of the plan compiler
            
        
        
            
            Translation for GroupAggregate
            Create the translation as :
            Collect
            |
            PhysicalProject
            |
            GroupNodeDefinition
            Here, GroupNodeDefinition is:
            1. If there are no keys:  copyOfInput;
            2. If there are keys:
            Filter (keyDef1 = copyOfKeyDef1 or keyDef1 is null and copyOfKeyDef1 is null) and ... and (keyDefn = copyOfKeyDefn or keyDefn is null and copyOfKeyDefn is null)
            |
            Project (copyOfInput, copyOfKeyDef1, copyOfKeyDef1, ... copyOfKeyDefn)
            |
            copyOfInput
            
        
        
            
            If the return type of the input node is a RowType it flattens its individual non-row properties.
            The produced nodes are added to the given flattenedProperties list
            
        
        
            
            Common processing for the identical input and sort order arguments to the unrelated
            DbSkipExpression and DbSortExpression types.
            
             The input DbExpressionBinding from the DbSkipExpression or DbSortExpression 
             The list of SortClauses from the DbSkipExpression or DbSortExpression 
             A list to contain the converted SortKeys produced from the SortClauses 
             The Var produced by the input to the DbSkipExpression or DbSortExpression 
             The converted form of the input to the DbSkipExpression or DbSortExpression, capped by a ProjectOp that defines and Vars referenced by the SortKeys. 
        
        
            
            Abstract base class for both DbExpressionBinding and LambdaFunction scopes
            
        
        
            
            Returns true if it is a lambda variable representing a predicate expression.
            
        
        
            
            Represents a variable scope introduced by a CQT DbExpressionBinding, and therefore contains a single variable.
            
        
        
            
            Represents a variable scope introduced by a LambdaFunction.
            
        
        
            
            varName : [node, IsPredicate]
            
        
        
            
            Callback to process an expression
            
             The expression to convert 
        
        
            
            Represents one or more type filters that should be AND'd together to produce an aggregate IsOf filter expression
            
        
        
            
            The type that elements of the filtered input set must be to satisfy this IsOf filter
            
        
        
            
            Indicates whether elements of the filtered input set may be of a subtype (IsOf) of the required type
            and still satisfy the IsOfFilter, or must be exactly of the required type (IsOfOnly) to do so.
            
        
        
            
            The next IsOfFilter in the AND chain.
            
        
        
            
            Represents an "edge" in the join graph.
            A JoinEdge is a directed equijoin between the left and the right table. The equijoin
            columns are represented by the LeftVars and the RightVars properties
            
        
        
            
            Internal constructor
            
             the left table 
             the right table 
             the owner join node 
             the Join Kind 
             list of equijoin columns of the left table 
             equijoin columns of the right table 
        
        
            
            Factory method
            
             left table 
             right table 
             the owner join node 
             equijoin column of the left table 
             equijoin column of the right table 
             the new join edge 
        
        
            
            Creates a transitively generated join edge
            
             the left table 
             the right table 
             the join kind 
             left equijoin vars 
             right equijoin vars 
             the join edge 
        
        
            
            Add a new "equi-join" condition to this edge
            
             join node producing this condition 
             the left-side column 
             the right-side column 
             true, if this condition can be added 
        
        
            
            The left table
            
        
        
            
            The right table of the join
            
        
        
            
            The underlying join node, may be null
            
        
        
            
            The join kind
            
        
        
            
            Equijoin columns of the left table
            
        
        
            
            Equijoin columns of the right table
            
        
        
            
            Is this join edge useless?
            
        
        
            
            Gets a flag that indicates whether elimination is restricted for this join edge.
            Returns true if this is not a transitive join edge and one or both participating
            tables are not visible at the join node, otherwise false.
            
        
        
            
            The JoinElimination module is intended to do just that - eliminate unnecessary joins.
            This module deals with the following kinds of joins
            * Self-joins: The join can be eliminated, and either of the table instances can be
            used instead
            * Implied self-joins: Same as above
            * PK-FK joins: (More generally, UniqueKey-FK joins): Eliminate the join, and use just the FK table, if no
            column of the PK table is used (other than the join condition)
            * PK-PK joins: Eliminate the right side table, if we have a left-outer join
            
        
        
            
            Invokes the visitor
            
        
        
            
            Do we need to build a join graph for this node - returns false, if we've already
            processed this
            
        
        
            
            Do the real processing of the join graph.
            
             current join node 
             modified join node 
        
        
            
            Default handler for a node. Simply visits the children, then handles any var
            remapping, and then recomputes the node info
            
        
        
            
            Invokes default handling for a node and adds the child-parent tracking info to the VarRefManager.
            
        
        
            
            Build a join graph for this node for this node if necessary, and process it
            
             current join op 
             current join node 
        
        
            
            Represents a join graph. The uber-class for join elimination
            
        
        
            
            The basic constructor. Builds up the annotated node tree, and the set of
            join edges
            
             Current IQT command 
             current constraint manager 
             the var ref manager for the tree 
             current join node 
        
        
            
            Perform all kinds of join elimination. The output is the transformed join tree.
            The varMap output is a dictionary that maintains var renames - this will be used
            by the consumer of this module to fix up references to columns of tables
            that have been eliminated
            The processedNodes dictionary is simply a set of all nodes that have been processed
            in this module - and need no further "join graph" processing
            
             remapped vars 
             list of nodes that need no further processing 
        
        
            
            Get the subset of vars that are Columns
            
             a varVec 
             a subsetted VarVec that only contains the columnVars from the input vec 
        
        
            
            Generate a list of column Vars from the input vec
            
             the list of vars to fill in 
             the var set 
        
        
            
            Split up the join predicate into equijoin columns and other predicates.
            For example, if I have a predicate of the form T1.C1 = T2.D1 and T1.C2 > T2.D2
            we would generate
            LeftVars = T1.C1
            RightVars = T2.C1
            OtherPredicate = T1.C2 > T2.D2
            Special Cases:
            For fullouter joins, we don't do any splitting - the "OtherPredicate" captures the
            entire join condition.
            
             the current join node 
             equijoin columns of the left side 
             equijoin columns of the right side 
             any other predicates 
        
        
            
            Build up the annotated node tree for the input subtree.
            If the current node is
            a ScanTableOp - we build an AugmentedTableNode
            a join (Inner, LOJ, FOJ, CrossJoin) - we build an AugmentedJoinNode,
            after first building annotated node trees for the inputs.
            anything else - we build an AugmentedNode
            We also mark the node as "processed" - so that the caller will not need
            to build join graphs for this again
            
             input node tree 
             the annotated node tree 
        
        
            
            Add a new join edge if possible.
            - Check to see whether the input columns are columns of a table that we're tracking.
            - Make sure that both the tables are "visible" to the current join node
            - If there is already a link between the two tables, make sure that the link's
            join kind is compatible with what we have
            
             current join Node 
             left-side column 
             right-side column 
        
        
            
            Check to see if all columns in the input varList are from the same table
            Degenerate case: if the list is empty, we still return true
            
             list of columns 
             true, if every column is from the same table 
        
        
            
            Build a set of JoinEdges for this join.
            For cross joins, we simply invoke this function recursively on the children, and return
            For other joins,
            - We first compute the "visibility" for the left and right branches
            - For full outer joins, the "visibility" is the current join node's id. (ie)
            the tables below are not to be considered as candidates for JoinEdges anywhere
            above this FOJ node
            - For left outer joins, the "visibility" of the left child is the input "maxVisibility"
            parameter. For the right child, the "visibility" is the current join node's id
            - For inner joins, the visibility for both children is the "maxVisibility" parameter
            - We then check to see if the join condition is "ok". If the current join node
            is a full-outer join, OR if the joinNode has an OtherPredicate (ie) stuff
            other than equijoin column conditions, then we don't build any joinedges.
            - Otherwise, we build join edges for each equijoin column
            
             current join node 
             the highest node where any of the tables below is visible 
        
        
            
            Builds up the list of join edges. If the current node is
            a ScanTable - we simply set the "LastVisibleId" property to the maxVisibility
            parameter
            a join - we invoke the BuildJoinEdges() function on the join node
            anything else - do nothing
            
             
             highest node that this node is visible at 
        
        
            
            If edge1 represents (T1, T2), and edge2 represents (T2, T3), try and
            create a (T1,T3) edge.
            The transitive edge is created if all of the following conditions hold:
            1. edge1 and edge2 are of the same join kind
            2. If edge1 and edge2 are Left Outer Joins, then
            a. both edges represent joins on the same columns, and
            b. at least one of the edges represents a self join
            3. For inner joins:
            The intersection of the columns on which are the joins represented
            by edge1 and edge2 is non-empty, the transitive edge is created to represent
            a join on that intersection.
            If an edge already exists between these tables, then don't add a new edge
            
        
        
            
            Given a list of key vars a list of corresponding value vars, creates a list
            of key-value pairs that is ordered based on the keys
            
        
        
            
            Try to turn left outer joins into inner joins
            Turn an augmented join node that represents a Left Outer Join into an Inner join
            if all its edges are candidates to be turned into an Inner Join
            An edge representing A LOJ B is a candidate to be turned into an inner join (A INNER JOIN B)
            if the following conditions hold:
            1. a) There is a foreign key constraint (parent-child relationship) between B and A,
            the join is on the constraint, and the joined columns in B are non-nullable, or
            b) There is a foreign key constraint between A and B, the join is on the constraint,
            and the child multiplicity is One. However, this scenario cannot be specified in the ssdl,
            thus this case has not be implemented, and
            2. All the rows from the right table B are preserved (i.e. not filtered out) at the level of the join.
            This means that if B is participating in any joins prior to being joined with A, these have to be
            left outer joins and B has to be a driver (on the left spine).
            
        
        
            
            Are all the rows from the given table that is part of the subtree rooted
            at the given root preserved on the root.
            This is true if:
            - The root represents the table
            - The table is a on the left spine of a left outer join tree
            
        
        
            
            Does the set of given joinEdges contain a join edge to a given table
            
        
        
            
            Determines whether each of the given joinEdges can be turned into an inner join
            NOTE: Due to how we create join edges, currenlty there can only be one join edge in this group
            See  for details.
            
        
        
            
            A LOJ B edge can be turned into an inner join if:
            1. There is a foreign key constraint based on which such transformation is possible
            2. All the rows from the right table B are preserved (i.e. not filtered out) at the level of the join.
            This means that if B is participating in any joins prior to being joined with A, these have to be
            left outer joins and B has to be a driver (on the left spine).
            
        
        
            
            A necessary condition for an  A LOJ B edge to be turned into an inner join is
            the existence of one of the following constraints:
            a) There is a foreign key constraint (parent-child relationship) between B and A,
            the join is on the constraint, and the joined columns in B are non-nullable, or
            b) There is a foreign key constraint between A and B, the join is on the constraint,
            and the child multiplicity is One. However, this scenario cannot be specified in the ssdl,
            thus this case has not be implemented
            
        
        
            
            Generate a set of transitive edges
            
        
        
            
            Checks whether a given table can be eliminated to be replaced by the given replacingTable
            with regards to possible participation in the driving (left) subtree of Left Outer Joins.
            In order for elimination to happen, one of the two tables has to logically move,
            either the replacement table to the original table's location, or the table to the
            replacing table's location.
            For the table that would have to move, it checks whether such move would be valid
            with regards to its participation as driver in Left Outer Joins ()
            
        
        
            
            Can the right table of the given tableJoinEdge be eliminated and replaced by the right table of the replacingTableJoinEdge
            based on both tables participation in other joins.
            It can be if:
            - The table coming from tableJoinEdge does not participate in any other join on the way up to the least common ancestor
            - The table coming from replacingTableJoinEdge does not get filtered on the way up to the least common ancestor
            
        
        
            
            Can the right table of the joinEdge be filtered by joins on the the way up the the given leastCommonAncestor.
            It can, if
            - dissallowAnyJoin is specified, or
            - if it is on the right side of a left outer join or participates in any inner join, thus it is only
            allowed to be on the left side of a left outer join
            
        
        
            
            Determines whether the given table can be moved to the replacing table's location
            with regards to participation in the driving (left) subtree of Left Outer Joins.
            If the table to be moved is part of the driving (left) subtree of a Left Outer Join
            and the replacing table is not part of that subtree then the table cannot be moved,
            otherwise it can.
            
        
        
            
            Gets the least common ancestor for two given nodes in the tree
            
        
        
            
            This function marks a table as eliminated. The replacement varmap
            is updated with columns of the table being mapped to the corresponding columns
            of the replacement table
            
             table being replaced 
             the table being used in its place 
             list of vars to replace 
             list of vars to replace with 
             Var or one of its subtypes 
        
        
            
            Record that replacingVar is replacing replacedVar.
            Also, replacedVar was previously replacing any other vars,
            add these to the list of replaced vars for the replacingVar too.
            The info about the replacedVar no longer needs to be maintained.
            
        
        
            
            This function marks a table (part of a selfjoin) as eliminated. The replacement varmap
            is updated with columns of the table being mapped to the corresponding columns
            of the replacement table
            
             table being replaced 
             the table being used in its place 
        
        
            
            This function is a helper function for star selfjoin elimination. All the
            "right" tables of the join edges in the input list are instances of the same table.
            Precondition: Each joinedge is of the form (X, Ai),
            where X is the star-joined table, and A1...An are all instances of the same
            table A
            This function first creates groups of join edges such that all tables
            in a group:
            1. are joined to the center (X) on the same columns
            2. are of the same join kind
            3. are joined on all key columns of table A
            4. if the join type is Left Outer Join, they are not joined on any other columns
            For each group, we then identify the table with the
            smallest "Id", and choose that to replace all the other tables from that group
            
             list of join edges 
        
        
            
            Two edges match for star self join elimination if:
            1. are joined to the center (X) on the same columns
            2. are of the same join kind
            
        
        
            
            A join edge qualifies for starting a group for star self join elimination if:
            1. the join is on all key columns of the right table,
            2. if the join type is Left Outer Join, the join is on no columns
            other than the keys of the right table.
            NOTE:  The second limitation is really arbitrary, to should be possible
            to also allow other conditions
            
        
        
            
            Eliminates any star self joins. This function looks at all the tables that
            this table is joined to, groups the tables based on the table name (metadata),
            and then tries selfjoin elimination on each group (see function above)
            
             the star-joined table? 
        
        
            
            Eliminate a self-join edge.
            
             the join edge 
             tur, if we did eliminate the self-join 
        
        
            
            Eliminate self-joins for this table (if any)
            
             current table 
        
        
            
            Eliminate all selfjoins
            
        
        
            
            Eliminate the left table
            
        
        
            
            Eliminate the right table
            
        
        
            
            Do we reference any nonkey columns from this table
            
             the table instance 
             true, if there are any nonkey references 
        
        
            
            Are any of the key columns from the right table of the given join edge referenced
            elsewhere (outside the join condition)
            
        
        
            
            Eliminate a parent-child join, given a fk constraint
            
             the current join edge 
             the referential integrity constraint 
        
        
            
            Given a ForeignKeyConstraint and lists of vars on which the tables are joined,
            it checks whether the join condition includes (but is not necessarily joined only on)
            the foreign key constraint.
            
        
        
            
            Try to eliminate the parent table from a
            child Left Outer Join parent
            join, given a fk constraint
            More specific:
            P(p1, p2, p3,…) is the parent table, and C(c1, c2, c3, …) is the child table.
            Say p1,p2 is the PK of P, and c1,c2 is the FK from C to P
            SELECT …
            From C LOJ P ON (p1 = c1 and p2 = c2)
            WHERE …
            If only the keys are used from P, we should but should be carefull about composite keys with nullable foreign key columns.
            If a composite foreign key has been defined on columns that allow nulls,
            and at least one of the columns, upon the insert or update of a row, is set to null, then the foreign key constraint will be satisfied
            on SqlServer.
            Thus we should do the elimination only if
            1.	The key is not composite
            2.	All columns on the child side are non nullable
            
             the current join edge 
             the referential integrity constraint 
        
        
            
            Helper method to try to eliminate the right table given a join edge.
            The right table should be eliminated if:
            1. It does not have non key references, and
            2. Either its columns are not referenced anywhere outside the join condition or,
            if allowRefsForJoinedOnFkOnly is true, the join condition is only on the fk constraint
            (which we deduct by only checking the count, since we already checked that the conditions do
            include the fk constraint.
            3. It can be eliminated based on possible participation in a left outer join
            
        
        
            
            Eliminate the join if possible, for this edge
            
             the current join edge 
        
        
            
            Eliminate parent child nodes that this node participates in
            
             the "left" table in a join 
        
        
            
            Eliminate all parent-child joins in the join graph
            
        
        
            
            Return the result of join elimination
            
             the transformed node tree 
        
        
            
            Build a filter node (if necessary) to prune out null values for the specified
            columns
            
        
        
            
            Adds a filter node (if necessary) on top of the input node.
            Returns the input node, if the filter predicate is null - otherwise, adds a
            a new filter node above the input
            
             the input node 
             the filter predicate 
        
        
            
            Rebuilds the predicate for a join node and caculates the minimum location id at which it can be specified.
            The predicate is an AND of the equijoin conditions and the "otherPredicate".
            We first remap all columns in the equijoin predicates - if a column pair
            resolves to the same column, then we skip that pair.
            The minimum location id at which a predicate can be specified is the minimum location id that is
            still at or above the minimum location id of all participating vars.  By default, it is the location id
            of the input join node. However, because a table producing a participating var may be moved or
            replaced by another table, the rebuilt predicate may need to be specified at higher location id.
            
             the current join node 
             the minimum location id (AugumentedNode.Id) at which this predicate can be specified 
             the rebuilt predicate 
        
        
            
            Rebuilds a crossjoin node tree. We visit each child of the cross join, and get
            back a list of nodes. If the list of nodes has
            0 children - we return null
            1 child - we return the single child
            otherwise - we build a new crossjoin op with all the children
            
             the crossjoin node 
             new node tree 
        
        
            
            Rebuilds the node tree for a join.
            For crossjoins, we delegate to the function above. For other cases, we first
            invoke this function recursively on the left and the right inputs.
            
             the annotated join node tree 
             A dictionary of output predicates that should be included in ancestor joins along with the minimum location id at which they can be specified 
             rebuilt tree 
        
        
            
            Rebuild the node tree for a TableNode.
            - Keep following the ReplacementTable links until we get to a node that
            is either null, or has a "false" value for the IsEliminated property
            - If the result is null, then simply return null
            - If the tableNode we ended up with has already been "placed" in the resulting
            node tree, then return null again
            - If the tableNode has a set of non-nullable columns, then build a filterNode
            above the ScanTable node (pruning out null values); otherwise, simply return
            the ScanTable node
            
             the "augmented" tableNode 
             rebuilt node tree for this node 
        
        
            
            Rebuilds the node tree from the annotated node tree. This function is
            simply a dispatcher
            ScanTable - call RebuildNodeTree for ScanTable
            Join - call RebuildNodeTree for joinOp
            Anything else - return the underlying node
            
             annotated node tree 
             the output predicate that should be included in the parent join 
             the rebuilt node tree 
        
        
            
            Helper method for RebuildNodeTree.
            Given predicate nodes and the minimum location ids at which they can be specified, it creates:
            1. A single predicate AND-ing all input predicates with a minimum location id that is less or equal to the given targetNodeId.
            2. A dictionary of all other input predicates and their target minimum location ids.
            
             The location id of the resulting predicate 
             A predicate 
             The location id for the localPredicateNode 
             A dictionary of predicates and the minimum location id at which they can be specified 
             A dictionary of predicates and the minimum location id at which they can be specified 
             An output dictionary of predicates and the minimum location id at which they can be specified that includes all input predicates with minimum location id greater then targetNodeId 
             A single predicate "AND"-ing all input predicates with a minimum location id that is less or equal to the tiven targetNodeId. 
        
        
            
            Helper method for 
            If the predicateMinimuLocationId is less or equal to the target location id of the current result, it is AND-ed with the
            current result, otherwise it is included in the list of predicates that need to be propagated up (outPredicates)
            
        
        
            
            Combines two predicates into one by AND-ing them.
            
        
        
            
            Get the location id of the AugumentedTableNode at which the given var is defined.
            If the var is not in th m_varToDefiningNodeMap, then it return the input defaultLocationId
            
        
        
            
            Gets the location id of least common ancestor for two nodes in the tree given their location ids
            
        
        
            
            Helper method for 
            Given a root node pick its immediate child to which the node identifed with the given nodeId bellongs.
            
             The immediate child of the given root that is root of the subree that contains the node with the given nodeId. 
        
        
            
            The only join kinds we care about
            
        
        
            
            Transformation rules for JoinOps
            
        
        
            
            CrossJoin(Project(A), B) => Project(CrossJoin(A, B), modifiedvars)
            InnerJoin(Project(A), B, p) => Project(InnerJoin(A, B, p'), modifiedvars)
            LeftOuterJoin(Project(A), B, p) => Project(LeftOuterJoin(A, B, p'), modifiedvars)
            
             Rule processing context 
             Current JoinOp tree to process 
             Transformed subtree 
             transformation status 
        
        
            
            CrossJoin(Filter(A,p), B) => Filter(CrossJoin(A, B), p)
            CrossJoin(A, Filter(B,p)) => Filter(CrossJoin(A, B), p)
            InnerJoin(Filter(A,p), B, c) => Filter(InnerJoin(A, B, c), p)
            InnerJoin(A, Filter(B,p), c) => Filter(InnerJoin(A, B, c), p)
            LeftOuterJoin(Filter(A,p), B, c) => Filter(LeftOuterJoin(A, B, c), p)
            Note that the predicate on the right table in a left-outer-join cannot be pulled
            up above the join.
            
             Rule processing context 
             Current JoinOp tree to process 
             transformed subtree 
             transformation status 
        
        
            
            Convert a CrossJoin(SingleRowTable, X) or CrossJoin(X, SingleRowTable) or LeftOuterJoin(X, SingleRowTable)
            into just "X"
            
             rule processing context 
             the join node 
             transformed subtree 
             transformation status 
        
        
            
            The KeyPullup class subclasses the default visitor and pulls up keys
            for the different node classes below.
            The only Op that really deserves special treatment is the ProjectOp.
            
        
        
            
            Pull up keys (if possible) for the given node
            
             node to pull up keys for 
             Keys for the node 
        
        
            
            Default visitor for children. Simply visit all children, and
            try to get keys for those nodes (relops, physicalOps) that
            don't have keys as yet.
            
             Current node 
        
        
            
            Default visitor for RelOps. Simply visits the children, and
            then tries to recompute the NodeInfo (with the fond hope that
            some keys have now shown up)
            
        
        
            
            Visitor for a ScanTableOp. Simply ensures that the keys get
            added to the list of referenced columns
            
             current ScanTableOp 
             current subtree 
        
        
            
            Pulls up keys for a ProjectOp. First visits its children to pull
            up its keys; then identifies any keys from the input that it may have
            projected out - and adds them to the output list of vars
            
             Current ProjectOp 
             Current subtree 
        
        
            
            Comments from Murali:
            There are several cases to consider here.
            Case 0:
            Let’s assume that K1 is the set of keys ({k1, k2, ..., kn}) for the
            first input, and K2 ({l1, l2, …}) is the set of keys for the second
            input.
            The best case is when both K1 and K2 have the same cardinality (hopefully
            greater than 0), and the keys are in the same locations (ie) the corresponding
            positions in the select-list.  Even in this case, its not enough to take
            the keys, and treat them as the keys of the union-all. What we’ll need to
            do is to add a “branch” discriminator constant for each branch of the
            union-all, and use this as the prefix for the keys.
            For example, if I had:
            Select c1, c2, c3... from ...
            Union all
            Select d1, d2, d3... from ...
            And for the sake of argument, lets say that {c2} and {d2} are the keys of
            each of the branches. What you’ll need to do is to translate this into
            Select 0 as bd, c1, c2, c3... from ...
            Union all
            Select 1 as bd, d1, d2, d3... from ...
            And then treat {bd, c2/d2} as the key of the union-all
            Case 1:  (actually, a subcase of Case 0):
            Now, if the keys don’t align, then we can simply take the union of the
            corresponding positions, and make them all the keys (we would still need
            the branch discriminator)
            Case 2:
            Finally, if you need to “pull” up keys from either of the branches, it is
            possible that the branches get out of whack.  We will then need to push up
            the keys (with nulls if the other branch doesn’t have the corresponding key)
            into the union-all. (We still need the branch discriminator).
            Now, unfortunately, whenever we've got polymorphic entity types, we'll end up
            in case 2 way more often than we really want to, because when we're pulling up
            keys, we don't want to reason about a caseop (which is how polymorphic types
            wrap their key value).
            To simplify all of this, we:
            (1) Pulling up the keys for both branches of the UnionAll, and computing which
            keys are in the outputs and which are missing from the outputs.
            (2) Accumulate all the missing keys.
            (3) Slap a projectOp around each branch, adding a branch discriminator
            var and all the missing keys.  When keys are missing from a different
            branch, we'll construct null ops for them on the other branches.  If
            a branch already has a branch descriminator, we'll re-use it instead
            of constructing a new one.  (Of course, if there aren't any keys to
            add and it's already including the branch discriminator we won't
            need the projectOp)
            
             the UnionAllOp 
             current subtree 
        
        
            
            A nested propertyref describes a nested property access - think "a.b.c"
            
        
        
            
            Basic constructor.
            Represents the access of property "propertyRef" within property "property"
            
             the inner property 
             the outer property 
        
        
            
            Overrides the default equality function. Two NestedPropertyRefs are
            equal if the have the same property name, and the types are the same
            
        
        
            
            Overrides the default hashcode function. Simply adds the hashcodes
            of the "property" and "propertyRef" fields
            
        
        
            
            the nested property
            
        
        
            
            the parent property
            
        
        
            
            This class "pulls" up nest operations to the root of the tree
            
            
            The goal of this module is to eliminate nest operations from the query - more
            specifically, the nest operations are pulled up to the root of the query instead.
            
        
        
            
            map from a collection var to the node where it's defined; the node should be
            the node that should be used as the replacement for the var if it is referred
            to in an UnnestOp (through a VarRef)  Note that we expect this to contain the
            PhysicalProjectOp of the node, so we can use the VarList when mapping vars to
            the copy; (We'll remove the PhysicalProjectOp when we copy it...)
            
        
        
            
            map from var to the var we're supposed to replace it with
            
        
        
            
            Map from VarRef vars to what they're referencing; used to enable the defining
            node map to contain only the definitions, not all the references to it.
            
        
        
            
            Whether a sort was encountered under an UnnestOp.
            If so, sort removal needs to be performed.
            
        
        
            
            The driver routine. Does all the hard work of processing
            
        
        
            
            is the node a NestOp node?
            
        
        
            
            Not Supported common processing
            For all those cases where we don't intend to support
            a nest operation as a child, we have this routine to
            do the work.
            
        
        
            
            Follow the VarRef chain to the defining var
            
        
        
            
            Update the replacement Var map with the vars from the pulled-up
            operation; the shape is supposed to be identical, so we should not
            have more vars on either side, and the order is guaranteed to be
            the same.
            
        
        
            
            Replace a list of sortkeys *IN-PLACE* with the corresponding "mapped" Vars
            
             sortkeys 
             the mapping info for Vars 
        
        
            
            Produce a "mapped" sequence of the input Var sequence - based on the supplied
            map
            
             input var sequence 
             var->var map 
             the mapped var sequence 
        
        
            
            Produce a "mapped" varList
            
        
        
            
            Produce a "mapped" varVec
            
        
        
            
            VarDefOp
            Essentially, maintains m_varRefMap, adding an entry for each VarDef that has a
            VarRef on it.
            
        
        
            
            VarRefOp
            
            
            When we remove the UnnestOp, we are left with references to it's column vars that
            need to be fixed up; we do this by creating a var replacement map when we remove the
            UnnestOp and whenever we find a reference to a var in the map, we replace it with a
            reference to the replacement var instead;
            
        
        
            
            We don't yet support nest pullups over Case
            
        
        
            
            The input to Exists is always a ProjectOp with a single constant var projected.
            If the input to that ProjectOp contains nesting, it may end up with additional outputs after being
            processed. If so, we clear out those additional outputs.
            
        
        
            
            Default RelOp processing:
            We really don't want to allow any NestOps through; just fail if we don't have
            something coded.
            
        
        
            
            ApplyOp/JoinOp common processing
            
            
            If one of the inputs to any JoinOp/ApplyOp is a NestOp, then the NestOp
            can be pulled above the join/apply if every input to the join/apply has
            a key(s). The keys of the NestOp are augmented with the keys of the
            other join inputs:
            JoinOp/ApplyOp(NestOp(X, ...), Y) => NestOp(JoinOp/ApplyOp(X, Y), ...)
            In addition, if the NestOp is on a 'nullable' side of a join (i.e. right side of
            LeftOuterJoin/OuterApply or either side of FullOuterJoin), the driving node
            of that NestOp (X) is capped with a project with a null sentinel and
            the dependant collection nodes (the rest of the NestOp children)
            are filtered based on that sentinel:
            LOJ/OA/FOJ (X, NestOp(Y, Z1, Z2, ..ZN))  =>  NestOp( LOJ/OA/FOJ (X, PROJECT (Y, v = 1)), FILTER(Z1, v!=null), FILTER(Z2, v!=null), ... FILTER(ZN, v!=null))
            FOJ (NestOp(Y, Z1, Z2, ..ZN), X)  =>  NestOp( LOJ/OA/FOJ (PROJECT (Y, v = 1), X), FILTER(Z1, v!=null), FILTER(Z2, v!=null), ... FILTER(ZN, v!=null))
            Also, FILTER(Zi, v != null) may be transformed to push the filter below any NestOps.
            The definitions for collection vars corresponding to the filtered collection nodes (in m_definingNodeMap)
            are also updated to filter based on the sentinel.
            Requires: Every input to the join/apply must have a key.
            
        
        
            
            Applies a IsNotNull(sentinelVar) filter to the given node.
            The filter is pushed below all MultiStremNest-s, because this part of the tree has
            already been visited and it is expected that the MultiStreamNests have bubbled up
            above the filters.
            
        
        
            
            Input =>  Filter(input, Ref(var) is not null)
            
        
        
            
            ApplyOp common processing
            
        
        
            
            DistinctOp
            
            
            The input to a DistinctOp cannot be a NestOp – that would imply that
            we support distinctness over collections - which we don’t.
            
        
        
            
            FilterOp
            
            
            If the input to the FilterOp is a NestOp, and if the filter predicate
            does not reference any of the collection Vars of the nestOp, then the
            FilterOp can be simply pushed below the NestOp:
            Filter(Nest(X, ...), pred) => Nest(Filter(X, pred), ...)
            Note: even if the filter predicate originally referenced one of the
            collection vars, as part of our bottom up traversal, the appropriate
            Var was replaced by a copy of the source of the collection. So, this
            transformation should always be legal.
            
        
        
            
            GroupByOp
            
            
            At this point in the process, there really isn't a way we should actually
            have a NestOp as an input to the GroupByOp, and we currently aren't allowing
            you to specify a collection as an aggregation Var or key, so if we find a
            NestOp anywhere on the inputs, it's a NotSupported situation.
            
        
        
            
            GroupByIntoOp
            
            
            Transform the GroupByInto node into a Project over a GroupBy. The project
            outputs all keys and aggregates produced by the GroupBy and has the definition of the
            group aggregates var in its var def list.
            GroupByInto({key1, key2, ... , keyn}, {fa1, fa1, ... , fan}, {ga1, ga2, ..., gn}) =>
            Project(GroupBy({key1, key2, ... , keyn}, {fa1, fa1, ... , fan}),   // input
            {ga1, ga2, ..., gn}                                         // vardeflist
            
        
        
            
            JoinOp common processing
            
        
        
            
            ProjectOp
            
            
            If after visiting the children, the ProjectOp's input is a SortOp, swap the ProjectOp and the SortOp,
            to allow the SortOp to bubble up and be honored. This may only occur if the original input to the
            ProjectOp was an UnnestOp.
            There are three cases to handle in ProjectOp:
            (1) The input is not a NestOp; but the ProjectOp locally defines some Vars
            as collections:
            ProjectOp(X,{a,CollectOp(PhysicalProjectOp(Y)),b,...}) ==> MsnOp(ProjectOp'(X,{a,b,...}),Y)
            ProjectOp(X,{a,VarRef(ref-to-collect-var-Y),b,...})    ==> MsnOp(ProjectOp'(X,{a,b,...}),copy-of-Y)
            Where:
            ProjectOp' is ProjectOp less any vars that were collection vars, plus
            any additional Vars needed by the collection.
            (2) The input is a NestOp, but the ProjectOp does not local define some Vars
            as collections:
            ProjectOp(MsnOp(X,Y,...)) => MsnOp'(ProjectOp'(X),Y,...)
            Where:
            ProjectOp' is ProjectOp plus any additional Vars needed by NestOp
            (see NestOp.Outputs – except the collection vars)
            MsnOp'     should be MsnOp. Additionally, its Outputs should be enhanced
            to include any Vars produced by the ProjectOp
            (3) The combination of both (1) and (2) -- both the vars define a collection,
            and the input is also a nestOp.  we handle this by first processing Case1,
            then processing Case2.
            
        
        
            
            Helper method for .
            
        
        
            
            Fold nested MultiStreamNestOps into one:
            MSN(MSN(X,Y),Z) ==> MSN(X,Y,Z)
            NOTE: It would be incorrect to merge NestOps from the non-driving node
            into one nest op, because that would change the intent.  Instead,
            we let those go through the tree and wait until we get to the top
            level PhysicalProject, when we'll use the ConvertToSingleStreamNest
            process to handle them.
            NOTE: We should never have three levels of nestOps, because we should
            have folded the lower two together when we constructed one of them.
            We also remove unreferenced collections, that is, if any collection is
            not referred to by the top level-NestOp, we can safely remove it from
            the merged NestOp we produce.
            
        
        
            
            ProjectOp(X,{a,CollectOp(PhysicalProjectOp(Y)),b,...}) ==> MsnOp(ProjectOp'(X,{a,b,...}),Y)
            ProjectOp(X,{a,VarRef(ref-to-collect-var-Y),b,...})    ==> MsnOp(ProjectOp'(X,{a,b,...}),copy-of-Y)
            Remove CollectOps from projection, constructing a NestOp
            over the ProjectOp.
            
        
        
            
            If we're going to eat the ProjectNode, then we at least need to make
            sure we remap any vars it defines as varRefs, and ensure that any
            references to them are switched.
            
        
        
            
            We need to make sure that we remap the column maps that we're pulling
            up to point to the defined var, not it's reference.
            
        
        
            
            Convert a CollectOp subtree (when used as the defining expression for a
            VarDefOp) into a reasonable input to a NestOp.
            
            
            There are a couple of cases that we handle here:
            (a) PhysicalProject(X) ==> X
            (b) PhysicalProject(Sort(X)) ==> Sort(X)
            
             the child of the CollectOp 
             the collectionVar being defined 
             where to append the new collectionInfo 
             where to append the collectionNode 
             a bit vector of external references of the physicalProject 
             a bit vector of collection vars 
        
        
            
            Case 2 for ProjectOp: NestOp is the input:
            ProjectOp(NestOp(X,Y,...)) => NestOp'(ProjectOp'(X),Y,...)
            Remove collection references from the ProjectOp and pull the
            NestOp over it, adding any outputs that the projectOp added.
            The outputs are important here; expanding the above:
            P{a,n}(N{x1,x2,x3,y}(X,Y)) => N{a,x1,x2,x3,y}(P{a,x1,x2,x3}(X),Y)
            Strategy:
            (1) Determine oldNestOpCollectionOutputs
            (2) oldNestOpNonCollectionOutputs = oldNestOpOutputs - oldNestOpCollectionOutputs;
            (3) oldProjectOpNonCollectionOutputs = oldProjectOpOutputs - oldNestOpCollectionOutputs
            (4) oldProjectOpCollectionOutputs = oldProjectOpOutputs - oldProjectOpNonCollectionOutputs
            (5) build a new list of collectionInfo's for the new NestOp, including
            only oldProjectOpCollectionOutputs.
            (6) leftCorrelationVars = vars that are defined by the left most child of the input nestOpNode
            and used in the subtrees rooted at the other children of the input nestOpNode
            (7) newProjectOpOutputs = oldProjectOpNonCollectionOutputs + oldNestOpNonCollectionOutputs + leftCorrelationVars
            (8) newProjectOpChildren = ....
            Of course everything needs to be "derefed", that is, expressed in the projectOp Var Ids.
            (9) Set ProjectOp's input to NestOp's input
            (10) Set NestOp's input to ProjectOp.
            
        
        
            
            SetOp common processing
            
            
            The input to an IntersectOp or an ExceptOp cannot be a NestOp – that
            would imply that we support distinctness over collections  - which
            we don’t.
            UnionAllOp is somewhat trickier. We would need a way to percolate keys
            up the UnionAllOp – and I’m ok with not supporting this case for now.
            
        
        
            
            SingleRowOp
            SingleRowOp(NestOp(x,...)) => NestOp(SingleRowOp(x),...)
            
        
        
            
            SortOp
            
            
            If the input to a SortOp is a NestOp, then none of the sort
            keys can be collection Vars of the NestOp – we don't support
            sorts over collections.
            
        
        
            
            ConstrainedSortOp
            
            
            Push the ConstrainedSortOp onto the driving node of the NestOp:
            ConstrainedSortOp(NestOp(X,Y,...)) ==> NestOp(ConstrainedSortOp(X),Y,...)
            There should not be any need for var renaming, because the ConstrainedSortOp cannot
            refer to any vars from the NestOp
            
        
        
            
            Helper method used by Visit(ConstrainedSortOp, Node)and Visit(SortOp, Node).
            It returns a NestBaseOp equivalent to the inputNestOp, only with the given sortKeys
            prepended to the prefix sort keys already on the inputNestOp.
            
        
        
            
            Helper method that given two lists of sort keys creates a single list of sort keys without duplicates.
            First the keys from the first given list are added, then from the second one.
            
        
        
            
            UnnestOp
            
            
            Logically, the UnnestOp can simply be replaced with the defining expression
            corresponding to the Var property of the UnnestOp. The tricky part is that
            the UnnestOp produces a set of ColumnVars which may be referenced in other
            parts of the query, and these need to be replaced by the corresponding Vars
            produced by the defining expression.
            There are essentially four cases:
            Case 1: The UnnestOps Var is a UDT. Only the store can handle this, so we
            pass it on without changing it.
            Case 2: The UnnestOp has a Function as its input.  This implies that the
            store has TVFs, which it can Unnest, so we let it handle that and do
            nothing.
            Case 3: The UnnestOp Var defines a Nested collection.  We'll just replace
            the UnnestOp with the Input:
            UnnestOp(VarDef(CollectOp(PhysicalProjectOp(input)))) => input
            Case 4: The UnnestOp Var refers to a Nested collection from elsewhere.  As we
            discover NestOps, we maintain a var->PhysicalProject Node map.  When
            we get this case, we just make a copy of the PhysicalProject node, for
            the referenced Var, and we replace the UnnestOp with it.
            UnnestOp(VarDef(VarRef(v))) ==> copy-of-defining-node-for-v
            Then, we need to update all references to the output Vars (ColumnVars) produced
            by the Unnest to instead refer to the Vars produced by the copy of the subquery.
            We produce a map from the Vars of the subquery to the corresponding vars of the
            UnnestOp. We then use this map as we walk up the tree, and replace any references
            to the Unnest Vars by the new Vars.
            To simplify this process, as part of the ITreeGenerator, whenever we generate
            an UnnestOp, we will generate a ProjectOp above it – which simply selects out
            all Vars from the UnnestOp; and has no local definitions. This allows us to
            restrict the Var->Var replacement to just ProjectOp.
            
        
        
            
            Copies the given defining node for a collection var, but also makes sure to 'register' all newly
            created collection vars (i.e. copied).
            SQLBUDT #557427: The defining node that is being copied may itself contain definitions to other
            collection vars. These defintions would be present in m_definingNodeMap. However, after we make a copy
            of the defining node, we need to make sure to also put 'matching' definitions of these other collection
            vars into m_definingNodeMap.
            The dictionary collectionVarDefinitions (below) contains the copied definitions of such collection vars.
            but without the wrapping PhysicalProjectOp.
            Example:     m_definingNodeMap contains (var1, definition1) and (var2, definintion2).
            var2 is defined inside the definition of var1.
            Here we copy definition1 -> definintion1'.
            We need to add to m_definitionNodeMap (var2', definition2').
            definition2' should be a copy of definiton2 in the context of to definition1',
            i.e. definition2' should relate to definition1' in same way that definition2 relates to definition1
            
        
        
            
            MultiStreamNestOp/SingleStreamNestOp common processing.
            Pretty much just verifies that we didn't leave a NestOp behind.
            
        
        
            
            PhysicalProjectOp
            
            
            Tranformation:
            PhysicalProjectOp(MultiStreamNestOp(...)) => PhysicalProjectOp(SortOp(...))
            Strategy:
            (1) Convert MultiStreamNestOp(...) => SingleStreamNestOp(...)
            (2) Convert SingleStreamNestOp(...) => SortOp(...)
            (3) Fixup the column maps.
            
        
        
            
            Build up a sort node above the nestOp's input - only if there
            are any sort keys to produce
            
        
        
            
            Build up the list of sortkeys. This list should comprise (in order):
            - Any prefix sort keys (these represent sort operations on the
            driving table, that were logically above the nest)
            - The keys of the nest operation
            - The discriminator column for the nest operation
            - the list of postfix sort keys (used to represent nested collections)
            Note that we only add the first occurrance of a var to the list; further
            references to the same variable would be trumped by the first one.
            
        
        
            
            convert MultiStreamNestOp to SingleStreamNestOp
            
            
            A MultiStreamNestOp is typically of the form M(D, N1, N2, ..., Nk)
            where D is the driver stream, and N1, N2 etc. represent the collections.
            In general, this can be converted into a SingleStreamNestOp over:
            (D+ outerApply N1) AugmentedUnionAll (D+ outerApply N2) ...
            Where:
            D+ is D with an extra discriminator column that helps to identify
            the specific collection.
            AugmentedUnionAll is simply a unionAll where each branch of the
            unionAll is augmented with nulls for the corresponding columns
            of other tables in the branch
            The simple case where there is only a single nested collection is easier
            to address, and can be represented by:
            MultiStreamNest(D, N1) => SingleStreamNest(OuterApply(D, N1))
            The more complex case, where there is more than one nested column, requires
            quite a bit more work:
            MultiStreamNest(D, X, Y,...) => SingleStreamNest(UnionAll(Project{"1", D1...Dn, X1...Xn, nY1...nYn}(OuterApply(D, X)), Project{"2", D1...Dn, nX1...nXn, Y1...Yn}(OuterApply(D, Y)), ...))
            Where:
            D           is the driving collection
            D1...Dn     are the columns from the driving collection
            X           is the first nested collection
            X1...Xn     are the columns from the first nested collection
            nX1...nXn   are null values for all columns from the first nested collection
            Y           is the second nested collection
            Y1...Yn     are the columns from the second nested collection
            nY1...nYn   are null values for all columns from the second nested collection
            
        
        
            
            "Normalize" each input to the NestOp.
            We're now in the context of a MultiStreamNestOp, and we're trying to convert this
            into a SingleStreamNestOp.
            Normalization specifically refers to
            - augmenting each input with a discriminator value (that describes the collection)
            - removing the sort node at the root (and capturing this information as part of the sortkeys)
            
             the nestOp 
             the nestOp subtree 
             Discriminator Vars for each Collection input 
             SortKeys (postfix) for each Collection input 
        
        
            
            'Extend' a given input node to also project out an internal integer constant with the given value
            
        
        
            
            Add a constant to a node. Specifically:
            N ==> Project(N,{definitions-from-N, constant})
            
             the input node to augment 
             The fucntion to create the constant op 
             the computed Var for the internal constant 
             the augmented node 
        
        
            
            Convert a SingleStreamNestOp into a massive UnionAllOp
            
        
        
            
            Get back an ordered list of outputs from a union-all op. The ordering should
            be identical to the ordered list "leftVars" which describes the left input of
            the unionAllOp
            
             the unionall Op 
             vars of the left input 
             output vars ordered in the same way as the left input 
        
        
            
            the iqt we're processing
            
        
        
            
            The goal of this module is to eliminate all references to nominal types
            in the tree. Additionally, all structured types are replaced by "flat"
            record types - where every field of the structured type is a scalar type.
            Note that UDTs are not considered to be structured types.
            At the end of this phase,
            * there are no more nominal types in the tree
            * there are no more nested record types in the tree
            * No Var in the tree is of an structured type
            * Additionally (and these follow from the statements above)
            * There are no NewInstanceOp constructors in the tree
            * There are no PropertyOp operators where the result is a structured type
            This module uses information from the PropertyPushdown phase to "optimize"
            structured type elimination. Essentially, if we can avoid producing pieces
            of information that will be discarded later, then lets do that.
            The general mechanism of type elimination is as follows. We walk up the tree
            in a bottom up fashion, and try to convert all structured types into flattened
            record types - type constructors are first converted into flat record constructors
            and then dismantled etc. The barrier points - Vars - are all converted into
            scalar types, and all intermediate stages will be eliminated in transition.
            The output from this phase includes a ColumnMap - which is used later by
            the execution model to produce results in the right form from an otherwise
            flat query
            Notes: This phase could be combined later with the PropertyPushdown phase
            
        
        
            
            Eliminates all structural types from the query
            
             current compiler state 
             
             inferred s-space keys for TVFs that are mapped to entities 
        
        
            
            The real driver. Invokes the visitor to traverse the tree bottom-up,
            and modifies the tree along the way.
            
        
        
            
            Get the "new" type corresponding to the input type.
            For structured types, we simply look up the typeInfoMap
            For collection types, we create a new collection type based on the
            "new" element type.
            For enums we return the underlying type of the enum type.
            For strong spatial types we return the union type that includes the strong spatial type.
            For all other types, we simply return the input type
            
        
        
            
            This function builds a "property accessor" over the input expression.  It
            can produce one of three results:
            - It can return "null", if it is convinced that the input has no
            such expression
            - It can return a subnode of the input, if that subnode represents
            the property
            - Or, it can build a PropertyOp explicitly
            Assertion: the property is not a structured type
            
             The input expression 
             The desired property 
        
        
            
            A BuildAccessor variant. If the appropriate property was not found, then
            build up a null constant instead
            
        
        
            
            Builds up an accessor to the typeid property. If the type has no typeid
            property, then we simply create a constantOp with the corresponding
            typeid value for the type
            
             the input expression 
             the original type of the input expression 
        
        
            
            Builds a SoftCast operator over the input - if one is necessary.
            
             the input expression to "cast" 
             the target type 
             the "cast"ed expression 
        
        
            
            Clones a subtree.
            This is used by the "BuildAccessor" routines to build a property-accessor
            over some input. If we're reusing the input, the input must be cloned.
            
             The subtree to copy 
        
        
            
            Returns a node for a null constant of the desired type
            
        
        
            
            Create a node to represent nullability.
            
             Node for the typeid constant 
        
        
            
            Create a node to represent the exact value of the typeid constant
            
             The current type 
             Node for the typeid constant 
        
        
            
            Create a node to represent a typeid constant for a prefix match.
            If the typeid value were "123X", then we would generate a constant
            like "123X%"
            
             the current type 
             Node for the typeid constant 
        
        
            
            Identify the list of property refs for comparison and isnull semantics
            
        
        
            
            Get the list of "desired" propertyrefs for the specified type and operation
            
        
        
            
            Get a list of "desired" properties for each operationKind (specified by the opKind
            parameter). The OpKinds we support are
            * GetKeys
            Applies only to entity and ref types - gets the key properties (more specifically
            the flattened equivalents)
            * GetIdentity
            Applies only to entity and ref types - gets the entityset id property first, and then the
            the Key properties
            * All
            Gets all properties of the flattened type
            * Equality
            Scalar types - the entire instance
            Entity - the identity properties
            Ref - all properties (= identity properties)
            Complex/Collection - Not supported
            Record - recurse over each property
            * IsNull
            Scalar types - entire instance
            Entity - typeid property, if it exists; otherwise, the key properties
            ComplexType - typeid property
            Ref - all properties
            Collection - not supported
            Record - recurse over each property
            
             Type information for the current op 
             Current operation kind 
             List of desired properties 
        
        
            
            Get a list of properties and value (expressions) for each desired property of the
            input. The list of desired properties is based on the opKind parameter.
            The ignoreMissingProperties indicates if we should create a null constant, in case
            the input cannot produce the specified property
            
             typeinfo for the input 
             Current operation kind 
             The input expression tree 
             Should we ignore missing properties 
             Output: list of properties 
             Output: correspondng list of values 
        
        
            
            Build up a key-value pair of (property, expression) to represent
            the extraction of the appropriate property from the input expression
            
             The input (structured type) expression 
             The property in question 
             should we ignore missing properties 
        
        
            
            Walk the SortKeys, and expand out
            any Structured type Var references
            If any of the sort keys is expanded to include a var representing a null sentinel,
            set PlanCompiler.HasSortingOnNullSentinels to true.
            
             The list of input keys 
             An expanded list of keys. If there is nothing to expand it returns the original list. 
        
        
            
            Project properties of  that represents the flattened type of the
            
            .
            The  contains a TVF call.
            Return new node with ProjectOp and  representing the projection outputs.
            
        
        
            
            VarDefListOp
            Walks each VarDefOp child, and "expands" it out if the Var is a
            structured type. If the Var is of enum type it replaces the var
            with a var whose type is the underlying type of the enum type from
            the original Var.  If the Var is of strong spatial type it replaces the var
            with a var whose type is the spatial union type that contains the strong spatial type of
            the original Var.
            For each Var that is expanded, a new expression is created to compute
            its value (from the original computed expression)
            A new VarDefListOp is created to hold all the "expanded" Varlist
            
        
        
            
            Helps flatten out a computedVar expression
            
             The Var 
             Subtree rooted at the VarDefOp expression 
             list of new nodes produced 
             
        
        
            
            Is the given propertyRef representing a null sentinel
            It is if:
            - it is a NullSentinelPropertyRef
            - it is a NestedPropertyRef with the outer property being a NullSentinelPropertyRef
            
        
        
            
            Helps flatten out an enum or strong spatial Var
            
             Var definition expression. Must not be null. 
             Subtree rooted at the VarDefOp expression. Must not be null. 
             VarDefNode referencing the newly created Var. 
        
        
            
            PhysicalProjectOp
            
        
        
            
            Walk the input var sequence, flatten each var, and return the new sequence of
            Vars
            
             input Var sequence 
             flattened output var sequence 
        
        
            
            Probe the current VarSet for "structured" Vars - replace these with the
            corresponding sets of flattened Vars
            
             current set of vars 
             an "expanded" varset 
        
        
            
            Build up a new varlist, where each structured var has been replaced by its
            corresponding flattened vars
            
             the varlist to flatten 
             the new flattened varlist 
        
        
            
            Simply flatten out every var in the keys, and return a new DistinctOp
            
             DistinctOp 
             Current subtree 
        
        
            
            GroupBy
            Again, VisitChildren - for the Keys and Properties VarDefList nodes - does
            the real work.
            The "Keys" and the "OutputVars" varsets are updated to flatten out
            references to any structured Vars.
            
        
        
            
            GroupByInto
            Again, VisitChildren - for the Keys and Properties VarDefList nodes - does
            the real work.
            The "Keys", "InputVars" and "OutputVars" varsets are updated to flatten out
            references to any structured Vars.
            
        
        
            
            ProjectOp
            The computedVars (the VarDefList) are processed via the VisitChildren() call
            We then try to update the "Vars" property to flatten out any structured
            type Vars - if a new VarSet is produced, then the ProjectOp is cloned
            
             new subtree 
        
        
            
            ScanTableOp
            Visit a scanTable Op. Flatten out the table's record into one column
            for each field. Additionally, set up the VarInfo map appropriately
            
             new subtree 
        
        
            
            Get the *single" var produced by the subtree rooted at this node.
            Returns null, if the node produces more than one var, or less than one
            
             the node 
             the single var produced by the node 
        
        
            
            ScanViewOp
            Flatten out the view definition, and return that after
            the appropriate remapping
            
             the ScanViewOp 
             current subtree 
             the flattened view definition 
        
        
            
            Convert a SortOp. Specifically, walk the SortKeys, and expand out
            any Structured type Var references
            
             the sortOp 
             the current node 
             new subtree 
        
        
            
            UnnestOp
            Converts an UnnestOp to the right shape.
            - Visits UnnestOp input node and then rebuilds the Table instance according to the new flattened output of the input node.
            - In the case of a TVF call represented by Unnest(Func()) builds another projection that converts raw TVF output to a collection of flattened rows:
            Unnest(Func()) -> Project(Unnest(Func()))
            
             new subtree 
        
        
            
            SetOp
            Converts all SetOps - union/intersect/except.
            Calls VisitChildren() to do the bulk of the work. After that, the VarMaps
            need to be updated to reflect the removal of any structured Vars
            
             new subtree 
        
        
            
            Fixes up a SetOp child.
            As part of Var flattening, it may so happen that the outer var in the VarMap
            may require a property that has no corresponding analog in the inner Var
            This logically implies that the corresponding inner property is null. H
            What we do here is to throw an additional projectOp over the setOp child to
            add computed Vars (whose defining expressions are null constants) for each
            of those missing properties
            
             one child of the setop 
             the varmap for this child 
             list of new Vars produced 
             new node for the setOpchild (if any) 
        
        
            
            Flattens out a VarMap.
            Any structured type Vars are expanded out; and collection type Vars
            are replaced by new Vars that reflect the new collection types.
            There is one special case when dealing with Structured type Vars -
            the output and input vars may no longer be 1-1; specifically, there
            may be no input Var corresponding to an output var. In such cases, we
            build up a new ComputedVar (with an expected value of null), and use that
            in place of the inner var. A subsequent stage will inspect the list of
            new ComputedVars, and perform the appropriate fixups
            
             The VarMap to fixup 
             list of any new computedVars that are created 
             a new VarMap 
        
        
            
            Flattens a SetOpVar (used in SetOps). Simply produces a list of
            properties corresponding to each desired property
            
        
        
            
            SoftCastOp
            Visit the children first.
            If this is an entity type, complextype or ref type, simply return the
            visited child. (Rationale: These must be in the same type hierarchy; or
            the earlier stages of query would have failed. And, we end up
            using the same "flat" type for every type in the hierarchy)
            If this is a scalar type, then simply return the current node
            If this is a collection type, then create a new softcastOp over the input
            (the collection type may have changed)
            Otherwise, we're dealing with a record type. Since our earlier
            definitions of equivalence required that equivalent record types must
            have the same number of fields, with "promotable" types, and in the same
            order; *and* since we asked for all properties (see PropertyPushdownHelper),
            the input must be a NewRecordOp, whose fields line up 1-1 with our fields.
            Build up a new NewRecordOp based on the arguments to the input NewRecordOp,
            and build up SoftCastOps for any field whose type does not match
            
        
        
            
            Removes or rewrites cast to enum or spatial type.
            
            
             operator.
            
             Current node. 
            
            Visited, possible rewritten  .
            
        
        
            
            Converts Constant enum value to its underlying type.   Converts strong spatial constants to be union typed
            The node is processed only if it represents enum or strong spatial constant.
            
            
             operator.
            
             Current node. 
            
            Possible rewritten  .
            
        
        
            
            CaseOp
            Special handling
            If the case statement is of one of the following two shapes:
            (1) case when X then NULL else Y, or
            (2) case when X then Y else NULL,
            where Y is of row type and the types of the input CaseOp, the NULL and Y are the same,
            it gets rewritten into:  Y', where Y's null sentinel N' is:
            (1) case when X then NULL else N, or
            where N is Y's null sentinel.
            
             the CaseOp 
             corresponding node 
             new subtree 
        
        
            
            Given a case statement of one of the following two shapes:
            (1) case when X then NULL else Y, or
            (2) case when X then Y else NULL,
            where Y is of row type and the types of the input CaseOp, the NULL and Y are the same,
            it rewrittes into:  Y', where Y's null sentinel N' is:
            (1) case when X then NULL else N, or
            where N is Y's null sentinel.
            The rewrite only happens if:
            (1) Y has null sentinel, and
            (2) Y is a NewRecordOp.
            
             Whether a rewrite was done 
        
        
            
            Flattens a CaseOp - Specifically, if the CaseOp returns a structuredtype,
            then the CaseOp is broken up so that we build up a "flat" record constructor
            for that structured type, with each argument to the record constructor being
            a (scalar) CaseOp.  For example:
            Case when b1 then e1 else e2 end
            gets translated into:
            RecordOp(case when b1 then e1.a else e2.a end,
            case when b1 then e1.b else e2.b end,
            ...)
            The property extraction is optimized by producing only those properties
            that have actually been requested.
            
             Node corresponding to the CaseOp 
             Information about the type 
             Set of properties desired 
        
        
            
            CollectOp
            Nothing much to do - simply update the result type
            
             the NestOp 
             corresponding node 
             new subtree 
        
        
            
            ComparisonOp
            If the inputs to the comparisonOp are Refs/records/entitytypes, then
            we need to flatten these out. Of course, the only reasonable comparisons
            should be EQ and NE
            
        
        
            
            ConditionalOp
            IsNull requires special handling.
            
        
        
            
            Convert a ConstrainedSortOp. Specifically, walk the SortKeys, and expand out
            any Structured type Var references
            
             the constrainedSortOp 
             the current node 
             new subtree 
        
        
            
            GetEntityKeyOp
            
        
        
            
            GetRefKeyOp
            
        
        
            
            GetEntityKeyOp/GetRefKeyOp common handling
            In either case, get the "key" properties from the input entity/ref, and
            build up a record constructor from these values
            
             the GetRefKey/GetEntityKey op 
             current subtree 
             new expression subtree 
        
        
            
            Common handler for PropertyOp and RelPropertyOp
            
             
             
             
             ignore missing properties 
        
        
            
            PropertyOp
            If this is a scalar/collection property, then simply get the appropriate
            field out.
            Otherwise, build up a record constructor corresponding to the result
            type - optimize this by only getting those properties that are needed
            If the instance is not a structured type (ie) it is a UDT, then simply return
            
             the PropertyOp 
             the corresponding node 
             new subtree 
        
        
            
            RelPropertyOp. Pick out the appropriate property from the child
            
        
        
            
            RefOp
            Simply convert this into the corresponding record type - with one
            field for each key, and one for the entitysetid
            
        
        
            
            VarRefOp
            Replace a VarRef with a copy of the corresponding "Record" constructor.
            For collection and enum Var references replaces VarRef with the new Var
            stored in the VarInfo.
            
             the VarRefOp 
             the node 
             new subtree 
        
        
            
            Handler for NewEntity
            
        
        
            
            NewInstanceOp
            
             the NewInstanceOp 
             corresponding node 
             new subtree 
        
        
            
            DiscriminatedNewInstanceOp
            
             the DiscriminatedNewInstanceOp 
             corresponding node 
             new subtree 
        
        
            
            Given an explicit discriminator value, map to normalized values. Essentially, this allows
            a discriminated new instance to coexist with free-floating entities, MEST, etc. which use
            general purpose ordpath type ids (e.g. '0X0X')
            An example of the normalization is given:
            CASE
            WHEN discriminator = 'Base' THEN '0X'
            WHEN discriminator = 'Derived1' THEN '0X0X'
            WHEN discriminator = 'Derived2' THEN '0X1X'
            ELSE '0X2X' -- default case for 'Derived3'
            
        
        
            
            NewRecordOp
            
             the newRecordOp 
             corresponding node 
             new subtree 
        
        
            
            Build out an expression corresponding to the entitysetid
            
             the property corresponding to the entitysetid 
             the *NewEntity op 
        
        
            
            Flattens out a constructor into a "flat" record constructor.
            The "flat" record type is looked up for the current constructor's type,
            and each property is filled out from the current constructor's fields
            
             The NewRecordOp/NewInstanceOp 
             The current subtree 
             the new subtree 
        
        
            
            NullOp
            If the node represents a null of an entity type it 'flattens' it into a new record,
            with at most one non-null value: for the typeIdProperty, if one is needed.
            If the node represents an null of a non-entity type, no special work is done.
            
             The NullOp 
             The current subtree 
             the new subtree 
        
        
            
            IsOf
            Convert an IsOf operator into a typeid comparison:
            IsOfOnly(e, T) => e.TypeId == TypeIdValue(T)
            IsOf(e, T)     => e.TypeId like TypeIdValue(T)% escape null
            
             The IsOfOp to handle 
             current isof subtree 
             new subtree 
        
        
            
            TreatOp
            TreatOp(e, T) => case when e.TypeId like TypeIdValue(T) then T else null end
            
             the TreatOp 
             the node 
             new subtree 
        
        
            
            Create a typeid-comparison operator - more specifically, create an
            operator that compares a typeid value with the typeid property of an
            input structured type.
            The comparison may be "exact" - in which case we're looking for the exact
            type; otherwise, we're looking for any possible subtypes.
            The "exact" variant is used by the IsOfOp (only); the other variant is
            used by IsOfOp and TreatOp
            
             The input structured type expression 
             Augmented type information for the type 
             Exact comparison? 
             New comparison expression 
        
        
            
            Create a filter matching all types in the given hierarchy (typeIdProperty IN typeInfo.Hierarchy) e.g.:
            typeIdProperty = 'Base' OR typeIdProperty = 'Derived1' ...
            This is called only for types using DiscriminatorMap (explicit discriminator values)
            
             type hierarchy check 
        
        
            
            Generates a node of the form typeIdProperty = typeInfo.TypeId
            
             type equality check 
        
        
            
            The datatype of the typeid property
            
        
        
            
            Describes an operation kind - for various property extractions
            
        
        
            
            Comparing two instances for equality
            
        
        
            
            Checking to see if an instance is null
            
        
        
            
            Getting the "identity" of an entity
            
        
        
            
            Getting the keys of an entity
            
        
        
            
            All properties of an entity
            
        
        
            
            The normalizer performs transformations of the tree to bring it to a 'normalized' format
            
        
        
            
            The SubqueryTracking Visitor serves as a base class for the visitors that may turn
            scalar subqueryies into outer-apply subqueries.
            
        
        
            
            Adds a subquery to the list of subqueries for the relOpNode
            
             the RelOp node 
             the subquery 
        
        
            
            Add a subquery to the "parent" relop node
            
             the output var to be used - at the current location - in lieu of the subquery 
             the subquery to move 
             a var ref node for the var returned from the subquery 
        
        
            
            Find the first RelOp node that is in my ancestral path.
            If I see a PhysicalOp, then I don't have a RelOp parent
            
             the first RelOp node 
        
        
            
            Extends the base class implementation of VisitChildren.
            Wraps the call to visitchildren() by first adding the current node
            to the stack of "ancestors", and then popping back the node at the end
            
             Current node 
        
        
            
            Augments a node with a number of OuterApply's - one for each subquery
            If S1, S2, ... are the list of subqueries for the node, and D is the
            original (driver) input, we convert D into
            OuterApply(OuterApply(D, S1), S2), ...
            
             the input (driver) node 
             List of subqueries 
             should the input node be first in the apply chain, or the last? 
             The resulting node tree 
        
        
            
            Default processing for RelOps.
            - First, we mark the current node as its own ancestor (so that any
            subqueries that we detect internally will be added to this node's list)
            - then, visit each child
            - finally, accumulate all nested subqueries.
            - if the current RelOp has only one input, then add the nested subqueries via
            Outer apply nodes to this input.
            The interesting RelOps are
            Project, Filter, GroupBy, Sort,
            Should we break this out into separate functions instead?
            
             Current RelOp 
             Node to process 
             Current subtree 
        
        
            
            Processing for all JoinOps
            
             Current subtree 
             Whether the node was modified 
        
        
            
            Visitor for UnnestOp. If the child has any subqueries, we need to convert this
            into an
            OuterApply(S, Unnest)
            unlike the other cases where the OuterApply will appear as the input of the node
            
             the unnestOp 
             current subtree 
             modified subtree 
        
        
            
            The driver routine.
            
             plan compiler state 
        
        
            
            Translate Exists(X) into Exists(select 1 from X)
            
        
        
            
            Build Project(select 1 from child).
            
        
        
            
            Build up an unnest above a scalar op node
            X => unnest(X)
            
             the scalarop collection node 
             the unnest node 
        
        
            
            Converts the reference to a TVF as following: Collect(PhysicalProject(Unnest(Func)))
            
             current function op 
             current function subtree 
             the new expression that corresponds to the TVF 
        
        
            
            Converts a collection aggregate function count(X), where X is a collection into
            two parts. Part A is a groupby subquery that looks like
            GroupBy(Unnest(X), empty, count(y))
            where "empty" describes the fact that the groupby has no keys, and y is an
            element var of the Unnest
            Part 2 is a VarRef that refers to the aggregate var for count(y) described above.
            Logically, we would replace the entire functionOp by element(GroupBy...). However,
            since we also want to translate element() into single-row-subqueries, we do this
            here as well.
            The function itself is replaced by the VarRef, and the GroupBy is added to the list
            of scalar subqueries for the current relOp node on the stack
            
             the functionOp for the collection agg 
             current subtree 
             the VarRef node that should replace the function 
        
        
            
            Pre-processing for a function. Does the default scalar op processing.
            If the function returns a collection (TVF), the method converts this expression into
            Collect(PhysicalProject(Unnest(Func))).
            If the function is a collection aggregate, converts it into the corresponding group aggregate.
            
        
        
            
            Processing for all JoinOps
            
             JoinOp 
             Current subtree 
        
        
            
            An NullSentinel propertyref represents the NullSentinel property for
            a row type.
            As with TypeId, this class is a singleton instance
            
        
        
            
            Gets the singleton instance
            
        
        
            
            Wrapper around OpCopier to keep track of the defining subtrees
            of collection vars defined in the subtree being returned as a copy.
            
        
        
            
            Equivalent to OpCopier.Copy, only in addition it keeps track of the defining subtrees
            of collection vars defined in the subtree rooted at the copy of the input node n.
            
        
        
            
            Tracks the collection vars after calling the base implementation
            
        
        
            
            The PlanCompiler class is used by the BridgeCommand to produce an
            execution plan - this execution plan is the plan object. The plan compilation
            process takes as input a command tree (in C space), and then runs through a
            set of changes before the final plan is produced. The final plan contains
            one or more command trees (commands?) (in S space), with a set of assembly
            instructions.
            The compiler phases include
            * Convert the command tree (CTree) into an internal tree (an ITree)
            * Run initializations on the ITree.
            * Eliminate structured types from the tree
            * Eliminating named type references, refs and records from the tree
            At the end of this phase, we still may have collections (and record
            arguments to collections) in the tree.
            * Projection pruning (ie) eliminating unused references
            * Tree transformations. Various transformations are run on the ITree to
            (ostensibly) optimize the tree. These transformations are represented as
            rules, and a rule processor is invoked.
            * Nest elimination. At this point, we try to get pull up nest operations
            as high up the tree as possible
            * Code Generation. This phase produces a plan object with various subpieces
            of the ITree represented as commands (in S space).
            * The subtrees of the ITree are then converted into the corresponding CTrees
            and converted into S space as part of the CTree creation.
            * A plan object is created and returned.
            
        
        
            
            Determines the maximum size of the query in terms of Iqt nodes for which we attempt to do transformation rules.
            This number is ignored if applyTransformationsRegardlessOfSize is enabled.
            
        
        
            
            A boolean switch indicating whether we should apply transformation rules regardless of the size of the Iqt.
            By default, the Enabled property of a boolean switch is set using the value specified in the configuration file.
            Configuring the switch with a value of 0 sets the Enabled property to false; configuring the switch with a nonzero
            value to set the Enabled property to true. If the BooleanSwitch constructor cannot find initial switch settings
            in the configuration file, the Enabled property of the new switch is set to false by default.
            
        
        
            
            The CTree we're compiling a plan for.
            
        
        
            
            The ITree we're working on.
            
        
        
            
            The phase of the process we're currently in.
            
        
        
            
            Set of phases we need to go through
            
        
        
            
            Keeps track of foreign key relationships. Needed by Join Elimination
            
        
        
            
            Can transformation rules be applied
            
        
        
            
            private constructor
            
             the input cqt 
        
        
            
            Retail Assertion code.
            Provides the ability to have retail asserts.
            
        
        
            
            Compile a query, and produce a plan
            
             the input CQT 
             list of provider commands 
             column map for result assembly 
             
             the entity sets referenced in this query 
        
        
            
            Is the specified phase needed for this query?
            
             the phase in question 
        
        
            
            Mark the specified phase as needed
            
             plan compiler phase 
        
        
            
            The real driver.
            
             list of provider commands 
             column map for the result 
             
             the entity sets exposed in this query 
        
        
            
            Helper method for applying transformation rules
            
        
        
            
            Logic to perform between each compile phase
            
        
        
            
            Compute whether transformations may be applied.
            Transformation rules may be applied only if the number of nodes is less than
            MaxNodeCountForTransformations or if it is specified that they should be applied
            regardless of the size of the query.
            
        
        
            
            Converts the CTree into an ITree, and initializes the plan
            
        
        
            
            Get the current command
            
        
        
            
            Does the command include any sort key that represents a null sentinel
            This may only be set to true in NominalTypeElimination and is used
            in Transformation Rules
            
        
        
            
            Keeps track of foreign key relationships. Needed by  Join Elimination
            
        
        
            
            The MetadataWorkspace
            
        
        
            
            To avoid processing huge trees, transformation rules are applied only if the number of nodes
            is less than MaxNodeCountForTransformations
            or if it is specified that they should be applied regardless of the size of the query.
            Whether to apply transformations is only computed the first time this property is requested,
            and is cached afterwards. This is because we don't expect the tree to get larger
            from applying transformations.
            
        
        
            
            Enum describing which phase of plan compilation we're currently in
            
        
        
            
            Just entering the PreProcessor phase
            
        
        
            
            Entering the AggregatePushdown phase
            
        
        
            
            Entering the Normalization phase
            
        
        
            
            Entering the NTE (Nominal Type Eliminator) phase
            
        
        
            
            Entering the Projection pruning phase
            
        
        
            
            Entering the Nest Pullup phase
            
        
        
            
            Entering the Transformations phase
            
        
        
            
            Entering the JoinElimination phase
            
        
        
            
            Entering the codegen phase
            
        
        
            
            We're almost done
            
        
        
            
            Marker
            
        
        
            
            Utility class for the methods shared among the classes comprising the plan compiler
            
        
        
            
            Utility method that determines whether a given CaseOp subtree can be optimized.
            Called by both PreProcessor and NominalTypeEliminator.
            If the case statement is of the shape:
            case when X then NULL else Y, or
            case when X then Y else NULL,
            where Y is of row type, and the types of the input CaseOp, the NULL and Y are the same,
            return true
            
        
        
            
            Is this function a collection aggregate function. It is, if
            - it has exactly one child
            - that child is a collection type
            - and the function has been marked with the aggregate attribute
            
             the function op 
             the current subtree 
             true, if this was a collection aggregate function 
        
        
            
            Is the given op one of the ConstantBaseOp-s
            
        
        
            
            Combine two predicates by trying to avoid the predicate parts of the
            second one that are already present in the first one.
            In particular, given two nodes, predicate1 and predicate2,
            it creates a combined predicate logically equivalent to
            predicate1 AND predicate2,
            but it does not include any AND parts of predicate2 that are present
            in predicate1.
            
        
        
            
            Create a list of AND parts for a given predicate.
            For example, if the predicate is of the shape:
            ((p1 and p2) and (p3 and p4)) the list is p1, p2, p3, p4
            The predicates p1,p2, p3, p4 may be roots of subtrees that
            have nodes with AND ops, but
            would not be broken unless they are the AND nodes themselves.
            
        
        
            
            The Predicate class represents a condition (predicate) in CNF.
            A predicate consists of a number of "simple" parts, and the parts are considered to be
            ANDed together
            This class provides a number of useful functions related to
            - Single Table predicates
            - Join predicates
            - Key preservation
            - Null preservation
            etc.
            Note: This class doesn't really convert node trees into CNF form. It looks for
            basic CNF patterns, and reasons about them. For example,
            (a AND b) OR c
            can technically be translated into (a OR c) AND (b OR c),
            but we don't bother.
            At some future point of time, it might be appropriate to consider this
            
        
        
            
            Create an empty predicate
            
        
        
            
            Create a predicate from a node tree
            
             current iqt command 
             the node tree 
        
        
            
            Add a new "part" (simple predicate) to the current list of predicate parts
            
             simple predicate 
        
        
            
            Build up an AND tree based on the current parts.
            Specifically, if I have parts (p1, p2, ..., pn), we build up a tree that looks like
            p1 AND p2 AND ... AND pn
            If we have no parts, we return a null reference
            If we have only one part, then we return just that part
            
             the and subtree 
        
        
            
            Partition the current predicate into predicates that only apply
            to the specified table (single-table-predicates), and others
            
             current columns defined by the table 
             non-single-table predicates 
             single-table-predicates 
        
        
            
            Get the set of equi-join columns from this predicate
            
        
        
            
            Is the current predicate a "key-satisfying" predicate?
            
             list of keyVars 
             current table definitions 
             true, if this predicate satisfies the keys 
        
        
            
            Does this predicate preserve nulls for the table columns?
            If the ansiNullSemantics parameter is set, then we simply return true
            always - this shuts off most optimizations
            
             list of columns to consider 
             use ansi null semantics 
             true, if the predicate preserves nulls 
        
        
            
            Is this "simple" predicate an equi-join predicate?
            (ie) is it of the form "var1 = var2"
            Return "var1" and "var2"
            
             the simple predicate 
             var on the left-side 
             var on the right 
             true, if this is an equijoin predicate 
        
        
            
            Is this an equi-join predicate involving columns from the specified tables?
            On output, if this was indeed an equijoin predicate, "leftVar" is the
            column of the left table, while "rightVar" is the column of the right table
            and the predicate itself is of the form "leftVar = rightVar"
            
             the simple predicate node 
             interesting columns of the left table 
             interesting columns of the right table 
             join column of the left table 
             join column of the right table 
             true, if this is an equijoin predicate involving columns from the 2 tables 
        
        
            
            Does this predicate preserve nulls on the specified columns of the table?
            If any of the columns participates in a comparison predicate, or in a
            not-null predicate, then, nulls are not preserved
            
             the "simple" predicate node 
             list of table columns 
             true, if nulls are preserved 
        
        
            
            The PreProcessor module is responsible for performing any required preprocessing
            on the tree and gathering information before subsequent phases may be performed.
            
        
        
            
            Tracks affinity of entity constructors to entity sets (aka scoped entity type constructors).
            Scan view ops and entityset-bound tvfs push corresponding entity sets so that their child nodes representing entity constructors could
            determine the entity set to which the constructed entity belongs.
            
        
        
            
            Helper for rel properties
            
        
        
            
            The driver routine.
            
             plan compiler state 
             type information about all types/sets referenced in the query 
             inferred key columns of tvfs return types 
        
        
            
            Mark this EntitySet as referenced in the query
            
        
        
            
            Mark this type as being referenced in the query, if it is a structured, collection or enum type.
            
             type to reference 
        
        
            
            Get the list of relationshipsets that can hold instances of the given relationshiptype
            We identify the list of relationshipsets in the current list of entitycontainers that are
            of the given type. Since we don't yet support relationshiptype subtyping, this is a little
            easier than the entity version
            
             the relationship type to look for 
             the list of relevant relationshipsets 
        
        
            
            Find all entitysets (that are reachable in the current query) that can hold instances that
            are *at least* of type "entityType".
            An entityset ES of type T1 can hold instances that are at least of type T2, if one of the following
            is true
            - T1 is a subtype of T2
            - T2 is a subtype of T1
            - T1 is equal to T2
            
             the desired entity type 
             list of all entitysets of the desired shape 
        
        
            
            Gets the "expanded" query mapping view for the specified C-Space entity set
            
             The scanTableOp that references the entity set 
            
            An optional type filter to apply to the generated view. Set to null on return if the generated view renders the type filter superfluous.
            
             A node that is the root of the new expanded view 
        
        
            
            If the discrminator map we're already tracking for this type (in this entityset)
            isn't already rooted at our required type, then we have to suppress the use of
            the descriminator maps when we constrct the structuredtypes; see SQLBUDT #615744
            
        
        
            
            Rewrites a NavigateOp tree in the following fashion
            SELECT VALUE r.ToEnd
            FROM (SELECT VALUE r1 FROM RS1 as r1
            UNION ALL
            SELECT VALUE r2 FROM RS2 as r2
            ...
            SELECT VALUE rN FROM RSN as rN) as r
            WHERE r.FromEnd = sourceRef
            RS1, RS2 etc. are the set of all relationshipsets that can hold instances of the specified
            relationship type. "sourceRef" is the single (ref-type) argument to the NavigateOp that
            represents the from-end of the navigation traversal
            If the toEnd is multi-valued, then we stick a Collect(PhysicalProject( over the subquery above
            A couple of special cases.
            If no relationship sets can be found, we return a NULL (if the
            toEnd is single-valued), or an empty multiset (if the toEnd is multi-valued)
            If the toEnd is single-valued, *AND* the input Op is a GetEntityRefOp, then
            we convert the NavigateOp into a RelPropertyOp over the entity.
            
             the navigateOp tree 
             the navigateOp 
             the output var produced by the subquery (ONLY if the to-End is single-valued) 
             the resulting node 
        
        
            
            Build up a node tree that represents the set of instances from the given table that are at least
            of the specified type ("ofType"). If "ofType" is NULL, then all rows are returned
            Return the outputVar from the nodetree
            
             the entityset or relationshipset to scan over 
             the element types we're interested in 
             the output var produced by this node tree 
             the node tree 
        
        
            
            Produces a relop tree that "logically" produces the target of the derefop. In essence, this gets rewritten
            into
            SELECT VALUE e
            FROM (SELECT VALUE e0 FROM OFTYPE(ES0, T) as e0
            UNION ALL
            SELECT VALUE e1 FROM OFTYPE(ES1, T) as e1
            ...
            SELECT VALUE eN from OFTYPE(ESN, T) as eN)) as e
            WHERE REF(e) = myRef
            "T" is the target type of the Deref, and myRef is the (single) argument to the DerefOp
            ES0, ES1 etc. are all the EntitySets that could hold instances that are at least of type "T". We identify this list of sets
            by looking at all entitycontainers referenced in the query, and looking at all entitysets in those
            containers that are of the right type
            An EntitySet ES (of entity type X) can hold instances of T, if one of the following is true
            - T is a subtype of X
            - X is equal to T
            Our situation is a little trickier, since we also need to look for cases where X is a subtype of T.
            
             the derefOp subtree 
             the derefOp 
             output var produced 
             the subquery described above 
        
        
            
            Find the entityset that corresponds to the specified end of the relationship.
            We must find one - else we assert.
            
             the relationshipset 
             the destination end of the relationship traversal 
             the entityset corresponding to the target end 
        
        
            
            Builds up a join between the relationshipset and the entityset corresponding to its toEnd. In essence,
            we produce
            SELECT r, e
            FROM RS as r, OFTYPE(ES, T) as e
            WHERE r.ToEnd = Ref(e)
            "T" is the entity type of the toEnd of the relationship.
            
             the relationshipset 
             the toEnd of the relationship 
             the var representing the relationship instance ("r") in the output subquery 
             the var representing the entity instance ("e") in the output subquery 
             the join subquery described above 
        
        
            
            Rewrite a navigation property when the target end has multiplicity
            of one (or zero..one) and the source end has multiplicity of many.
            Note that this translation is also valid for a navigation property when the target
            end has multiplicity of one (or zero..one) and the source end has multiplicity of one
            (or zero..one), but a different translation is used because it yields a simpler query in some cases.
            We simply pick up the corresponding rel property from the input entity, and
            apply a deref operation
            NavProperty(e, n) => deref(relproperty(e, r))
            where e is the entity expression, n is the nav-property, and r is the corresponding
            rel-property
            
             the rel-property describing the navigation 
             entity instance that we're starting the traversal from 
             type of the target entity 
             a rewritten subtree 
        
        
            
            Rewrite a navigation property when the source end has multiplicity
            of one (or zero..one) and the target end has multiplicity of many.
            
            We also build out a CollectOp over the subquery above, and return that
            
             the rel-property describing the relationship traversal 
             the list of relevant relationshipsets 
             node tree corresponding to the source entity ref 
             the rewritten subtree 
        
        
            
            Rewrite a navigation property when the target end has multiplicity
            of one (or zero..one) and the source end has multiplicity of one (or zero..one).
            
            We add the translation as a subquery to the parent rel op and return a reference to
            the corresponding var
            
             the rel-property describing the relationship traversal 
             the list of relevant relationshipsets 
             node tree corresponding to the source entity ref 
             the rewritten subtree 
        
        
            
            Translation for Navigation Properties with a 0 or 0..1 source end
            In essence, we find all the relevant target entitysets, and then compare the
            rel-property on the target end with the source ref
            Converts
            NavigationProperty(e, r)
            into
            SELECT VALUE t
            FROM (SELECT VALUE e1 FROM ES1 as e1
            UNION ALL
            SELECT VALUE e2 FROM ES2 as e2
            UNION ALL
            ...
            ) as t
            WHERE RelProperty(t, r') = GetEntityRef(e)
            r' is the inverse-relproperty for r
            
             the rel-property describing the relationship traversal 
             the list of relevant relationshipsets 
             node tree corresponding to the source entity ref 
             the var representing the output 
             the rewritten subtree 
        
        
            
            Rewrite a navigation property when the target end has multiplicity
            many and the source end has multiplicity of many.
            Consider this a rewrite of DEREF(NAVIGATE(r)) where "r" is a many-to-many relationship
            We essentially produce the following subquery
            SELECT VALUE x.e
            FROM (SELECT r1 as r, e1 as e FROM RS1 as r1 INNER JOIN OFTYPE(ES1, T) as e1 on r1.ToEnd = Ref(e1)
            UNION ALL
            SELECT r1 as r, e1 as e FROM RS1 as r1 INNER JOIN OFTYPE(ES1, T) as e1 on r1.ToEnd = Ref(e1)
            ...
            ) as x
            WHERE x.r.FromEnd = sourceRef
            RS1, RS2 etc. are the relevant relationshipsets
            ES1, ES2 etc. are the corresponding entitysets for the toEnd of the relationship
            sourceRef is the ref argument
            T is the type of the target-end of the relationship
            We then build a CollectOp over the subquery above
            
             the rel property to traverse 
             list of relevant relationshipsets 
             source ref 
        
        
            
            Rewrite a NavProperty; more generally, consider this a rewrite of DEREF(NAVIGATE(r))
            We handle four cases here, depending on the kind of relationship we're
            dealing with.
            - 1:1 relationships
            - 1:M relationships
            - N:1 relationships
            - N:M relationships
            
             the navigation property 
             the input ref to start the traversal 
             the result type of the expression 
             the rewritten tree 
        
        
            
            Default handler for scalar Ops. Simply traverses the children,
            and also identifies any structured types along the way
            
             the ScalarOp 
             current subtree 
             the possibly modified node 
        
        
            
            Rewrite a DerefOp subtree. We have two cases to consider here.
            We call RewriteDerefOp to return a subtree (and an optional outputVar).
            If the outputVar is null, then we simply return the subtree produced by those calls.
            Otherwise, we add the subtree to the "parent" relop (to be outer-applied), and then use the outputVar
            in its place.
            As an example,
            select deref(e) from T
            gets rewritten into
            select v from T OuterApply X
            where X is the subtree returned from the RewriteXXX calls, and "v" is the output var produced by X
            
             the derefOp 
             the deref subtree 
             the rewritten tree 
        
        
            
            Processing for an ElementOp. Replaces this by the corresponding Var from
            the subquery, and adds the subquery to the list of currently tracked subqueries
            
             the elementOp 
             current subtree 
             the Var from the subquery 
        
        
            
            Mark Normalization as needed
            
        
        
            
            Visit a function call expression. If function is mapped, expand and visit the mapping expression.
            If this is TVF or a collection aggregate function, NestPullUp and Normalization are needed.
            
        
        
            
            Default processing.
            In addition, if the case statement is of the shape
            case when X then NULL else Y, or
            case when X then Y else NULL,
            where Y is of row type and the types of the input CaseOp, the NULL and Y are the same,
            marks that type as needing a null sentinel.
            This allows in NominalTypeElimination the case op to be pushed inside Y's null sentinel.
            
        
        
            
            Special processing for ConditionalOp is handled by 
            
        
        
            
            If it is a IsNull op over a row type or a complex type mark the type as needing a null sentinel.
            
        
        
            
            Validates that the nav property agrees with the underlying relationship
            
             the Nav PropertyOp 
        
        
            
            Rewrite a PropertyOp subtree for a nav property
             does the heavy lifting
            
             the PropertyOp 
             the current node 
             the rewritten subtree 
        
        
            
            Is the given node of shape NavigationProperty(SoftCast(VarRef)), or NavigationProperty(VarRef)
            
        
        
            
            Rewrite a PropertyOp subtree.
            If the PropertyOp represents a simple property (ie) not a navigation property, we simply call
            VisitScalarOpDefault() and return. Otherwise, we call VisitNavPropertyOp and return the result from
            that function
            
             the PropertyOp 
             the PropertyOp subtree 
             the rewritten tree 
        
        
            
            Handler for a RefOp.
            Keeps track of the entityset
            
             the RefOp 
             current RefOp subtree 
             current subtree 
        
        
            
            Handler for a TreatOp.
            Rewrites the operator if the argument is guaranteed to be of type
            op.
            
             Current TreatOp 
             Current subtree 
             Current subtree 
        
        
            
            Handler for an IsOfOp.
            Keeps track of the IsOfType (if it is a structured type) and rewrites the
            operator if the argument is guaranteed to be of type op.IsOfType
            
             Current IsOfOp 
             Current subtree 
             Current subtree 
        
        
            
            Rewrite a NavigateOp subtree.
            We call RewriteNavigateOp to return a subtree (and an optional outputVar).
            If the outputVar is null, then we simply return the subtree produced by those calls.
            Otherwise, we add the subtree to the "parent" relop (to be outer-applied), and then use the outputVar
            in its place.
            As an example,
            select navigate(e) from T
            gets rewritten into
            select v from T OuterApply X
            where X is the subtree returned from the RewriteXXX calls, and "v" is the output var produced by X
            
             the navigateOp 
             the navigateOp subtree 
             the rewritten tree 
        
        
            
            Returns the current entity set scope, if any, for an entity type constructor.
            The scope defines the result of the construtor as a scoped entity type.
            
        
        
            
            Find the relationshipset that matches the current entityset + from/to roles
            
        
        
            
            Find the position of a property in a type.
            Positions start at zero, and a supertype's properties precede the current
            type's properties
            
             the type in question 
             the member to lookup 
             the position of the member in the type (0-based) 
        
        
            
            Build out an expression (NewRecord) that corresponds to the key properties
            of the passed-in entity constructor
            This function simply looks up the key properties of the entity type, and then
            identifies the arguments to the constructor corresponding to those
            properties, and then slaps on a record wrapper over those expressions.
            No copies/clones are performed. That's the responsibility of the caller
            
             the entity constructor op 
             the corresponding subtree 
             the key expression 
        
        
            
            Build out an expression corresponding to the rel-property.
            We create a subquery that looks like
            (select r
            from RS r
            where GetRefKey(r.FromEnd) = myKey)
            RS is the single relationship set that corresponds to the given entityset/rel-property pair
            FromEnd - is the source end of the relationship
            myKey - is the key expression of the entity being constructed
            NOTE: We always clone "myKey" before use.
            We then convert it into a scalar subquery, and extract out the ToEnd property from
            the output var of the subquery. (Should we do this inside the subquery itself?)
            If no single relationship-set is found, we return a NULL instead.
            
             entity set that logically holds instances of the entity we're building 
             the rel-property we're trying to build up 
             the "key" of the entity instance 
             the rel-property expression 
        
        
            
            Given an entity constructor (NewEntityOp, DiscriminatedNewEntityOp), build up
            the list of rel-property expressions.
            Walks through the list of relevant rel-properties, and builds up expressions
            (using BuildRelPropertyExpression) for each rel-property that does not have
            an expression already built (preBuiltExpressions)
            
             entity set that holds instances of the entity we're building 
             the list of relevant rel-properties for this entity type 
             the prebuilt rel-property expressions 
             the key of the entity instance 
             a list of rel-property expressions (lines up 1-1 with 'relPropertyList') 
        
        
            
            Handler for NewEntityOp.
            Assignes scope to the entity constructor if it hasn't been assigned before.
            
             the NewEntityOp 
             the node tree corresponding to the op 
             rewritten tree 
        
        
            
            Tracks discriminator metadata so that is can be used when constructing
            StructuredTypeInfo.
            
        
        
            
            Handles a newMultiset constructor. Converts this into
            select a from dual union all select b from dual union all ...
            Handles a NewMultiset constructor, i.e. {x, y, z}
            1. Empty multiset constructors are simply converted into:
            select x from singlerowtable as x where false
            2. Mulltset constructors with only one element or with multiple elements all of
            which are constants or nulls are converted into:
            select x from dual union all select y from dual union all select z
            3. All others are converted into:
            select case when d = 0 then x when d = 1 then y else z end
            from (  select 0 as d from single_row_table
            union all
            select 1 as d from single_row_table
            union all
            select 2 as d  from single_row_table )
            NOTE: The  translation for 2 is valid for 3 too. We choose different translation
            in order to avoid correlation inside the union all,
            which would prevent us from removing apply operators
            Do this before processing the children, and then
            call Visit on the result to handle the elements
            
             the new instance op 
             the current subtree 
             the modified subtree 
        
        
            
            Returns true if each node in the list is either a constant or a null
            
        
        
            
            Default processing for a CollectOp. But make sure that we
            go through the NestPullUp phase
            
        
        
            
            Visits a "table" expression - performs view expansion on the table (if appropriate),
            and then some additional book-keeping.
            The "ofType" and "includeSubtypes" parameters are optional hints for view expansion, allowing
            for more customized (and hopefully, more optimal) views. The wasOfTypeSatisfied out parameter
            tells whether the ofType filter was already handled by the view expansion, or if the caller still
            needs to deal with it.
            If the "table" is a C-space entityset, then we produce a ScanViewOp
            tree with the defining query as the only child of the ScanViewOp
            If the table is an S-space entityset, then we still produce a ScanViewOp, but this
            time, we produce a simple "select * from BaseTable" as the defining
            query
            
             the scanTable node tree 
             the scanTableOp 
            
            An optional IsOfOp representing a type filter to apply to the scan table; will be set to null if the scan target is expanded to a view that renders the type filter superfluous.
            
        
        
            
            Processes a ScanTableOp - simply delegates to ProcessScanTableOp
            
             the view op 
             current node tree 
             the transformed view-op 
        
        
            
            Visitor for a ScanViewOp
            
        
        
            
            Processing for all JoinOps
            
             JoinOp 
             Current subtree 
        
        
            
            Perform default relop processing; Also "require" the join-elimination phase
            
        
        
            
            Can I eliminate this sort? I can, if the current path is *not* one of the
            following
            TopN(Sort)
            PhysicalProject(Sort)
            We don't yet handle the TopN variant
            
        
        
            
            Visit a SortOp. Eliminate it if the path to this node is not one of
            PhysicalProject(Sort) or
            TopN(Sort)
            Otherwise, simply visit the child RelOp
            
             Current sortOp 
             current subtree 
             possibly transformed subtree 
        
        
            
            Checks to see if this filterOp represents an IS OF (or IS OF ONLY) filter over a ScanTableOp
            
             the filterOp node 
             (OUT) the Type to restrict to 
        
        
            
            Handler for a FilterOp. Usually delegates to VisitRelOpDefault.
            There's one special case - where we have an ISOF predicate over a ScanTable. In that case, we attempt
            to get a more "optimal" view; and return that optimal view
            
             the filterOp 
             the node tree 
        
        
            
            Visit a ProjectOp; if the input is a SortOp, we pullup the sort over
            the ProjectOp to ensure that we don't have nested sorts;
            Note: This transformation cannot be moved in the normalizer,
            because it needs to happen before any subquery augmentation happens.
            
        
        
            
            Mark AggregatePushdown as needed
            
             the groupByInto op 
             the node tree 
        
        
            
            Represents information about a primitive typed Var and how it can be replaced.
            
        
        
            
            Initializes a new instance of  class.
            
            
            New  that replaces current  .
            
        
        
            
            Gets the newVar.
            
        
        
            
            Gets  for this . Always .
            
        
        
            
            Gets the list of all NewVars. The list contains always just one element.
            
        
        
            
            The ProjectionPruner module is responsible for eliminating unnecessary column
            references (and other expressions) from the query.
            Projection pruning logically operates in two passes - the first pass is a top-down
            pass where information about all referenced columns and expressions is collected
            (pushed down from a node to its children).
            The second phase is a bottom-up phase, where each node (in response to the
            information collected above) attempts to rid itself of unwanted columns and
            expressions.
            The two phases can be combined into a single tree walk, where for each node, the
            processing is on the lines of:
            - compute and push information to children (top-down)
            - process children
            - eliminate unnecessary references from myself (bottom-up)
            
        
        
            
            Trivial private constructor
            
             current compiler state 
        
        
            
            Runs through the root node of the tree, and eliminates all
            unreferenced expressions
            
             current compiler state 
        
        
            
            Runs through the given subtree, and eliminates all
            unreferenced expressions
            
             current compiler state 
             The node to be processed 
             The processed, i.e. transformed node 
        
        
            
            The real driver of the pruning process. Simply invokes the visitor over the input node
            
             The node to be processed 
             The processed node 
        
        
            
            Adds a reference to this Var
            
        
        
            
            Adds a reference to each var in a set of Vars
            
        
        
            
            Is this Var referenced?
            
        
        
            
            Is this var unreferenced?
            
        
        
            
            Prunes a VarMap - gets rid of unreferenced vars from the VarMap inplace
            Additionally, propagates var references to the inner vars
            
        
        
            
            Prunes a varset - gets rid of unreferenced vars from the Varset in place
            
             the varset to prune 
        
        
            
            Visits the children and recomputes the node info
            
             The current node 
        
        
            
            Visits the children in reverse order and recomputes the node info
            
             The current node 
        
        
            
            VarDefListOp
            Walks the children (VarDefOp), and looks for those whose Vars
            have been referenced. Only those VarDefOps are visited - the
            others are ignored.
            At the end, a new list of children is created - with only those
            VarDefOps that have been referenced
            
             the varDefListOp 
             corresponding node 
             modified node 
        
        
            
            PhysicalProjectOp
            Insist that all Vars in this are required
            
        
        
            
            NestOps
            Common handling for all NestOps.
            
        
        
            
            SingleStreamNestOp
            Insist (for now) that all Vars are required
            
        
        
            
            MultiStreamNestOp
            Insist (for now) that all Vars are required
            
        
        
            
            ApplyOps
            Common handling for all ApplyOps. Visit the right child first to capture
            any references to the left, and then visit the left child.
            
             
             the apply op 
             modified subtree 
        
        
            
            DistinctOp
            We remove all null and constant keys that are not referenced as long as
            there is one key left. We add all remaining keys to the referenced list
            and proceed to the inputs
            
             the DistinctOp 
             Current subtree 
        
        
            
            ElementOp
            An ElementOp that is still present when Projection Prunning is invoked can only get introduced
            in the TransformationRules phase by transforming an apply operation into a scalar subquery.
            Such ElementOp serves as root of a defining expression of a VarDefinitionOp node and
            thus what it produces is useful.
            
             the ElementOp 
             Current subtree 
        
        
            
            FilterOp
            First visit the predicate (because that may contain references to
            the relop input), and then visit the relop input. No additional
            processing is required
            
             the filterOp 
             current node 
        
        
            
            GroupByBase
            First, we visit the vardeflist for aggregates and potentially group aggregates
            as they may reference keys (including constant keys).
            Then we remove all null and constant keys that are not referenced as long as
            there is one key left. We add all remaining key columns to the referenced list.
            Then we walk through the vardeflist for the keys; and finally process the relop input
            Once we're done, we update the "Outputs" varset - to account for any
            pruned vars. The "Keys" varset will not change
            
             the groupbyOp 
             current subtree 
             modified subtree 
        
        
            
            Helper method for removing redundant constant keys from GroupByOp and DistictOp.
            It only examines the keys defined in the given varDefListNode.
            It removes all constant and null keys that are not referenced elsewhere,
            but ensuring that at least one key is left.
            It should not be called with empty keyVec.
            
             The keys 
             The var vec that needs to be updated along with the keys 
             Var def list node for the keys 
        
        
            
            First defer to default handling for groupby nodes
            If all group aggregate vars are prunned out turn it into a GroupBy.
            
        
        
            
            JoinOps
            Common handling for all join ops. For all joins (other than crossjoin),
            we must first visit the predicate (to capture any references from it), and
            then visit the relop inputs. The relop inputs can be visited in any order
            because there can be no correlations between them
            For crossjoins, we simply use the default processing - visit all children
            ; there can be no correlations between the nodes anyway
            
             
             Node for the join subtree 
             modified subtree 
        
        
            
            ProjectOp
            We visit the projections first (the VarDefListOp child), and then
            the input (the RelOp child) - this reverse order is necessary, since
            the projections need to be visited to determine if anything from
            the input is really needed.
            The VarDefListOp child will handle the removal of unnecessary VarDefOps.
            On the way out, we then update our "Vars" property to reflect the Vars
            that have been eliminated
            
             the ProjectOp 
             the current node 
             modified subtree 
        
        
            
            ScanTableOp
            Update the list of referenced columns
            
        
        
            
            SetOps
            Common handling for all SetOps. We first identify the "output" vars
            that are referenced, and mark the corresponding "input" vars as referenced
            We then remove all unreferenced output Vars from the "Outputs" varset
            as well as from the Varmaps.
            Finally, we visit the children
            
             
             current node 
        
        
            
            SortOp
            First visit the sort keys - no sort key can be eliminated.
            Then process the vardeflist child (if there is one) that contains computed
            vars, and finally process the relop input. As before, the computedvars
            and sortkeys need to be processed before the relop input
            
             the sortop 
             the current subtree 
             modified subtree 
        
        
            
            UnnestOp
            Marks the unnestVar as referenced, and if there
            is a child, visits the child.
            
             the unnestOp 
             current subtree 
             modified subtree 
        
        
            
            VarRefOp
            Mark the corresponding Var as "referenced"
            
             the VarRefOp 
             current node 
        
        
            
            ExistsOp
            The child must be a ProjectOp - with exactly 1 var. Mark it as referenced
            
             the ExistsOp 
             the input node 
        
        
            
            This class tracks down the vars that are referenced in the column map
            
        
        
            
            Find all vars that were referenced in the column map. Looks for VarRefColumnMap
            in the ColumnMap tree, and tracks those vars
            NOTE: The "vec" parameter must be supplied by the caller. The caller is responsible for
            clearing out this parameter (if necessary) before calling into this function
            
             the column map to traverse 
             the set of referenced columns 
        
        
            
            Trivial constructor
            
        
        
            
            Handler for VarRefColumnMap. Simply adds the "var" to the set of referenced vars
            
             the current varRefColumnMap 
             the set of referenced vars so far 
        
        
            
            Transformation rules for ProjectOp
            
        
        
            
            Converts a Project(Project(X, c1,...), d1,...) =>
            Project(X, d1', d2'...)
            where d1', d2' etc. are the "mapped" versions of d1, d2 etc.
            
             Rule processing context 
             Current ProjectOp node 
             modified subtree 
             Transformation status 
        
        
            
            Eliminate a ProjectOp that has no local definitions at all and
            no external references, (ie) if Child1
            of the ProjectOp (the VarDefListOp child) has no children, then the ProjectOp
            is serving no useful purpose. Get rid of the ProjectOp, and replace it with its
            child
            
             rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            If the ProjectOp defines some computedVars, but those computedVars are simply
            redefinitions of other Vars, then eliminate the computedVars.
            Project(X, VarDefList(VarDef(cv1, VarRef(v1)), ...))
            can be transformed into
            Project(X, VarDefList(...))
            where cv1 has now been replaced by v1
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            Tries to remove null sentinel definitions by replacing them to vars that are guaranteed
            to be non-nullable and of integer type, or with reference to other constants defined in the
            same project. In particular,
            - If based on the ancestors, the value of the null sentinel can be changed and the
            input of the project has a var that is guaranteed to be non-nullable and
            is of integer type, then the definitions of the vars defined as NullSentinels in the ProjectOp
            are replaced with a reference to that var. I.eg:
            Project(X, VarDefList(VarDef(ns_var, NullSentinel), ...))
            can be transformed into
            Project(X, VarDefList(VarDef(ns_var, VarRef(v))...))
            where v is known to be non-nullable
            - Else, if based on the ancestors, the value of the null sentinel can be changed and
            the project already has definitions of other int constants, the definitions of the null sentinels
            are removed and the respective vars are remapped to the var representing the constant.
            - Else, the definitions of the all null sentinels except for one are removed, and the
            the respective vars are remapped to the remaining null sentinel.
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            The PropertyPushdownHelper module is a submodule of the StructuredTypeEliminator
            module. It serves as a useful optimization sidekick for NominalTypeEliminator which
            is the real guts of eliminating structured types.
            The goal of this module is to identify a list of desired properties for each node
            (and Var) in the tree that is of a structured type. This list of desired properties
            is identified in a top-down push fashion.
            While it is desirable to get as accurate information as possible, it is unnecessary
            for this module to be super-efficient (i.e.) it is ok for it to get a superset
            of the appropriate information for each node, but it is absolutely not ok for it
            to get a subset. Later phases (projection pruning) can help eliminate unnecessary
            information, but the query cannot be made incorrect.
            This module is implemented as a visitor - it leverages information about
            types in the query - made possible by the TypeFlattener module - and walks
            down the tree pushing properties to each child of a node. It builds two maps:
            (*) a node-property map
            (*) a var-property map
            Each of these keeps trackof the properties needed from each node/var.
            These maps are returned to the caller and will be used by the NominalTypeEliminator
            module to eliminate all structured types.
            
        
        
            
            The driver.
            Walks the tree, and "pushes" down information about required properties
            to every node and Var in the tree.
            
             The query tree 
             List of desired properties from each Var 
             List of desired properties from each node 
        
        
            
            the driver routine. Invokes the visitor, and then returns the collected
            info
            
             node in the tree to begin processing at 
        
        
            
            Get the list of propertyrefs for a node. If none exists, create an
            empty structure and store it in the map
            
             Specific node 
             List of properties expected from this node 
        
        
            
            Add a list of property references for this node
            
             the node 
             list of property references 
        
        
            
            Get the list of desired properties for a Var
            
             the var 
             List of desired properties 
        
        
            
            Add a new set of properties to a Var
            
             the var 
             desired properties 
        
        
            
            Gets the list of "identity" properties for an entity. Gets the
            "entitysetid" property in addition to the "key" properties
            
        
        
            
            Gets the list of key properties for an entity
            
        
        
            
            Default visitor for an Op.
            Simply walks through all children looking for Ops of structured
            types, and asks for all their properties.
            
            
            Several of the ScalarOps take the default handling, to simply ask
            for all the children's properties:
            AggegateOp
            ArithmeticOp
            CastOp
            ConditionalOp
            ConstantOp
            ElementOp
            ExistsOp
            FunctionOp
            GetRefKeyOp
            LikeOp
            NestAggregateOp
            NewInstanceOp
            NewMultisetOp
            NewRecordOp
            RefOp
            They do not exist here to eliminate noise.
            Note that the NewRecordOp and the NewInstanceOp could be optimized to only
            push down the appropriate references, but it isn't clear to Murali that the
            complexity is worth it.
            
        
        
            
            SoftCastOp:
            If the input is
            Ref - ask for all properties
            Entity, ComplexType - ask for the same properties I've been asked for
            Record - ask for all properties (Note: This should be more optimized in the future
            since we can actually "remap" the properties)
            
        
        
            
            CaseOp handling
            Pushes its desired properties to each of the WHEN/ELSE clauses
            
        
        
            
            CollectOp handling.
            
        
        
            
            ComparisonOp handling
            
        
        
            
            ElementOp handling
            
        
        
            
            GetEntityRefOp handling
            Ask for the "identity" properties from the input entity, and push that
            down to my child
            
        
        
            
            IsOfOp handling
            Simply requests the "typeid" property from
            the input. No other property is required
            
             IsOf op 
             Node to visit 
        
        
            
            Common handler for RelPropertyOp and PropertyOp.
            Simply pushes down the desired set of properties to the child
            
             the *propertyOp 
             node tree corresponding to the Op 
             the property reference 
        
        
            
            RelPropertyOp handling.
            Delegates to VisitPropertyOp. Marks the rel-property as required from the
            child
            
             the RelPropertyOp 
             node tree corresponding to the op 
        
        
            
            PropertyOp handling
            Pushes down the requested properties along with the current
            property to the child
            
        
        
            
            TreatOp handling
            Simply passes down "my" desired properties, and additionally
            asks for the TypeID property
            
        
        
            
            VarRefOp handling
            Simply passes along the current "desired" properties
            to the corresponding Var
            
        
        
            
            VarDefOp handling
            Pushes the "desired" properties to the
            defining expression
            
        
        
            
            VarDefListOp handling
            
        
        
            
            ApplyOp handling
            CrossApplyOp handling
            OuterApplyOp handling
            Handling for all ApplyOps: Process the right child, and then
            the left child - since the right child may have references to the
            left
            
             apply op 
             
        
        
            
            DistinctOp handling
            Require all properties out of all structured vars
            
        
        
            
            FilterOp handling
            Process the predicate child, and then the input child - since the
            predicate child will probably have references to the input.
            
        
        
            
            GroupByOp handling
            
        
        
            
            JoinOp handling
            CrossJoinOp handling
            InnerJoinOp handling
            LeftOuterJoinOp handling
            FullOuterJoinOp handling
            Handler for all JoinOps. For all joins except cross joins, process
            the predicate first, and then the inputs - the inputs can be processed
            in any order.
            For cross joins, simply process all the (relop) inputs
            
             join op 
             
        
        
            
            ProjectOp handling
            
        
        
            
            ScanTableOp handler
            
        
        
            
            ScanViewOp
            ask for all properties from the view definition
            that have currently been requested from the view itself
            
             current ScanViewOp 
             current node 
        
        
            
            SetOp handling
            UnionAllOp handling
            IntersectOp handling
            ExceptOp handling
            Visitor for a SetOp. Pushes desired properties to the corresponding
            Vars of the input
            
             the setop 
             
        
        
            
            SortOp handling
            First, "request" that for any sort key that is a structured type, we
            need all its properties. Then process any local definitions, and
            finally the relop input
            
        
        
            
            UnnestOp handling
            
        
        
            
            PhysicalProjectOp handling
            
        
        
            
            MultiStreamNestOp handling
            
        
        
            
            SingleStreamNestOp handling
            
        
        
            
            Represents a collection of property references
            
        
        
            
            Get something that represents "all" property references
            
        
        
            
            Trivial constructor
            
        
        
            
            Add a new property reference to this list
            
             new property reference 
        
        
            
            Append an existing list of property references to myself
            
             list of property references 
        
        
            
            Create a clone of myself
            
             a clone of myself 
        
        
            
            Do I contain the specifed property?
            
             The property 
             true, if I do 
        
        
            
            Do I contain "all" properties?
            
        
        
            
            Get the list of all properties
            
        
        
            
            Helper class for creating a ProviderCommandInfo given an Iqt Node.
            
        
        
            
            Creates a ProviderCommandInfo for the given node.
            This method should be called when the keys, foreign keys and sort keys are known ahead of time.
            Typically it is used when the original command is factored into multiple commands.
            
             The owning command, used for creating VarVecs, etc 
             The root of the sub-command for which a ProviderCommandInfo should be generated 
             The resulting ProviderCommandInfo 
        
        
            
            Build up a mapping from Vars to the corresponding property of the output row type
            
             the physical projectOp 
             output type 
             a map from Vars to the output type member 
        
        
            
            A rel-property ref - represents a rel property of the type
            
        
        
            
            Simple constructor
            
             the property metadata 
        
        
            
            Overrides the default equality function. Two RelPropertyRefs are
            equal, if they describe the same property
            
             the other object to compare to 
             true, if the objects are equal 
        
        
            
            Overrides the default hashcode function.
            Simply returns the hashcode for the property instead
            
             hashcode for the relpropertyref 
        
        
            
            debugging support
            
        
        
            
            Gets the property metadata
            
        
        
            
            A subclass of the TypeInfo class above that only represents information
            about "root" types
            
        
        
            
            The TypeInfo class encapsulates various pieces of information about a type.
            The most important of these include the "flattened" record type - corresponding
            to the type, and the TypeId field for nominal types
            
        
        
            
            Creates type information for a type
            
        
        
            
            Get the new property for the supplied propertyRef
            
             property reference (on the old type) 
        
        
            
            Try get the new property for the supplied propertyRef
            
             property reference (on the old type) 
             throw if the property is not found 
             the corresponding property on the new type 
        
        
            
            Get the list of "key" properties (in the flattened type)
            
             the key property equivalents in the flattened type 
        
        
            
            Get the list of "identity" properties in the flattened type.
            The identity properties include the entitysetid property, followed by the
            key properties
            
             List of identity properties 
        
        
            
            Get the list of all properties in the flattened type
            
        
        
            
            Get the list of all properties in the flattened type
            
        
        
            
            Gets all types in the hierarchy rooted at this.
            
        
        
            
            Adds all types in the hierarchy to the given list.
            
        
        
            
            Is this the root type?
            True for entity, complex types and ref types, if this is the root of the
            hierarchy.
            Always true for Record types
            
        
        
            
            the types that derive from this type
            
        
        
            
            the immediate parent type of this type.
            
        
        
            
            the top most type in the hierarchy.
            
        
        
            
            The metadata type
            
        
        
            
            The typeid value for this type - only applies to nominal types
            
        
        
            
            Flattened record version of the type
            
        
        
            
            TypeUsage that encloses the Flattened record version of the type
            
        
        
            
            Get the property describing the entityset (if any)
            
        
        
            
            Does this type have an entitySetId property
            
        
        
            
            Get the nullSentinel property (if any)
            
        
        
            
            Does this type have a nullSentinel property?
            
        
        
            
            The typeid property in the flattened type - applies only to nominal types
            this will be used as the type discriminator column.
            
        
        
            
            Does this type need a typeid property? (Needed for complex types and entity types in general)
            
        
        
            
            All the properties of this type.
            
        
        
            
            Constructor for a root type
            
        
        
            
            Add a mapping from the propertyRef (of the old type) to the
            corresponding property in the new type.
            NOTE: Only to be used by StructuredTypeInfo
            
        
        
            
            Adds a new property reference to the list of desired properties
            NOTE: Only to be used by StructuredTypeInfo
            
        
        
            
            Determines the offset for structured types in Flattened type. For instance, if the original type is of the form:
            { int X, ComplexType Y }
            and the flattened type is of the form:
            { int X, Y_ComplexType_Prop1, Y_ComplexType_Prop2 }
            GetNestedStructureOffset(Y) returns 1
            
             Complex property. 
             Offset. 
        
        
            
            Try get the new property for the supplied propertyRef
            
             property reference (on the old type) 
             throw if the property is not found 
             the corresponding property on the new type 
        
        
            
            Kind of the typeid column (if any)
            
        
        
            
            Datatype of the typeid column (if any)
            
        
        
            
            Flattened record version of the type
            
        
        
            
            TypeUsage that encloses the Flattened record version of the type
            
        
        
            
            Gets map information for types mapped using simple discriminator pattern.
            
        
        
            
            Get the property describing the entityset (if any)
            
        
        
            
            Get the list of property refs for this type
            
        
        
            
            The typeid property in the flattened type - applies only to nominal types
            this will be used as the type discriminator column.
            
        
        
            
            Transformation rules for ScalarOps
            
        
        
            
            We perform the following simple transformation for CaseOps. If every single
            then/else expression in the CaseOp is equivalent, then we can simply replace
            the Op with the first then/expression. Specifically,
            case when w1 then t1 when w2 then t2 ... when wn then tn else e end
            => t1
            assuming that t1 is equivalent to t2 is equivalent to ... to e
            
             Rule Processing context 
             The current subtree for the CaseOp 
             the (possibly) modified subtree 
             true, if we performed any transformations 
        
        
            
            Try and collapse the case expression into a single expression.
            If every single then/else expression in the CaseOp is equivalent, then we can
            simply replace the CaseOp with the first then/expression. Specifically,
            case when w1 then t1 when w2 then t2 ... when wn then tn else e end
            => t1
            if t1 is equivalent to t2 is equivalent to ... to e
            
             current subtree 
             new subtree 
             true, if we performed a transformation 
        
        
            
            Try and remove spurious branches from the case expression.
            If any of the WHEN clauses is the 'FALSE' expression, simply remove that
            branch (when-then pair) from the case expression.
            If any of the WHEN clauses is the 'TRUE' expression, then all branches to the
            right of it are irrelevant - eliminate them. Eliminate this branch as well,
            and make the THEN expression of this branch the ELSE expression for the entire
            Case expression. If the WHEN expression represents the first branch, then
            replace the entire case expression by the corresponding THEN expression
            
             rule processing context 
             current caseOp 
             Current subtree 
             the new subtree 
             true, if there was a transformation 
        
        
            
            If the else clause of the CaseOp is another CaseOp, when two can be collapsed into one.
            In particular,
            CASE
            WHEN W1 THEN T1
            WHEN W2 THEN T2 ...
            ELSE (CASE
            WHEN WN1 THEN TN1, …
            ELSE E)
            Is transformed into
            CASE
            WHEN W1 THEN T1
            WHEN W2 THEN T2 ...
            WHEN WN1  THEN TN1 ...
            ELSE E
            
             
             current subtree 
             new subtree 
             true, if we performed a transformation 
        
        
            
            Convert an Equals(X, Y) to a "true" predicate if X=Y, or a "false" predicate if X!=Y
            Convert a NotEquals(X,Y) in the reverse fashion
            
             Rule processing context 
             current node 
             possibly modified subtree 
             true, if transformation was successful 
        
        
            
            Transform
            AND(x, true) => x;
            AND(true, x) => x
            AND(x, false) => false
            AND(false, x) => false
            
             Rule Processing context 
             Current LogOp (And, Or, Not) node 
             constant predicate node 
             The other child of the LogOp (possibly null) 
             new subtree 
             transformation status 
        
        
            
            Convert a
            IsNull(constant)
            to just the
            False predicate
            
             
             
             new subtree 
        
        
            
            Convert an IsNull(null) to just the 'true' predicate
            
             
             
             new subtree 
        
        
            
            eliminates nested null casts into a single cast of the outermost cast type.
            basically the transformation applied is: cast(null[x] as T) => null[t]
            
             
             
             modified subtree 
        
        
            
            Convert a
            IsNull(VarRef(v))
            to just the
            False predicate
            if v is guaranteed to be non nullable.
            
             
             
             new subtree 
        
        
            
            SetOp Transformation Rules
            
        
        
            
            Process a SetOp when one of the inputs is an emptyset.
            An emptyset is represented by a Filter(X, ConstantPredicate)
            where the ConstantPredicate has a value of "false"
            The general rules are
            UnionAll(X, EmptySet) => X
            UnionAll(EmptySet, X) => X
            Intersect(EmptySet, X) => EmptySet
            Intersect(X, EmptySet) => EmptySet
            Except(EmptySet, X) => EmptySet
            Except(X, EmptySet) => X
            These rules then translate into
            UnionAll: return the non-empty input
            Intersect: return the empty input
            Except: return the "left" input
            
             Rule processing context 
             the current setop tree 
             transformed subtree 
             transformation status 
        
        
            
            A "simple" property ref - represents a simple property of the type
            
        
        
            
            Simple constructor
            
             the property metadata 
        
        
            
            Overrides the default equality function. Two SimplePropertyRefs are
            equal, if they describe the same property
            
        
        
            
            Overrides the default hashcode function.
            Simply returns the hashcode for the property instead
            
        
        
            
            Gets the property metadata
            
        
        
            
            Rules for SingleRowOp
            
        
        
            
            Convert a
            SingleRowOp(X) => X
            if X produces at most one row
            
             Rule Processing context 
             Current subtree 
             transformed subtree 
             Transformation status 
        
        
            
            Convert
            SingleRowOp(Project) => Project(SingleRowOp)
            
             Rule Processing context 
             current subtree 
             transformeed subtree 
             transformation status 
        
        
            
            Transformation Rules for SortOp
            
        
        
            
            If the SortOp's input is guaranteed to produce at most 1 row, remove the node with the SortOp:
            Sort(X) => X, if X is guaranteed to produce no more than 1 row
            
             Rule processing context 
             current subtree 
             transformed subtree 
             transformation status 
        
        
            
            Removes all sort nodes from the given command except for the top most one
            (the child of the root PhysicalProjectOp node) if any
            
        
        
            
            The only sort node that should not be removed, if any
            
        
        
            
            Keeps track of changed nodes to allow to only recompute node info when needed.
            
        
        
            
            Iterates over all children.
            If any of the children changes, update the node info.
            This is safe to do because the only way a child can change is
            if it is a sort node that needs to be removed. The nodes whose children have
            chagnged also get tracked.
            
             The current node 
        
        
            
            If the given node is not the top most SortOp node remove it.
            
        
        
            
            The type flattener module is part of the structured type elimination phase,
            and is largely responsible for "flattening" record and nominal types into
            flat record types. Additionally, for nominal types, this module produces typeid
            values that can be used later to interpret the input data stream.
            The goal of this module is to load up information about type and entityset metadata
            used in the ITree. This module is part of the "StructuredTypeElimination" phase,
            and provides information to help in this process.
            This module itself is broken down into multiple parts.
            (*) Loading type information: We walk the query tree to identify all references
            to structured types and entity sets
            (*) Processing entitysets: We walk the list of entitysets, and assign ids to each
            entityset. We also create a map of id->entityset metadata in this phase.
            (*) Processing types: We then walk the list of types, and process each type. This,
            in turn, is also broken into multiple parts:
            * Populating the Type Map: we walk the list of reference types and add each of
            them to our typeMap, along with their base types.
            * TypeId assignment: We assign typeids to each nominal (complextype/entitytype).
            This typeid is based on a dewey encoding. The typeid of a type is typically
            the typeid of its supertype suffixed by the subtype number of this type within
            its supertype. This encoding is intended to support easy type matching
            later on in the query - both for exact (IS OF ONLY) and inexact (IS OF) matches.
            * Type flattening: We then "explode"/"flatten" each structured type - refs,
            entity types, complex types and record types. The result is a flattened type
            where every single property of the resulting type is a primitive/scalar type
            (Note: UDTs are considered to be scalar types). Additional information may also
            be encoded as a type property. For example, a typeid property is added (if
            necessary) to complex/entity types to help discriminate polymorphic instances.
            An EntitySetId property is added to ref and entity type attributes to help
            determine the entity set that a given entity instance comes from.
            As part of type flattening, we keep track of additional information that allows
            us to map easily from the original property to the properties in the new type
            The final result of this processing is an object that contains:
            * a TypeInfo (extra type information) for each structured type in the query
            * a map from typeid value to type. To be used later by result assembly
            * a map between entitysetid value and entityset. To be used later by result assembly
            NOTE: StructuredTypeInfo is probably not the best name for this class, since
            it doesn't derive from TypeInfo but rather manages a collection of them.
            I don't have a better name, but if you come up with one change this.
            
        
        
            
            Process Driver
            
             
             structured types referenced in the query 
             entitysets referenced in the query 
             entity types that have "free-floating" entity constructors 
             information on optimized discriminator patterns for entity sets 
             helper for rel properties 
             which types need a null sentinel 
             
        
        
            
            Fills the StructuredTypeInfo instance from the itree provided.
            
             
             referenced structured types 
             referenced entitysets 
             free-floating entityConstructor types 
             discriminator information for entity sets mapped using TPH pattern 
             helper for rel properties 
        
        
            
            Gets the "single" entityset that stores instances of this type
            
        
        
            
            Get the entitysetid value for a given entityset
            
             the entityset 
             entitysetid value 
        
        
            
            Gets entity sets referenced by the query.
            
             entity sets 
        
        
            
            Find the TypeInfo entry for a type. For non-structured types, we always
            return null. For structured types, we return the entry in the typeInfoMap.
            If we don't find one, and the typeInfoMap has already been populated, then we
            assert
            
             the type to look up 
             the typeinfo for the type (null if we couldn't find one) 
        
        
            
            Add a new entry to the entityTypeToSet map
            
             entity type 
             entityset producing this type 
        
        
            
            Handle any relevant processing for entity sets
            
             referenced entitysets 
             free-floating entity constructor types 
        
        
            
            Handle discriminator maps (determine which can safely be used in the query)
            
        
        
            
            Assign ids to each entityset in the query
            
             referenced entitysets 
        
        
            
            Process all types in the query
            
             referenced types 
        
        
            
            Build up auxilliary information for each referenced type in the query
            
        
        
            
            Tries to lookup custom discriminator map for the given type (applies to EntitySets with
            TPH discrimination pattern)
            
        
        
            
            Create a TypeInfo (if necessary) for the type, and add it to the TypeInfo map
            
             the type to process 
        
        
            
            Add a new entry to the map. If an entry already exists, then this function
            simply returns the existing entry. Otherwise a new entry is created. If
            the type has a supertype, then we ensure that the supertype also exists in
            the map, and we add our info to the supertype's list of subtypes
            
             New type to add 
             type discriminator map 
             The TypeInfo for this type 
        
        
            
            Assigns typeids to each type in the map.
            We walk the map looking only for "root" types, and call the function
            above to process root types. All other types will be handled in that
            function
            
        
        
            
            Assign a typeid to a root type
            
        
        
            
            Assigns typeids to each subtype of the current type.
            Assertion: the current type has already had a typeid assigned to it.
            
             The current type 
        
        
            
            Assign a typeid to a non-root type.
            Assigns typeids to a non-root type based on a dewey encoding scheme.
            The typeid will be the typeId of the supertype suffixed by a
            local identifier for the type.
            
             the non-root type 
             position in the subtype list 
        
        
            
            A type needs a type-id property if it is an entity type or a complex tpe that
            has subtypes.
            Coming soon: relax the "need subtype" requirement (ie) any entity/complex type will
            have a typeid
            
        
        
            
            A type needs a null-sentinel property if it is an row type that was projected
            at the top level of the query; we capture that information in the preprocessor
            and pass it in here.
            
        
        
            
            The type needs an entitysetidproperty, if it is either an entity type
            or a reference type, AND we cannot determine that there is only entityset
            in the query that could be producing instances of this entity
            
        
        
            
            "Explode" each type in the dictionary. (ie) for each type, get a flattened
            list of all its members (including special cases for the typeid)
            
        
        
            
            "Explode" a type.  (ie) produce a flat record type with one property for each
            scalar property (top-level or nested) of the original type.
            Really deals with structured types, but also
            peels off collection wrappers
            
             the type to explode 
             the typeinfo for this type (with the explosion) 
        
        
            
            Type Explosion - simply delegates to the root type
            
             type info 
        
        
            
            "Explode" a root type. (ie) add each member of the type to a flat list of
            members for the supertype.
            Type explosion works in a DFS style model. We first walk through the
            list of properties for the current type, and "flatten" out the properties
            that are themselves "structured". We then target each subtype (recursively)
            and perform the same kind of processing.
            Consider a very simple case:
            Q = (z1 int, z2 date)
            Q2: Q = (z3 string)  -- Q2 is a subtype of Q
            T = (a int, b Q, c date)
            S: T = (d int)  -- read as S is a subtype of T
            The result of flattening T (and S) will be
            (a int, b.z1 int, b.z2 date, b.z3 string, c date, d int)
            
             the root type to explode 
        
        
            
            Helper for ExplodeType.
            Walks through each member introduced by the current type, and
            adds it onto the "flat" record type being constructed.
            We then walk through all subtypes of this type, and process those as
            well.
            Special handling for Refs: we only add the keys; there is no
            need to handle subtypes (since they won't be introducing anything
            different)
            
             type in the type hierarchy 
        
        
            
            Add the list of rel-properties for this type
            
             the type to process 
        
        
            
            Create the flattened record type for the type.
            Walk through the list of property refs, and creates a new field
            (which we name as "F1", "F2" etc.) with the required property type.
            We then produce a mapping from the original property (propertyRef really)
            to the new property for use in later modules.
            Finally, we identify the TypeId and EntitySetId property if they exist
            
        
        
            
            Get the "new" type corresponding to the input type. For structured types,
            we return the flattened record type.
            For collections of structured type, we return a new collection type of the corresponding flattened
            type.
            For enum types we return the underlying type of the enum type.
            For strong spatial types we return the union type that includes the strong spatial type.
            For everything else, we return the input type
            
             the original type 
             the new type (if any) 
        
        
            
            Get the datatype for a propertyRef. The only concrete classes that we
            handle are TypeIdPropertyRef, and BasicPropertyRef.
            AllPropertyRef is illegal here.
            For BasicPropertyRef, we simply pick up the type from the corresponding
            property. For TypeIdPropertyRef, we use "string" as the default type
            or the discriminator property type where one is available.
            
             typeinfo of the current type 
             current property ref 
             the datatype of the property 
        
        
            
            Get the root entity type for a type
            
             entity type 
        
        
            
            Mapping from entitysetid-s to entitysets
            
        
        
            
            Get a helper for rel properties
            
        
        
            
            Finds the record (Row) types that we're projecting out of the query, and
            ensures that we mark them as needing a nullable sentinel, so when we
            flatten them later we'll have one added.
            
        
        
            
            VarRefColumnMap
            
        
        
            
            Recursively add any Row types to the list of types needing a sentinel.
            
        
        
            
            Marks the given typeUsage as needing a null sentinel.
            Call this method instead of calling Add over the HashSet directly, to ensure consistency.
            
        
        
            
            The StructuredVarInfo class contains information about a structured type Var
            and how it can be replaced. This is targeted towards Vars of complex/record/
            entity/ref types, and the goal is to replace all such Vars in this module.
            
        
        
            
            Constructor
            
             new "flat" record type corresponding to the Var's datatype 
             List of vars to replace current Var 
             List of properties in the "flat" record type 
             Do the new vars include a var that represents a null sentinel either for this type or for any nested type 
        
        
            
            Get the Var corresponding to a specific property
            
             the requested property 
             the corresponding Var 
             true, if the Var was found 
        
        
            
            Initialize mapping from properties to the corresponding Var
            
        
        
            
            Gets  for this . Always
            
            .
            
        
        
            
            The NewVars property of the VarInfo is a list of the corresponding
            "scalar" Vars that can be used to replace the current Var. This is
            mainly intended for use by other RelOps that maintain lists of Vars
            - for example, the "Vars" property of ProjectOp and other similar
            locations.
            
        
        
            
            The Fields property is matched 1-1 with the NewVars property, and
            specifies the properties of the record type corresponding to the
            original VarType
            
        
        
            
            Indicates whether any of the vars in NewVars 'derives'
            from a null sentinel. For example, for a type that is a Record with two
            nested records, if any has a null sentinel, it would be set to true.
            It is used when expanding sort keys, to be able to indicate that there is a
            sorting operation that includes null sentinels. This indication is later
            used by transformation rules.
            
        
        
            
            The NewType property describes the new "flattened" record type
            that is a replacement for the original type of the Var
            
        
        
            
            Returns the NewType wrapped in a TypeUsage
            
        
        
            
            The list of all transformation rules to apply
            
        
        
            
            A lookup table for built from all rules
            The lookup table is an array indexed by OpType and each entry has a list of rules.
            
        
        
            
            A lookup table for built only from ProjectRules
            The lookup table is an array indexed by OpType and each entry has a list of rules.
            
        
        
            
            A lookup table built only from rules that use key info
            The lookup table is an array indexed by OpType and each entry has a list of rules.
            
        
        
            
            A lookup table built only from rules that rely on nullability of vars and other rules
            that may be able to perform simplificatios if these have been applied.
            The lookup table is an array indexed by OpType and each entry has a list of rules.
            
        
        
            
            A look-up table of rules that may cause modifications such that projection pruning may be useful
            after they have been applied.
            
        
        
            
            A look-up table of rules that may cause modifications such that reapplying the nullability rules
            may be useful after they have been applied.
            
        
        
            
            Apply the rules that belong to the specified group to the given query tree.
            
        
        
            
            Apply the rules that belong to the specified rules table to the given query tree.
            
             
             
             is projection pruning required after the rule application 
             Whether any rule has been applied after which reapplying nullability rules may be useful 
        
        
            
            Remap the given subree using the current remapper
            
        
        
            
            Adds a mapping from oldVar to newVar
            
        
        
            
            "Remap" an expression tree, replacing all references to vars in varMap with
            copies of the corresponding expression
            The subtree is modified *inplace* - it is the caller's responsibility to make
            a copy of the subtree if necessary.
            The "replacement" expression (the replacement for the VarRef) is copied and then
            inserted into the appropriate location into the subtree.
            Note: we only support replacements in simple ScalarOp trees. This must be
            validated by the caller.
            
             Current subtree to process 
             
             The updated subtree 
        
        
            
            Makes a copy of the appropriate subtree - with a simple accelerator for VarRefOp
            since that's likely to be the most command case
            
             the subtree to copy 
             the copy of the subtree 
        
        
            
            Checks to see if the current subtree only contains ScalarOps
            
             current subtree 
             true, if the subtree contains only ScalarOps 
        
        
            
            Is the given var guaranteed to be non-nullable with regards to the node
            that is currently being processed.
            True, if it is listed as such on any on the node infos on any of the
            current relop ancestors.
            
        
        
            
            Is the op not safe for null sentinel value change
            
        
        
            
            Does the given subtree contain a node with an op that
            is not safer for null sentinel value change
            
        
        
            
            Is this is a scalar-op tree? Also return a dictionary of var refcounts (ie)
            for each var encountered in the tree, determine the number of times it has
            been seen
            
             current subtree 
             dictionary of var refcounts to fill in 
        
        
            
            Get a mapping from Var->Expression for a VarDefListOp tree. This information
            will be used by later stages to replace all references to the Vars by the
            corresponding expressions
            This function uses a few heuristics along the way. It uses the varRefMap
            parameter to determine if a computed Var (defined by this VarDefListOp)
            has been referenced multiple times, and if it has, it checks to see if
            the defining expression is too big (> 100 nodes). This is to avoid
            bloating up the entire query tree with too many copies.
            
             The varDefListOp subtree 
             ref counts for each referenced var 
             mapping from Var->replacement xpressions 
        
        
            
            Builds a NULLIF expression (ie) a Case expression that looks like
            CASE WHEN v is null THEN null ELSE expr END
            where v is the conditionVar parameter, and expr is the value of the expression
            when v is non-null
            
             null discriminator var 
             expression 
        
        
            
            Shut off filter pushdown for this subtree
            
        
        
            
            Is filter pushdown shut off for this subtree?
            
        
        
            
            Given a list of vars try to get one that is of type Int32
            
        
        
            
            Callback function to invoke *before* rules are applied.
            Calls the VarRemapper to update any Vars in this node, and recomputes
            the nodeinfo
            
        
        
            
            Callback function to invoke *before* rules are applied.
            Calls the VarRemapper to update any Vars in the entire subtree
            If the given node has a RelOp it is pushed on the relOp ancestors stack.
            
        
        
            
            If the given node has a RelOp it is popped from the relOp ancestors stack.
            
        
        
            
            Callback function to invoke *after* rules are applied
            Recomputes the node info, if this node has changed
            If the rule is among the rules after which projection pruning may be beneficial,
            m_projectionPrunningRequired is set to true.
            If the rule is among the rules after which reapplying the nullability rules may be beneficial,
            m_reapplyNullabilityRules is set to true.
            
             
             the rule that was applied 
        
        
            
            Get the hash value for this subtree
            
        
        
            
            Check to see if the current subtree is a scalar-op subtree (ie) does
            the subtree only comprise of scalarOps?
            Additionally, compute the number of non-leaf nodes (ie) nodes with at least one child
            that are found in the subtree. Note that this count is approximate - it is only
            intended to be used as a hint. It is the caller's responsibility to initialize
            nodeCount to a sane value on entry into this function
            And finally, if the varRefMap parameter is non-null, we keep track of
            how often a Var is referenced within the subtree
            The non-leaf-node count and the varRefMap are used by GetVarMap to determine
            if expressions can be composed together
            
             root of the subtree 
             Ref counts for each Var encountered in the subtree 
             count of non-leaf nodes encountered in the subtree 
             true, if this node only contains scalarOps 
        
        
            
            Whether any rule was applied that may have caused modifications such that projection pruning
            may be useful
            
        
        
            
            Whether any rule was applied that may have caused modifications such that reapplying
            the nullability rules may be useful
            
        
        
            
            Is it safe to use a null sentinel with any value?
            It may not be safe if:
            1. The top most sort includes null sentinels. If the null sentinel is replaced with a different value
            and is used as a sort key it may change the sorting results
            2. If any of the ancestors is Distinct, GroupBy, Intersect or Except,
            because the null sentinel may be used as a key.
            3. If the null sentinel is defined in the left child of an apply it may be used at the right side,
            thus in these cases we also verify that the right hand side does not have any Distinct, GroupBy,
            Intersect or Except.
            
        
        
            
            Available groups of rules, not necessarily mutually exclusive
            
        
        
            
            The kind of type-id in use
            
        
        
            
            A TypeId propertyref represents a reference to the TypeId property
            of a type (complex type, entity type etc.)
            
        
        
            
            Gets the default instance of this type
            
        
        
            
            Friendly string for debugging.
            
        
        
            
            This class is used as a Comparer for Types all through the PlanCompiler.
            It has a pretty strict definition of type equality - which pretty much devolves
            to equality of the "Identity" of the Type (not the TypeUsage).
            NOTE: Unlike other parts of the query pipeline, record types follow
            a much stricter equality condition here - the field names must be the same, and
            the field types must be equal.
            NOTE: Primitive types are considered equal, if their Identities are equal. This doesn't
            take into account any of the facets that are represented external to the type (size, for instance).
            Again, this is different from other parts of  the query pipeline; and we're much stricter here
            
        
        
            
            Is this a structured type?
            Note: Structured, in this context means structured outside the server.
            UDTs for instance, are considered to be scalar types - all WinFS types,
            would by this argument, be scalar types.
            
             The type to check 
             true, if the type is a structured type 
        
        
            
            Is this type a collection type?
            
             the current type 
             true, if this is a collection type 
        
        
            
            Is this type an enum type?
            
             the current type 
             true, if this is an enum type 
        
        
            
            Create a new collection type based on the supplied element type
            
             element type of the collection 
             the new collection type 
        
        
            
            Kind of VarInfo
            
        
        
            
            The VarInfo is of  type.
            
        
        
            
            The VarInfo is of  type.
            
        
        
            
            The VarInfo is of  type.
            
        
        
            
            The VarInfo map maintains a mapping from Vars to their corresponding VarInfo
            It is logically a Dictionary
            
        
        
            
            Default constructor
            
        
        
            
            Create a new VarInfo for a structured type Var
            
             The structured type Var 
             "Mapped" type for v 
             List of vars corresponding to v 
             Flattened Properties 
             Do the new vars include a var that represents a null sentinel either for this type or for any nested type 
             the VarInfo 
        
        
            
            Create a new VarInfo for a structured type Var where the newVars cannot include a null sentinel
            
             The structured type Var 
             "Mapped" type for v 
             List of vars corresponding to v 
             Flattened Properties 
        
        
            
            Create a VarInfo for a collection typed Var
            
             The collection-typed Var 
             the new Var 
             the VarInfo 
        
        
            
            Creates a var info for var variables of primitive or enum type.
            
             Current variable of primitive or enum type. 
            
            The new variable replacing  .
            
            
             for  .
            
        
        
            
            Return the VarInfo for the specified var (if one exists, of course)
            
             The Var 
             the corresponding VarInfo 
        
        
            
            This is a halper module for 
            The VarRefManager keeps track of the child-parent relationships in order to be able
            to decide whether a given var is referenced by children on right-side relatives of a given node.
            It is used in JoinElimination when deciding whether it is possible to eliminate the child table participating
            in a left-outer join when there is a 1 - 0..1 FK relationship.
            
        
        
            
            Constructs a new VarRefManager given a command.
            
        
        
            
            Tracks the information that the given node is a parent of its children (one level only)
            
        
        
            
            Determines whether any var from a given list of keys is referenced by any of defining node's right relatives,
            with the exception of the relatives brunching at the given targetJoinNode.
            
             A list of vars to check for 
             The node considered to be the defining node 
             The relatives branching at this node are skipped 
             False, only it can determine that not a single var from a given list of keys is referenced by any of defining node's right relatives, with the exception of the relatives brunching at the given targetJoinNode. 
        
        
            
            Checks whether the given node has references to any of the vars in the given VarVec.
            It only checks the given node, not its children.
            
             The node to check 
             The list of vars to check for 
             The index of the node's subree from which this var is coming. This is used for SetOp-s, to be able to locate the appropriate var map that will give the vars corresponding to the given once 
             If the OpType of the node's Op is such that it 'hides' the input, i.e. the decision of whether the given vars are referenced can be made on this level, it returns true, false otherwise 
             True if the given node has references to any of the vars in the given VarVec, false otherwise 
        
        
            
            Does the gvien VarList overlap with the given VarVec
            
        
        
            
            Do the two given varVecs overlap
            
        
        
            
            Does the given list of sort keys contain a key with a var that is the given VarVec
            
        
        
            
            Does the list of outputs of the given SetOp contain a var
            from the given VarVec defined by the SetOp's child with the given index
            
        
        
            
            DbDataReader functionality for the bridge.
            
        
        
            
            Object that holds the state needed by the coordinator and the root enumerator
            
        
        
            
            Enumerator over shapers for NextResult() calls.
            Null for nested data readers (depth > 0);
            
        
        
            
            The coordinator we're responsible for returning results for.
            
        
        
            
            The default record (pre-read/past-end) state
            
        
        
            
            We delegate to this on our getters, to avoid duplicate code.
            
        
        
            
            Do we have a row to read?  Determined in the constructor and
            should not be changed.
            
        
        
            
            Set to true only when we've been closed through the Close() method
            
        
        
            
            0 if initialization hasn't been performed, 1 otherwise
            
        
        
            
            Runs the initialization if it hasn't been run
            
        
        
            
            Ensures that the reader is actually open, and throws an exception if not
            
        
        
            
            Implicitly close this (nested) data reader; will be called whenever
            the user has done a GetValue() or a Read() on a parent reader/record
            to ensure that we consume all our results.  We do that because we
            our design requires us to be positioned at the next nested reader's
            first row.
            
        
        
            
            Reads to the end of the source enumerator provided
            
        
        
            
            Figure out the CLR type from the TypeMetadata object; For scalars,
            we can get this from the metadata workspace, but for the rest, we
            just guess at "Object".  You need to use the DataRecordInfo property
            to get better information for those.
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Internal read method; does the work of advancing the root enumerator
            as needed and determining whether it's current record is for our
            coordinator. The public Read method does the assertions and such that
            we don't want to do when we're called from internal methods to do things
            like consume the rest of the reader's contents.
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            DbDataRecord functionality for the bridge.
            
        
        
            
            How deep down the hierarchy are we?
            
        
        
            
            Where the data comes from
            
        
        
            
            The current record that we're responsible for; this will change from row to row
            on the source data reader.  Will be set to null when parent the enumerator has
            returned false.
            
        
        
            
            Current state of the record;
            
        
        
            
            the column ordinal of the last column read, used to enforce sequential access
            
        
        
            
            the last data offset of a read returned, used to enforce sequential access
            
        
        
            
            the last ordinal that IsDBNull was called for; used to avoid re-reading the value;
            
        
        
            
            value, of the last column that IsDBNull was called for; used to avoid re-reading the value;
            
        
        
            
            Set to the current data record when we hand them out.  (For data reader columns,
            we use it's attached data record) The Close, GetValue and Read methods ensures
            that this is implicitly closed when we move past it.
            
        
        
            
            Called by our owning datareader when it is explicitly closed; will
            not be called for nested structures, they go through the ClosedImplicitly.
            path instead.
            
        
        
            
            Called by our parent object to ensure that we're marked as implicitly
            closed;  will not be called for root level data readers.
            
        
        
            
            Ensure that whatever column we're currently processing is implicitly closed;
            
        
        
            
            Should be called after each Read on the data reader.
            
        
        
            
            Ensures that the reader is actually open, and throws an exception if not
            
        
        
            
            Helper method.
            
        
        
            
            Ensures that sequential access rules are being obeyed for non-array
            getter methods, throws the appropriate exception if not.  Also ensures
            that the last column and array offset is set appropriately.
            
        
        
            
            Ensures that sequential access rules are being obeyed for array offset
            getter methods, throws the appropriate exception if not.  Also ensures
            that the last column and array offset is set appropriately.
            
        
        
            
            Helper method to get the edm TypeUsage for the specified column;
            If the column requested is a record, we'll pick up whatever the
            current record says it is, otherwise we'll take whatever was stored
            on our record state.
            
        
        
            
            implementation of DbDataRecord.GetDataTypeName() method
            
        
        
            
            implementation of DbDataRecord.GetFieldType() method
            
        
        
            
            implementation of DbDataRecord.GetName() method
            
        
        
            
            implementation of DbDataRecord.GetOrdinal() method
            
        
        
            
            implementation for DbDataRecord.GetValue() method
            This method is used by most of the column getters on this
            class to retrieve the value from the source reader.  Therefore,
            it asserts all the good things, like that the reader is open,
            and that it has data, and that you're not trying to circumvent
            sequential access requirements.
            
        
        
            
            For nested objects (records/readers) we have a bit more work to do; this
            method extracts it all out from the main GetValue method so it doesn't
            have to be so big.
            
        
        
            
            implementation for DbDataRecord.GetValues() method
            
        
        
            
            implementation of DbDataRecord.GetBoolean() method
            
        
        
            
            implementation of DbDataRecord.GetByte() method
            
        
        
            
            implementation of DbDataRecord.GetChar() method
            
        
        
            
            implementation of DbDataRecord.GetDateTime() method
            
        
        
            
            implementation of DbDataRecord.GetDecimal() method
            
        
        
            
            implementation of DbDataRecord.GetDouble() method
            
        
        
            
            implementation of DbDataRecord.GetFloat() method
            
        
        
            
            implementation of DbDataRecord.GetGuid() method
            
        
        
            
            implementation of DbDataRecord.GetInt16() method
            
        
        
            
            implementation of DbDataRecord.GetInt32() method
            
        
        
            
            implementation of DbDataRecord.GetInt64() method
            
        
        
            
            implementation of DbDataRecord.GetString() method
            
        
        
            
            implementation of DbDataRecord.IsDBNull() method
            
        
        
            
            implementation for DbDataRecord.GetBytes() method
            
        
        
            
            implementation for DbDataRecord.GetChars() method
            
        
        
            
            implementation for DbDataRecord.GetData() method
            
        
        
            
            implementation for DbDataRecord.GetDataRecord() method
            
        
        
            
            Used to return a nested result
            
        
        
            
            True when the record has data (SetRecordSource was called with true)
            
        
        
            
            True so long as we haven't been closed either implicity or explictly
            
        
        
            
            Determine whether we have been explicitly closed by our owning
            data reader; only data records that are responsible for processing
            data reader requests can be explicitly closed;
            
        
        
            
            Determine whether the parent data reader or record moved on from
            where we can be considered open, (because the consumer of the
            parent data reader/record called either the GetValue() or Read()
            methods on the parent);
            
        
        
            
            implementation of DbDataRecord.DataRecordInfo property
            
        
        
            
            implementation of DbDataRecord.FieldCount property
            
        
        
            
            implementation for DbDataRecord[ordinal] indexer property
            
        
        
            
            implementation for DbDataRecord[name] indexer property
            
        
        
            
            Provides common language runtime (CLR) methods that expose EDM canonical functions
            for use in  or  LINQ to Entities queries.
            
            
            Note that this class was called EntityFunctions in some previous versions of Entity Framework.
            
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
            the standard deviation of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
            the standard deviation for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The standard deviation for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
            the variance of the collection.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
            the variance for the population.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The collection over which to perform the calculation. 
             The variance for the population. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given
            number of the leftmost characters in a string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The number of characters to return 
             A string containing the number of characters asked for from the left of the input string. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given
            number of the rightmost characters in a string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The number of characters to return 
             A string containing the number of characters asked for from the right of the input string. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given
            string with the order of the characters reversed.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input string. 
             The input string with the order of the characters reversed. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to
            return the number of minutes that the given date/time is offset from UTC. This is generally between +780
            and -780 (+ or - 13 hrs).
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The offset of the input from UTC. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
            the given date with the time portion cleared.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The input date with the time portion cleared. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
            the given date with the time portion cleared.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The date/time value to use. 
             The input date with the time portion cleared. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The year. 
             The month (1-based). 
             The day (1-based). 
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The new date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The year. 
             The month (1-based). 
             The day (1-based). 
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The time zone offset part of the new date. 
             The new date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to
            create a new  object.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The hours. 
             The minutes. 
             The seconds, including fractional parts of the seconds if desired. 
             The new time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
            add the given number of years to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of years to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
            add the given number of years to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of years to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
            add the given number of months to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of months to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
            add the given number of months to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of months to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
            add the given number of days to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of days to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
            add the given number of days to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of days to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
            add the given number of hours to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of hours to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
            add the given number of minutes to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of minutes to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
            add the given number of seconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of seconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
            add the given number of milliseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of milliseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
            add the given number of microseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of microseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a date/time.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting date/time. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
            add the given number of nanoseconds to a time span.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The input date/time. 
             The number of nanoseconds to add. 
             A resulting time span. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
            calculate the number of years between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of years between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
            calculate the number of years between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of years between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
            calculate the number of months between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of months between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
            calculate the number of months between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of months between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
            calculate the number of days between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of days between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
            calculate the number of days between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of days between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of hours between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of hours between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
            calculate the number of hours between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of hours between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of minutes between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of minutes between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
            calculate the number of minutes between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of minutes between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of seconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of seconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
            calculate the number of seconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of seconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of milliseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of milliseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
            calculate the number of milliseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of milliseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of microseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of microseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
            calculate the number of microseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of microseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of nanoseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two date/times.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first date/time. 
             The second date/time. 
             The number of nanoseconds between the first and second date/times. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
            calculate the number of nanoseconds between two time spans.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The first time span. 
             The second time span. 
             The number of nanoseconds between the first and second time spans. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
            truncate the given value to the number of specified digits.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The value to truncate. 
             The number of digits to preserve. 
             The truncated value. 
        
        
            
            When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
            truncate the given value to the number of specified digits.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function is translated to a corresponding function in the database.
            
             The value to truncate. 
             The number of digits to preserve. 
             The truncated value. 
        
        
            
            When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
            is treated as a Unicode string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function impacts the way the LINQ query is translated to a query that can be run in the database.
            
             The input string. 
             The input string treated as a Unicode string. 
        
        
            
            When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
            is treated as a non-Unicode string.
            
            
            You cannot call this function directly. This function can only appear within a LINQ to Entities query.
            This function impacts the way the LINQ query is translated to a query that can be run in the database.
            
             The input string. 
             The input string treated as a non-Unicode string. 
        
        
            
            Describes the state of an entity.
            
        
        
            
            The entity is not being tracked by the context.
            An entity is in this state immediately after it has been created with the new operator
            or with one of the  Create methods.
            
        
        
            
            The entity is being tracked by the context and exists in the database, and its property
            values have not changed from the values in the database.
            
        
        
            
            The entity is being tracked by the context but does not yet exist in the database.
            
        
        
            
            The entity is being tracked by the context and exists in the database, but has been marked
            for deletion from the database the next time SaveChanges is called.
            
        
        
            
            The entity is being tracked by the context and exists in the database, and some or all of its
            property values have been modified.
            
        
        
            
            Represents information about a database connection.
            
        
        
            
            Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file.
            
             The name of the connection string in the application configuration. 
        
        
            
            Creates a new instance of DbConnectionInfo based on a connection string.
            
             The connection string to use for the connection. 
             The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. 
        
        
            
            Gets the connection information represented by this instance.
            
             Configuration to use if connection comes from the configuration file. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Instances of this class are used to create DbConnection objects for
            SQL Server LocalDb based on a given database name or connection string.
            
            
            An instance of this class can be set on the  class or in the
            app.config/web.config for the application to cause all DbContexts created with no
            connection information or just a database name to use SQL Server LocalDb by default.
            This class is immutable since multiple threads may access instances simultaneously
            when creating connections.
            
        
        
            
            Implementations of this interface are used to create DbConnection objects for
            a type of database server based on a given database name.
            An Instance is set on the  class to
            cause all DbContexts created with no connection information or just a database
            name or connection string to use a certain type of database server by default.
            Two implementations of this interface are provided: 
            is used to create connections to Microsoft SQL Server, including EXPRESS editions.
             is used to create connections to Microsoft SQL
            Server Compact Editions.
            Other implementations for other database servers can be added as needed.
            Note that implementations should be thread safe or immutable since they may
            be accessed by multiple threads at the same time.
            
        
        
            
            Creates a connection based on the given database name or connection string.
            
             The database name or connection string. 
             An initialized DbConnection. 
        
        
            
            Creates a new instance of the connection factory for the given version of LocalDb.
            For SQL Server 2012 LocalDb use "v11.0".
            
             The LocalDb version to use. 
        
        
            
            Creates a new instance of the connection factory for the given version of LocalDb.
            For SQL Server 2012 LocalDb use "v11.0".
            
             The LocalDb version to use. 
             The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument. 
        
        
            
            Creates a connection for SQL Server LocalDb based on the given database name or connection string.
            If the given string contains an '=' character then it is treated as a full connection string,
            otherwise it is treated as a database name only.
            
             The database name or connection string. 
             An initialized DbConnection. 
        
        
            
            The connection string to use for options to the database other than the 'Initial Catalog',
            'Data Source', and 'AttachDbFilename'.
            The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the
            database name when CreateConnection is called.
            The 'Data Source' will be set based on the LocalDbVersion argument.
            The default is 'Integrated Security=True;'.
            
        
        
            
            Encapsulates a cloned  and store . Note that these
            objects are disposable and should be used in a using block to ensure both the cloned context and the
            cloned connection are disposed.
            
        
        
            
            For mocking.
            
        
        
            
            Creates a clone of the given . The underlying  of
            the context is also cloned and the given connection string is used for the connection string of
            the cloned connection.
            
        
        
            
            Finds the assemblies that were used for loading o-space types in the source context
            and loads those assemblies in the cloned context.
            
        
        
            
            Disposes both the underlying ObjectContext and its store connection.
            
        
        
            
            The cloned context.
            
        
        
            
            This is always the store connection of the underlying ObjectContext.
            
        
        
            
            Represents setting the database initializer for a specific context type
            
        
        
            
            Represents a parameter to be passed to a method
            
        
        
            
            Represents a series of parameters to pass to a method
            
        
        
            
            Adds a new parameter to the collection
            Used for unit testing
            
        
        
            
            Represents the configuration for a series of contexts
            
        
        
            
            Represents the configuration for a specific context type
            
        
        
            
            Represents setting the default connection factory
            
        
        
            
            Represents all Entity Framework related configuration
            
        
        
            
            Handles creating databases either using the core provider or the Migrations pipeline.
            
        
        
            
            Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or
            by using Code First Migrations  to create an empty database
            and the perform an automatic migration to the current model.
            
        
        
            
            A simple representation of an app.config or web.config file.
            
        
        
            
            Initializes a new instance of AppConfig based on supplied configuration
            
             Configuration to load settings from 
        
        
            
            Initializes a new instance of AppConfig based on supplied connection strings
            The default configuration for database initializers and default connection factory will be used
            
             Connection strings to be used 
        
        
            
            Initializes a new instance of AppConfig based on the  for the AppDomain
            
            
            Use AppConfig.DefaultInstance instead of this constructor
            
        
        
            
            Gets the default connection factory based on the configuration
            
        
        
            
            Gets the specified connection string from the configuration
            
             Name of the connection string to get 
             The connection string, or null if there is no connection string with the specified name 
        
        
            
            Gets a singleton instance of configuration based on the  for the AppDomain
            
        
        
            
            Acts as a proxy for  that for the most part just passes calls
            through to the real object but uses virtual methods/properties such that uses of the object
            can be mocked.
            
        
        
            
            Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2.
            
        
        
            
            Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in
            the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema
            as was generated by EF 4.1/4.2 and with the  entity included in the model.
            
        
        
            
            Acts as a proxy for  that for the most part just passes calls
            through to the real object but uses virtual methods/properties such that uses of the object
            can be mocked.
            
        
        
            
            An implementation of  that will use Code First Migrations
            to update the database to the latest version.
            
        
        
            
            Initializes a new instance of the MigrateDatabaseToLatestVersion class.
            
        
        
            
            Initializes a new instance of the MigrateDatabaseToLatestVersion class that will
            use a specific connection string from the configuration file to connect to
            the database to perform the migration.
            
             The name of the connection string to use for migration. 
        
        
            
        
        
             
             Helper class that is used to configure a column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Creates a new column definition to store Binary data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The maximum allowable length of the array data. 
              Value indicating whether or not all data should be padded to the maximum length. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              Value indicating whether or not this column should be configured as a timestamp. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Boolean data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Byte data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Value indicating whether or not the database will generate values for this column during insert. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store DateTime data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The precision of the column. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Decimal data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The numeric precision of the column. 
              The numeric scale of the column. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              Value indicating whether or not the database will generate values for this column during insert. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Double data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store GUID data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Value indicating whether or not the database will generate values for this column during insert. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Single data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Short data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Value indicating whether or not the database will generate values for this column during insert. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Integer data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Value indicating whether or not the database will generate values for this column during insert. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Long data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Value indicating whether or not the database will generate values for this column during insert. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store String data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The maximum allowable length of the string data. 
              Value indicating whether or not all data should be padded to the maximum length. 
              Value indicating whether or not the column supports Unicode content. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store Time data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The precision of the column. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store DateTimeOffset data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              The precision of the column. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store geography data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
             
             Creates a new column definition to store geometry data.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Value indicating whether or not the column allows null values. 
              Constant value to use as the default value for this column. 
              SQL expression used as the default value for this column. 
              The name of the column. 
              Provider specific data type to use for this column. 
              The newly constructed column definition. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Creates a shallow copy of the current .
            
            A shallow copy of the current .
        
        
             
             Helper class that is used to further configure a table being created from a CreateTable call on
             
             .
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Initializes a new instance of the TableBuilder class.
            
             The table creation operation to be further configured. 
             The migration the table is created in. 
        
        
             
             Specifies a primary key for the table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } 
              The name of the primary key. If null is supplied, a default name will be generated. 
              A value indicating whether or not this is a clustered primary key. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
              Itself, so that multiple calls can be chained. 
        
        
             
             Specifies an index to be created on the table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } 
              A value indicating whether or not this is a unique index. 
              A value indicating whether or not this is a clustered index. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
              Itself, so that multiple calls can be chained. 
        
        
             
             Specifies a foreign key constraint to be created on the table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Name of the table that the foreign key constraint targets. 
              A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } 
              A value indicating whether or not cascade delete should be configured on the foreign key constraint. 
              The name of this foreign key constraint. If no name is supplied, a default name will be calculated. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
              Itself, so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Creates a shallow copy of the current .
            
            A shallow copy of the current .
        
        
             
             Base class for code-based migrations.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Operations to be performed during the upgrade process.
            
        
        
            
            Operations to be performed during the downgrade process.
            
        
        
             
             Adds an operation to create a new stored procedure.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             The body of the stored procedure.
             
             The additional arguments that may be processed by providers. Use anonymous type syntax
             to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create a new stored procedure.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             The action that specifies the parameters of the stored procedure.
             The body of the stored procedure.
             
             The additional arguments that may be processed by providers. Use anonymous type syntax
             to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
             
             
             The parameters in this create stored procedure operation. You do not need to specify this
             type, it will be inferred from the  parameter you supply.
             
        
        
             
             Adds an operation to alter a stored procedure.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             The body of the stored procedure.
             
             The additional arguments that may be processed by providers. Use anonymous type syntax
             to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to alter a stored procedure.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The parameters in this alter stored procedure operation. You do not need to specify this
             type, it will be inferred from the  parameter you supply.
             
             
             The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             The action that specifies the parameters of the stored procedure.
             The body of the stored procedure.
             
             The additional arguments that may be processed by providers. Use anonymous type syntax
             to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an existing stored procedure with the specified name.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             
             The additional arguments that may be processed by providers. Use anonymous type syntax
             to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create a new table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The columns in this create table operation. You do not need to specify this type, it will
             be inferred from the columnsAction parameter you supply.
             
              The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. 
             
             An action that specifies the columns to be included in the table. i.e. t => new { Id =
             t.Int(identity: true), Name = t.String() }
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
              An object that allows further configuration of the table creation operation. 
        
        
             
             Adds an operation to create a new foreign key constraint.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key column. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The foreign key column. 
             
             The table that contains the column this foreign key references. Schema name is optional,
             if no schema is specified then dbo is assumed.
             
             
             The column this foreign key references. If no value is supplied the primary key of the
             principal table will be referenced.
             
             
             A value indicating if cascade delete should be configured for the foreign key
             relationship. If no value is supplied, cascade delete will be off.
             
             
             The name of the foreign key constraint in the database. If no value is supplied a unique name will
             be generated.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create a new foreign key constraint.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key columns. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The foreign key columns. 
             
             The table that contains the columns this foreign key references. Schema name is optional,
             if no schema is specified then dbo is assumed.
             
             
             The columns this foreign key references. If no value is supplied the primary key of the
             principal table will be referenced.
             
             
             A value indicating if cascade delete should be configured for the foreign key
             relationship. If no value is supplied, cascade delete will be off.
             
             
             The name of the foreign key constraint in the database. If no value is supplied a unique name will
             be generated.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop a foreign key constraint based on its name.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key column. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The name of the foreign key constraint in the database. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop a foreign key constraint based on the column it targets.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key column. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The foreign key column. 
             
             The table that contains the column this foreign key references. Schema name is optional,
             if no schema is specified then dbo is assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop a foreign key constraint based on the column it targets.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key column.
             Schema name is optional, if no schema is specified then dbo is assumed.
             
             The foreign key column.
             
             The table that contains the column this foreign key references.
             Schema name is optional, if no schema is specified then dbo is assumed.
             
             The columns this foreign key references.
             
             Additional arguments that may be processed by providers.
             Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop a foreign key constraint based on the columns it targets.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the foreign key columns. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The foreign key columns. 
             
             The table that contains the columns this foreign key references. Schema name is optional,
             if no schema is specified then dbo is assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to move a table to a new schema.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
              The schema the table is to be moved to. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to move a stored procedure to a new schema.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the stored procedure to be moved. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The schema the stored procedure is to be moved to. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to rename a table. To change the schema of a table use MoveTable.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             
             The new name for the table. Schema name is optional, if no schema is specified then dbo is
             assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
             
             The new name for the stored procedure. Schema name is optional, if no schema is specified then
             dbo is assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to rename a column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table that contains the column to be renamed. Schema name is optional, if no
             schema is specified then dbo is assumed.
             
              The name of the column to be renamed. 
              The new name for the column. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to add a column to an existing table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to add the column to. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the column to be added. 
             
             An action that specifies the column to be added. i.e. c => c.Int(nullable: false,
             defaultValue: 3)
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an existing column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to drop the column from. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the column to be dropped. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to alter the definition of an existing column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table the column exists in. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the column to be changed. 
             
             An action that specifies the new definition for the column. i.e. c => c.String(nullable:
             false, defaultValue: "none")
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create a new primary key.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the primary key column. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The primary key column. 
             
             The name of the primary key in the database. If no value is supplied a unique name will be
             generated.
             
              A value indicating whether or not this is a clustered primary key. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create a new primary key based on multiple columns.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the primary key columns. Schema name is optional, if no schema is
             specified then dbo is assumed.
             
              The primary key columns. 
             
             The name of the primary key in the database. If no value is supplied a unique name will be
             generated.
             
              A value indicating whether or not this is a clustered primary key. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an existing primary key that does not have the default name.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the primary key column. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the primary key to be dropped. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an existing primary key that was created with the default name.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The table that contains the primary key column. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create an index on a single column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to create the index on. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the column to create the index on. 
             
             A value indicating if this is a unique index. If no value is supplied a non-unique index will be
             created.
             
             
             The name to use for the index in the database. If no value is supplied a unique name will be
             generated.
             
              A value indicating whether or not this is a clustered index. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to create an index on multiple columns.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to create the index on. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the columns to create the index on. 
             
             A value indicating if this is a unique index. If no value is supplied a non-unique index will be
             created.
             
             
             The name to use for the index in the database. If no value is supplied a unique name will be
             generated.
             
              A value indicating whether or not this is a clustered index. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an index based on its name.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to drop the index from. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the index to be dropped. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to drop an index based on the columns it targets.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The name of the table to drop the index from. Schema name is optional, if no schema is specified
             then dbo is assumed.
             
              The name of the column(s) the index targets. 
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
             
             Adds an operation to execute a SQL command.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The SQL to be executed. 
             
             A value indicating if the SQL should be executed outside of the transaction being
             used for the migration process. If no value is supplied the SQL will be executed within the transaction.
             
             
             Additional arguments that may be processed by providers. Use anonymous type syntax to
             specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
             
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configuration relating to the use of migrations for a given model.
            You will typically create a configuration class that derives
            from  rather than
            using this class.
            
        
        
            
            The default directory that migrations are stored in.
            
        
        
            
            Initializes a new instance of the DbMigrationsConfiguration class.
            
        
        
            
            Adds a new SQL generator to be used for a given database provider.
            
             Name of the database provider to set the SQL generator for. 
             The SQL generator to be used. 
        
        
            
            Gets the SQL generator that is set to be used with a given database provider.
            
             Name of the database provider to get the SQL generator for. 
             The SQL generator that is set for the database provider. 
        
        
            
            Adds a new factory for creating  instances to be used for a given database provider.
            
             Name of the database provider to set the SQL generator for. 
            
            A factory for creating  instances for a given  and
             representing the default schema.
            
        
        
            
            Gets the history context factory that is set to be used with a given database provider.
            
             Name of the database provider to get thefactory for. 
             The history context factory that is set for the database provider. 
        
        
            
            Gets or sets a value indicating if automatic migrations can be used when migration the database.
            
        
        
            
            Gets or sets the string used to distinguish migrations belonging to this configuration
            from migrations belonging to other configurations using the same database.
            This property enables migrations from multiple different models to be applied to applied to a single database.
            
        
        
            
            Gets or sets a value indicating if data loss is acceptable during automatic migration.
            If set to false an exception will be thrown if data loss may occur as part of an automatic migration.
            
        
        
            
            Gets or sets the derived DbContext representing the model to be migrated.
            
        
        
            
            Gets or sets the namespace used for code-based migrations.
            
        
        
            
            Gets or sets the sub-directory that code-based migrations are stored in.
            Note that this property must be set to a relative path for a sub-directory under the
            Visual Studio project root; it cannot be set to an absolute path.
            
        
        
            
            Gets or sets the code generator to be used when scaffolding migrations.
            
        
        
            
            Gets or sets the assembly containing code-based migrations.
            
        
        
            
            Gets or sets a value to override the connection of the database to be migrated.
            
        
        
            
            Gets or sets the timeout value used for the individual commands within a
            migration. A null value indicates that the default value of the underlying
            provider will be used.
            
        
        
            
            Configuration relating to the use of migrations for a given model.
            
             The context representing the model that this configuration applies to. 
        
        
            
            Initializes a new instance of the DbMigrationsConfiguration class.
            
        
        
            
            Runs after upgrading to the latest migration to allow seed data to be updated.
            
             Context to be used for updating seed data. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            DbMigrator is used to apply existing migrations to a database.
            DbMigrator can be used to upgrade and downgrade to any given migration.
            To scaffold migrations based on changes to your model use 
            
        
        
            
            Base class for decorators that wrap the core 
            
        
        
            
            Initializes a new instance of the MigratorBase class.
            
             The migrator that this decorator is wrapping. 
        
        
            
            Gets a list of the pending migrations that have not been applied to the database.
            
             List of migration Ids 
        
        
            
            Updates the target database to the latest migration.
            
        
        
            
            Updates the target database to a given migration.
            
             The migration to upgrade/downgrade to. 
        
        
            
            Gets a list of the migrations that are defined in the assembly.
            
             List of migration Ids 
        
        
            
            Gets a list of the migrations that have been applied to the database.
            
             List of migration Ids 
        
        
            
            Gets the configuration being used for the migrations process.
            
        
        
            
            Migration Id representing the state of the database before any migrations are applied.
            
        
        
            
            For testing.
            
        
        
            
            Initializes a new instance of the DbMigrator class.
            
             Configuration to be used for the migration process. 
        
        
            
            Gets all migrations that are defined in the configured migrations assembly.
            
        
        
            
            Gets all migrations that have been applied to the target database.
            
        
        
            
            Gets all migrations that are defined in the assembly but haven't been applied to the target database.
            
        
        
            
            Updates the target database to a given migration.
            
             The migration to upgrade/downgrade to. 
        
        
            
            Ensures that the database exists by creating an empty database if one does not
            already exist. If a new empty database is created but then the code in mustSucceedToKeepDatabase
            throws an exception, then an attempt is made to clean up (delete) the new empty database.
            This avoids leaving an empty database with no or incomplete metadata (e.g. MigrationHistory)
            which can then cause problems for database initializers that check whether or not a database
            exists.
            
        
        
            
            Gets the configuration that is being used for the migration process.
            
        
        
            
            A set of extension methods for 
            
        
        
            
            Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation
            from database terminology.
            This method can useful when seeding data using Migrations.
            
             
             The entities to add or update. 
            
            When the  parameter is a custom or fake IDbSet implementation, this method will
            attempt to locate and invoke a public, instance method with the same signature as this extension method.
            
        
        
            
            Adds or updates entities by a custom identification expression when SaveChanges is called.
            Equivalent to an "upsert" operation from database terminology.
            This method can useful when seeding data using Migrations.
            
             
             An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed. 
             The entities to add or update. 
            
            When the  parameter is a custom or fake IDbSet implementation, this method will
            attempt to locate and invoke a public, instance method with the same signature as this extension method.
            
        
        
            
            Generates C# code for a code-based migration.
            
        
        
            
            Base class for providers that generate code for code-based migrations.
            
        
        
            
            Generates the code that should be added to the users project.
            
             Unique identifier of the migration. 
             Operations to be performed by the migration. 
             Source model to be stored in the migration metadata. 
             Target model to be stored in the migration metadata. 
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             The generated code. 
        
        
            
            Gets the namespaces that must be output as "using" or "Imports" directives to handle
            the code generated by the given operations.
            
             The operations for which code is going to be generated. 
             An ordered list of namespace names. 
        
        
            
            Gets the default namespaces that must be output as "using" or "Imports" directives for
            any code generated.
            
             A value indicating if this class is being generated for a code-behind file. 
             An ordered list of namespace names. 
        
        
            
        
        
            
            Generates the primary code file that the user can view and edit.
            
             Operations to be performed by the migration. 
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             The generated code. 
        
        
            
            Generates the code behind file with migration metadata.
            
             Unique identifier of the migration. 
             Source model to be stored in the migration metadata. 
             Target model to be stored in the migration metadata. 
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             The generated code. 
        
        
            
            Generates a property to return the source or target model in the code behind file.
            
             Name of the property. 
             Value to be returned. 
             Text writer to add the generated code to. 
        
        
            
            Generates a namespace, using statements and class definition.
            
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             Text writer to add the generated code to. 
             Base class for the generated class. 
             A value indicating if this class is being generated for a code-behind file. 
             Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. 
        
        
            
            Generates the closing code for a class that was started with WriteClassStart.
            
             
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            Generates code to specify the definition for a .
            The parameter definition to generate code for.
            Text writer to add the generated code to.
            A value indicating whether to include the column name in the definition.
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to specify a set of column names using a lambda expression.
            
             The columns to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to specify the definition for a .
            
             The column definition to generate code for. 
             Text writer to add the generated code to. 
             A value indicating whether to include the column name in the definition. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a column of unknown data type.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Removes any invalid characters from the name of an database artifact.
            
             The name to be scrubbed. 
             The scrubbed name. 
        
        
            
            Gets the type name to use for a column of the given data type.
            
             The data type to translate. 
             The type name to use in the generated migration. 
        
        
            
            Quotes an identifier using appropriate escaping to allow it to be stored in a string.
            
             The identifier to be quoted. 
             The quoted identifier. 
        
        
            
            Scaffolds code-based migrations to apply pending model changes to the database.
            
        
        
            
            Initializes a new instance of the MigrationScaffolder class.
            
             Configuration to be used for scaffolding. 
        
        
            
            Scaffolds a code based migration to apply any pending model changes to the database.
            
             The name to use for the scaffolded migration. 
             The scaffolded migration. 
        
        
            
            Scaffolds a code based migration to apply any pending model changes to the database.
            
             The name to use for the scaffolded migration. 
             Whether or not to include model changes. 
             The scaffolded migration. 
        
        
            
            Scaffolds the initial code-based migration corresponding to a previously run database initializer.
            
             The scaffolded migration. 
        
        
            
            Gets or sets the namespace used in the migration's generated code.
            By default, this is the same as MigrationsNamespace on the migrations
            configuration object passed into the constructor. For VB.NET projects, this
            will need to be updated to take into account the project's root namespace.
            
        
        
            
            Represents a code-based migration that has been scaffolded and is ready to be written to a file.
            
        
        
            
            Gets or sets the unique identifier for this migration.
            Typically used for the file name of the generated code.
            
        
        
            
            Gets or sets the scaffolded migration code that the user can edit.
            
        
        
            
            Gets or sets the scaffolded migration code that should be stored in a code behind file.
            
        
        
            
            Gets or sets the programming language used for this migration.
            Typically used for the file extension of the generated code.
            
        
        
            
            Gets or sets the subdirectory in the user's project that this migration should be saved in.
            
        
        
            
            Gets a dictionary of string resources to add to the migration resource file.
            
        
        
            
            Gets or sets whether the migration was re-scaffolded.
            
        
        
            
            Helper class that is used by design time tools to run migrations related
            commands that need to interact with an application that is being edited
            in Visual Studio.
            Because the application is being edited the assemblies need to
            be loaded in a separate AppDomain to ensure the latest version
            is always loaded.
            The App/Web.config file from the startup project is also copied
            to ensure that any configuration is applied.
            
        
        
            
            Initializes a new instance of the ToolingFacade class.
            
             The name of the assembly that contains the migrations configuration to be used. 
             The name of the assembly that contains the DbContext to be used. 
             The namespace qualified name of migrations configuration to be used. 
             The working directory containing the compiled assemblies. 
             The path of the config file from the startup project. 
             The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables. 
             The connection to the database to be migrated. If null is supplied, the default connection for the context will be used. 
        
        
            
            Releases all unmanaged resources used by the facade.
            
        
        
            
            Gets the fully qualified name of all types deriving from .
            
             All context types found. 
        
        
            
            Gets the fully qualified name of a type deriving from .
            
             The name of the context type. If null, the single context type found in the assembly will be returned. 
             The context type found. 
        
        
            
            Gets a list of all migrations that have been applied to the database.
            
             Ids of applied migrations. 
        
        
            
            Gets a list of all migrations that have not been applied to the database.
            
             Ids of pending migrations. 
        
        
            
            Updates the database to the specified migration.
            
             The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration. 
             Value indicating if data loss during automatic migration is acceptable. 
        
        
            
            Generates a SQL script to migrate between two migrations.
            
             The migration to update from. If null is supplied, a script to update the current database will be produced. 
             The migration to update to. If null is supplied, a script to update to the latest migration will be produced. 
             Value indicating if data loss during automatic migration is acceptable. 
             The generated SQL script. 
        
        
            
            Scaffolds a code-based migration to apply any pending model changes.
            
             The name for the generated migration. 
             The programming language of the generated migration. 
             The root namespace of the project the migration will be added to. 
             Whether or not to include model changes. 
             The scaffolded migration. 
        
        
            
            Scaffolds the initial code-based migration corresponding to a previously run database initializer.
            
             The programming language of the generated migration. 
             The root namespace of the project the migration will be added to. 
             The scaffolded migration. 
        
        
            
        
        
            
            Releases all resources used by the facade.
            
            
            true to release both managed and unmanaged resources; false to release only unmanaged resources.
            
        
        
            
            Gets or sets an action to be run to log information.
            
        
        
            
            Gets or sets an action to be run to log warnings.
            
        
        
            
            Gets or sets an action to be run to log verbose information.
            
        
        
            
            Base class for loggers that can be used for the migrations process.
            
        
        
            
            Logs an informational message.
            
             The message to be logged. 
        
        
            
            Logs a warning that the user should be made aware of.
            
             The message to be logged. 
        
        
            
            Logs some additional information that should only be presented to the user if they request verbose output.
            
             The message to be logged. 
        
        
            
            Generates VB.Net code for a code-based migration.
            
        
        
            
        
        
            
            Generates the primary code file that the user can view and edit.
            
             Operations to be performed by the migration. 
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             The generated code. 
        
        
            
            Generates the code behind file with migration metadata.
            
             Unique identifier of the migration. 
             Source model to be stored in the migration metadata. 
             Target model to be stored in the migration metadata. 
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             The generated code. 
        
        
            
            Generates a property to return the source or target model in the code behind file.
            
             Name of the property. 
             Value to be returned. 
             Text writer to add the generated code to. 
        
        
            
            Generates a namespace, using statements and class definition.
            
             Namespace that code should be generated in. 
             Name of the class that should be generated. 
             Text writer to add the generated code to. 
             Base class for the generated class. 
             A value indicating if this class is being generated for a code-behind file. 
             Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. 
        
        
            
            Generates the closing code for a class that was started with WriteClassStart.
            
             
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            Generates code to perform a .
            The parameter model definition to generate code for.
            Text writer to add the generated code to.
            true to include the column name in the definition; otherwise, false.
        
        
            Generates code to perform a .
            The operation to generate code for.
            Text writer to add the generated code to.
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a  as part of a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to specify a set of column names using a lambda expression.
            
             The columns to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform an .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to specify the definition for a .
            
             The column definition to generate code for. 
             Text writer to add the generated code to. 
             A value indicating whether to include the column name in the definition. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a  column.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to specify the default value for a column of unknown data type.
            
             The value to be used as the default. 
             Code representing the default value. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Generates code to perform a .
            
             The operation to generate code for. 
             Text writer to add the generated code to. 
        
        
            
            Removes any invalid characters from the name of an database artifact.
            
             The name to be scrubbed. 
             The scrubbed name. 
        
        
            
            Gets the type name to use for a column of the given data type.
            
             The data type to translate. 
             The type name to use in the generated migration. 
        
        
            
            Quotes an identifier using appropriate escaping to allow it to be stored in a string.
            
             The identifier to be quoted. 
             The quoted identifier. 
        
        
            
            This class is used by Code First Migrations to read and write migration history
            from the database.
            To customize the definition of the migrations history table you can derive from
            this class and override OnModelCreating. Derived instances can either be registered
            on a per migrations configuration basis using ,
            or globally using .
            
        
        
            
            The default name used for the migrations history table.
            
        
        
            
            For testing
            
        
        
            
            Initializes a new instance of the HistoryContext class.
            If you are creating a derived history context you will generally expose a constructor
            that accepts these same three parameters and passes them to this base constructor.
            
            
            An existing connection to use for the new context.
            
            
            The default schema of the model being migrated.
            This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating.
            
        
        
            
            Applies the default configuration for the migrations history table. If you override
            this method it is recommended that you call this base implementation before applying your
            custom configuration.
            
             The builder that defines the model for the context being created. 
        
        
            
            Gets the key used to locate a model that was previously built for this context. This is used
            to avoid processing OnModelCreating and calculating the model every time a new context instance is created.
            By default this property returns the default schema.
            In most cases you will not need to override this property. However, if your implementation of OnModelCreating
            contains conditional logic that results in a different model being built for the same database provider and
            default schema you should override this property and calculate an appropriate key.
            
        
        
            
            Gets the default schema of the model being migrated.
            This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating.
            
        
        
            
            Gets or sets a  that can be used to read and write  instances.
            
        
        
            
            This class is used by Code First Migrations to read and write migration history
            from the database.
            
        
        
            
            Gets or sets the Id of the migration this row represents.
            
        
        
            
            Gets or sets a key representing to which context the row applies.
            
        
        
            
            Gets or sets the state of the model after this migration was applied.
            
        
        
            
            Gets or sets the version of Entity Framework that created this entry.
            
        
        
            
            This is a version of the HistoryContext that still includes CreatedOn in its model.
            It is used when figuring out whether or not the CreatedOn column exists and so should
            be dropped.
            
        
        
            
            Represents an error that occurs when an automatic migration would result in data loss.
            
        
        
            
            Initializes a new instance of the AutomaticDataLossException class.
            
        
        
            
            Initializes a new instance of the AutomaticDataLossException class.
            
             The message that describes the error. 
        
        
            
            Initializes a new instance of the MigrationsException class.
            
             The message that describes the error. 
             The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. 
        
        
            
            Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled.
            
        
        
            
            Initializes a new instance of the AutomaticMigrationsDisabledException class.
            
        
        
            
            Initializes a new instance of the AutomaticMigrationsDisabledException class.
            
             The message that describes the error. 
        
        
            
            Initializes a new instance of the MigrationsException class.
            
             The message that describes the error. 
             The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. 
        
        
            
                For testing.
            
        
        
            
                Exposed internally for testing.
            
        
        
            
            Provides additional metadata about a code-based migration.
            
        
        
            
            Gets the unique identifier for the migration.
            
        
        
            
            Gets the state of the model before this migration is run.
            
        
        
            
            Gets the state of the model after this migration is run.
            
        
        
            
            Decorator to provide logging during migrations operations..
            
        
        
            
            Initializes a new instance of the MigratorLoggingDecorator class.
            
             The migrator that this decorator is wrapping. 
             The logger to write messages to. 
        
        
            
            Decorator to produce a SQL script instead of applying changes to the database.
            Using this decorator to wrap  will prevent 
            from applying any changes to the target database.
            
        
        
            
            Initializes a new instance of the  MigratorScriptingDecorator class.
            
             The migrator that this decorator is wrapping. 
        
        
            
            Produces a script to update the database.
            
            
            The migration to update from. If null is supplied, a script to update the
            current database will be produced.
            
            
            The migration to update to. If null is supplied,
            a script to update to the latest migration will be produced.
            
             The generated SQL script. 
        
        
             
             Represents a column being added to a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the AddColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table the column should be added to. 
              Details of the column being added. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table the column should be added to.
            
        
        
            
            Gets the details of the column being added.
            
        
        
            
            Gets an operation that represents dropping the added column.
            
        
        
            
        
        
             
             Represents a foreign key constraint being added to a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Base class for changes that affect foreign key constraints.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the ForeignKeyOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Gets or sets the name of the table that the foreign key constraint targets.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Gets or sets the name of the table that the foreign key columns exist in.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            The names of the foreign key column(s).
            
            Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
            (such as the end user of an application). If input is accepted from such sources it should be validated 
            before being passed to these APIs to protect against SQL injection attacks etc.
            
        
        
            
            Gets a value indicating if a specific name has been supplied for this foreign key constraint.
            
        
        
             
             Gets or sets the name of this foreign key constraint.
             If no name is supplied, a default name will be calculated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the AddForeignKeyOperation class.
             The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation to create an index on the foreign key column(s).
            
             An operation to add the index. 
        
        
             
             The names of the column(s) that the foreign key constraint should target.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint.
            
        
        
            
            Gets an operation to drop the foreign key constraint.
            
        
        
            
        
        
             
             Represents adding a primary key to a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Common base class to represent operations affecting primary keys.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the PrimaryKeyOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Gets or sets the name of the table that contains the primary key.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Gets the column(s) that make up the primary key.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets a value indicating if a specific name has been supplied for this primary key.
            
        
        
             
             Gets or sets the name of this primary key.
             If no name is supplied, a default name will be calculated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
        
        
             
             Initializes a new instance of the AddPrimaryKeyOperation class.
             The Table and Columns properties should also be populated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation to drop the primary key.
            
        
        
            
            Gets or sets whether this is a clustered primary key.
            
        
        
             
             Represents altering an existing column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the AlterColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table that the column belongs to. 
              Details of what the column should be altered to. 
              Value indicating if this change will result in data loss. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Initializes a new instance of the AlterColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table that the column belongs to. 
              Details of what the column should be altered to. 
              Value indicating if this change will result in data loss. 
              An operation to revert this alteration of the column. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table that the column belongs to.
            
        
        
            
            Gets the new definition for the column.
            
        
        
            
            Gets an operation that represents reverting the alteration.
            The inverse cannot be automatically calculated,
            if it was not supplied to the constructor this property will return null.
            
        
        
            
        
        
             
             Represents information about a column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the ColumnModel class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The data type for this column. 
        
        
             
             Initializes a new instance of the ColumnModel class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The data type for this column. 
              Additional details about the data type. This includes details such as maximum length, nullability etc. 
        
        
            
            Determines if this column is a narrower data type than another column.
            Used to determine if altering the supplied column definition to this definition will result in data loss.
            
             The column to compare to. 
             Details of the database provider being used. 
             True if this column is of a narrower data type. 
        
        
            
            Gets the CLR type corresponding to the database type of this column.
            
        
        
            
            Gets the default value for the CLR type corresponding to the database type of this column.
            
        
        
            
            Gets or sets a value indicating if this column can store null values.
            
        
        
            
            Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern.
            
        
        
            
            Gets or sets a value indicating if this property model should be configured as a timestamp.
            
        
        
             
             Represents creating a database index.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Common base class for operations affecting indexes.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the IndexOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Gets or sets the table the index belongs to.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets the columns that are indexed.
            
            Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
            (such as the end user of an application). If input is accepted from such sources it should be validated 
            before being passed to these APIs to protect against SQL injection attacks etc.
            
        
        
            
            Gets a value indicating if a specific name has been supplied for this index.
            
        
        
             
             Gets or sets the name of this index.
             If no name is supplied, a default name will be calculated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the CreateIndexOperation class.
             The Table and Columns properties should also be populated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets or sets a value indicating if this is a unique index.
            
        
        
            
            Gets an operation to drop this index.
            
        
        
            
        
        
            
            Gets or sets whether this is a clustered index.
            
        
        
             
             Represents creating a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the CreateTableOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Name of the table to be created. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table to be created.
            
        
        
            
            Gets the columns to be included in the new table.
            
        
        
            
            Gets or sets the primary key for the new table.
            
        
        
            
            Gets an operation to drop the table.
            
        
        
            
        
        
             
             Represents a column being dropped from a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the DropColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table the column should be dropped from. 
              The name of the column to be dropped. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Initializes a new instance of the DropColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table the column should be dropped from. 
              The name of the column to be dropped. 
              The operation that represents reverting the drop operation. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table the column should be dropped from.
            
        
        
            
            Gets the name of the column to be dropped.
            
        
        
            
            Gets an operation that represents reverting dropping the column.
            The inverse cannot be automatically calculated,
            if it was not supplied to the constructor this property will return null.
            
        
        
            
        
        
             
             Represents a foreign key constraint being dropped from a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the DropForeignKeyOperation class.
             The PrincipalTable, DependentTable and DependentColumns properties should also be populated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Initializes a new instance of the DropForeignKeyOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc..
             
              The operation that represents reverting dropping the foreign key constraint. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation to drop the associated index on the foreign key column(s).
            
             An operation to drop the index. 
        
        
            
            Gets an operation that represents reverting dropping the foreign key constraint.
            The inverse cannot be automatically calculated,
            if it was not supplied to the constructor this property will return null.
            
        
        
            
        
        
             
             Represents dropping an existing index.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the DropIndexOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Initializes a new instance of the DropIndexOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The operation that represents reverting dropping the index. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation that represents reverting dropping the index.
            The inverse cannot be automatically calculated,
            if it was not supplied to the constructor this property will return null.
            
        
        
            
        
        
             
             Represents dropping a primary key from a table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the DropPrimaryKeyOperation class.
             The Table and Columns properties should also be populated.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets an operation to add the primary key.
            
        
        
            
            Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key.
            
            
            The create table operation for the migrations history table.
            
        
        
             
             Represents dropping an existing table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the DropTableOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table to be dropped. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
             
             Initializes a new instance of the DropTableOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The name of the table to be dropped. 
              An operation that represents reverting dropping the table. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table to be dropped.
            
        
        
            
            Gets an operation that represents reverting dropping the table.
            The inverse cannot be automatically calculated,
            if it was not supplied to the constructor this property will return null.
            
        
        
            
        
        
             
             Operation representing DML changes to the migrations history table.
             The migrations history table is used to store a log of the migrations that have been applied to the database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the HistoryOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              A sequence of command trees representing the operations being applied to the history table. 
              Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            A sequence of commands representing the operations being applied to the history table.
            
        
        
            
        
        
             
             Represents moving a table from one schema to another.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the MoveTableOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Name of the table to be moved. 
              Name of the schema to move the table to. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table to be moved.
            
        
        
            
            Gets the name of the schema to move the table to.
            
        
        
            
            Gets an operation that moves the table back to its original schema.
            
        
        
            
        
        
            
            Used when altering the migrations history table so that data can be moved to the new table.
            
            
            The context key for the model.
            
        
        
            
            Gets a value that indicates whether this is a system table.
            
            
            true if the table is a system table; otherwise, false.
            
        
        
            
            Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key.
            
            
            The create table operation for the migrations history table.
            
        
        
             
             Represents renaming an existing column.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the RenameColumnOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Name of the table the column belongs to. 
              Name of the column to be renamed. 
              New name for the column. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table the column belongs to.
            
        
        
            
            Gets the name of the column to be renamed.
            
        
        
            
            Gets the new name for the column.
            
        
        
            
            Gets an operation that reverts the rename.
            
        
        
            
        
        
             
             Represents renaming an existing table.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the RenameTableOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              Name of the table to be renamed. 
              New name for the table. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the name of the table to be renamed.
            
        
        
            
            Gets the new name for the table.
            
        
        
            
            Gets an operation that reverts the rename.
            
        
        
            
        
        
             
             Represents a provider specific SQL statement to be executed directly against the target database.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Initializes a new instance of the SqlOperation class.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
              The SQL to be executed. 
              Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. 
        
        
            
            Gets the SQL to be executed.
            
        
        
            
            Gets or sets a value indicating whether this statement should be performed outside of
            the transaction scope that is used to make the migration process transactional.
            If set to true, this operation will not be rolled back if the migration process fails.
            
        
        
            
        
        
            
            Common base class for providers that convert provider agnostic migration
            operations into database provider specific SQL commands.
            
        
        
            
            Converts a set of migration operations into database provider specific SQL.
            
             The operations to be converted. 
             Token representing the version of the database being targeted. 
             A list of SQL statements to be executed to perform the migration operations. 
        
        
            
            Generates the SQL body for a stored procedure.
            
            The command trees representing the commands for an insert, update or delete operation.
            The rows affected parameter name.
            The provider manifest token.
            The SQL body for the stored procedure.
        
        
             
             Represents a migration operation that has been translated into a SQL statement.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
             
             Gets or sets the SQL to be executed to perform this migration operation.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
        
        
            
            Gets or sets a value indicating whether this statement should be performed outside of
            the transaction scope that is used to make the migration process transactional.
            If set to true, this operation will not be rolled back if the migration process fails.
            
        
        
             
             Gets or sets the batch terminator for the database provider.
            
             Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources 
             (such as the end user of an application). If input is accepted from such sources it should be validated 
             before being passed to these APIs to protect against SQL injection attacks etc.
             
             
             The batch terminator for the database provider.
             
        
        
            
            Utility class to prep the user's config file to run in an AppDomain
            
        
        
            
            Updates a config file by adding binding redirects for EntityFramework.dll.
            This ensures that the user's code can be ran in an AppDomain and the exact
            same version of the assembly will be used for both domains.
            
             That path of the user's config file. Can also be null or a path to an non-existent file. 
             The path of the updated config file. It is the caller's responsibility to delete this. 
        
        
            
            Extension methods for .
            
        
        
            
            Returns an  implementation that stays in sync with the given
            .
            
             The element type. 
             The collection that the binding list will stay in sync with. 
             The binding list. 
        
        
            
            Represents data in a geodetic (round earth) coordinate system.
            
        
        
            
            Creates a new  value based on the specified well known binary value.
            
            
            A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)(
            
            ).
            
            A byte array that contains a well known binary representation of the geography value.
        
        
            
            Creates a new  value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  line value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  point value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  polygon value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            Returns the multiline value from a binary value.
            The multiline value from a binary value.
            The well-known binary value.
            The coordinate system identifier.
        
        
            Returns the multipoint value from a well-known binary value.
            The multipoint value from a well-known binary value.
            The well-known binary value.
            The coordinate system identifier.
        
        
            Returns the multi polygon value from a well-known binary value.
            The multi polygon value from a well-known binary value.
            The multi polygon well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value.
            
            
            A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a Geography Markup Language (GML) representation of the geography value.
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the GML value with the specified coordinate system identifier.
            A string that contains a Geography Markup Language (GML) representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  value based on the specified well known text value.
            
            
            A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well known text representation of the geography value.
        
        
            
            Creates a new  value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  line value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  point value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            
            Creates a new  polygon value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
            Returns the multiline value from a well-known text value.
            The multiline value from a well-known text value.
            The well-known text.
            The coordinate system identifier.
        
        
            Returns the multipoint value from a well-known text value.
            The multipoint value from a well-known text value.
            The well-known text value.
            The coordinate system identifier.
        
        
            Returns the multi polygon value from a well-known text value.
            The multi polygon value from a well-known text value.
            The multi polygon well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geography value.
            The identifier of the coordinate system that the new DbGeography value should use.
        
        
             Generates the well known text representation of this DbGeography value.  Includes only Longitude and Latitude for points. 
            A string containing the well known text representation of this DbGeography value.
        
        
            
            Generates the well known text representation of this DbGeography value.  Includes Longitude, Latitude, Elevation (Z) and Measure (M) for points.
            
             A string containing the well known text representation of this DbGeography value. 
        
        
             Generates the well known binary representation of this DbGeography value. 
            The well-known binary representation of this DbGeography value.
        
        
             Generates the Geography Markup Language (GML) representation of this DbGeography value. 
            A string containing the GML representation of this DbGeography value.
        
        
             Determines whether this DbGeography is spatially equal to the specified DbGeography argument. 
            true if other is spatially equal to this geography value; otherwise false.
            The geography value that should be compared with this geography value for equality.
        
        
             Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument. 
            true if other is disjoint from this geography value; otherwise false.
            The geography value that should be compared with this geography value for disjointness.
        
        
             Determines whether this DbGeography value spatially intersects the specified DbGeography argument. 
            true if other intersects this geography value; otherwise false.
            The geography value that should be compared with this geography value for intersection.
        
        
            Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value.
            A geography object that represents the union of all points
            The distance.
        
        
             Computes the distance between the closest points in this DbGeography value and another DbGeography value. 
            A double value that specifies the distance between the two closest points in this geography value and other.
            The geography value for which the distance from this value should be computed.
        
        
             Computes the intersection of this DbGeography value and another DbGeography value. 
            A new DbGeography value representing the intersection between this geography value and other.
            The geography value for which the intersection with this value should be computed.
        
        
             Computes the union of this DbGeography value and another DbGeography value. 
            A new DbGeography value representing the union between this geography value and other.
            The geography value for which the union with this value should be computed.
        
        
             Computes the difference of this DbGeography value and another DbGeography value. 
            A new DbGeography value representing the difference between this geography value and other.
            The geography value for which the difference with this value should be computed.
        
        
             Computes the symmetric difference of this DbGeography value and another DbGeography value. 
            A new DbGeography value representing the symmetric difference between this geography value and other.
            The geography value for which the symmetric difference with this value should be computed.
        
        
             Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns>
            An element of this DbGeography value from a specific position
            The index.
        
        
             Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns>
            An element of this DbGeography value from a specific position
            The index.
        
        
             Returns a string representation of the geography value. 
            A string representation of the geography value.
        
        
             Gets the default coordinate system id (SRID) for geography values (WGS 84) 
            The default coordinate system id (SRID) for geography values (WGS 84)
        
        
             Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it. 
            A representation of this DbGeography value.
        
        
            
            Gets the spatial provider that will be used for operations on this spatial type.
            
        
        
             Gets or sets a data contract serializable well known representation of this DbGeography value. 
            A data contract serializable well known representation of this DbGeography value.
        
        
            Gets the identifier associated with the coordinate system.
            The identifier associated with the coordinate system.
        
        
            
            Gets the dimension of the given  value or, if the value is a collections, the largest element dimension.
            
            
            The dimension of the given  value.
            
        
        
            Gets the spatial type name of the DBGeography.
            The spatial type name of the DBGeography.
        
        
            Gets a nullable Boolean value indicating whether this DbGeography value is empty.
            True if this DbGeography value is empty; otherwise, false.
        
        
             Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns>
            The number of elements in this DbGeography value.
        
        
             Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns>
            The Latitude coordinate of this DbGeography value.
        
        
             Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns>
            The Longitude coordinate of this DbGeography value.
        
        
             Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns>
            The elevation (Z coordinate) of this DbGeography value.
        
        
             Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns>
            The M (Measure) coordinate of this DbGeography value.
        
        
             Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve. 
            A nullable double value that indicates the length of this DbGeography value.
        
        
             Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. 
            A DbGeography value representing the start point of this value.
        
        
             Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve. 
            A DbGeography value representing the start point of this value.
        
        
             Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve. 
            True if this DbGeography value is closed; otherwise, false.
        
        
             Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns>
            The number of points in this DbGeography value.
        
        
             Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface. 
            A nullable double value that indicates the area of this DbGeography value.
        
        
            
            A data contract serializable representation of a  value.
            
        
        
             Gets or sets the coordinate system identifier (SRID) of this value. 
        
        
             Gets or sets the well known text representation of this value. 
        
        
             Gets or sets the well known binary representation of this value. 
        
        
            
            Represents geometric shapes.
            
        
        
            
            Creates a new  value based on the specified well known binary value.
            
            
            A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier (
            
            ).
            
            A byte array that contains a well known binary representation of the geometry value.
            wellKnownBinary
        
        
            
            Creates a new  value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            wellKnownBinary
            coordinateSystemId
        
        
            
            Creates a new  line value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            lineWellKnownBinary
            coordinateSystemId
        
        
            
            Creates a new  point value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            pointWellKnownBinary
            coordinateSystemId
        
        
            
            Creates a new  polygon value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            polygonWellKnownBinary
            coordinateSystemId
        
        
            Returns the multiline value from a binary value.
            The multiline value from a binary value.
            The well-known binary value.
            The coordinate system identifier.
        
        
            Returns the multipoint value from a well-known binary value.
            The multipoint value from a well-known binary value.
            The well-known binary value.
            The coordinate system identifier.
        
        
            Returns the multi polygon value from a well-known binary value.
            The multipoint value from a well-known text value.
            The multi polygon well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well known binary value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
            A byte array that contains a well known binary representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            geometryCollectionWellKnownBinary
            coordinateSystemId
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value.
            
            
            A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a Geography Markup Language (GML) representation of the geometry value.
            geometryMarkup
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the GML value with the specified coordinate system identifier.
            A string that contains a Geography Markup Language (GML) representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            geometryMarkup
            coordinateSystemId
        
        
            
            Creates a new  value based on the specified well known text value.
            
            
            A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well known text representation of the geometry value.
            wellKnownText
        
        
            
            Creates a new  value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            wellKnownText
            coordinateSystemId
        
        
            
            Creates a new  line value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            lineWellKnownText
            coordinateSystemId
        
        
            
            Creates a new  point value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            pointWellKnownText
            coordinateSystemId
        
        
            
            Creates a new  polygon value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            polygonWellKnownText
            coordinateSystemId
        
        
            Returns the multiline value from a well-known text value.
            The multiline value from a well-known text value.
            The well-known text.
            The coordinate system identifier.
        
        
            Returns the multipoint value from a well-known text value.
            The multipoint value from a well-known text value.
            The well-known text value.
            The coordinate system identifier.
        
        
            Returns the multi polygon value from a well-known binary value.
            The multi polygon value from a well-known binary value.
            The multi polygon well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well known text value and coordinate system identifier (SRID).
            
            A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
            A string that contains a well known text representation of the geometry value.
            The identifier of the coordinate system that the new DbGeometry value should use.
            geometryCollectionWellKnownText
            coordinateSystemId
        
        
             Generates the well known text representation of this DbGeometry value.  Includes only X and Y coordinates for points. 
            A string containing the well known text representation of this DbGeometry value.
        
        
            
            Generates the well known text representation of this DbGeometry value.  Includes X coordinate, Y coordinate, Elevation (Z) and Measure (M) for points.
            
             A string containing the well known text representation of this DbGeometry value. 
        
        
             Generates the well known binary representation of this DbGeometry value. 
            The well-known binary representation of this DbGeometry value.
        
        
             Generates the Geography Markup Language (GML) representation of this DbGeometry value. 
            A string containing the GML representation of this DbGeometry value.
        
        
             Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument. 
            true if other is spatially equal to this geometry value; otherwise false.
            The geometry value that should be compared with this geometry value for equality.
            other
        
        
             Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument. 
            true if other is disjoint from this geometry value; otherwise false.
            The geometry value that should be compared with this geometry value for disjointness.
            other
        
        
             Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument. 
            true if other intersects this geometry value; otherwise false.
            The geometry value that should be compared with this geometry value for intersection.
            other
        
        
             Determines whether this DbGeometry value spatially touches the specified DbGeometry argument. 
            true if other touches this geometry value; otherwise false.
            The geometry value that should be compared with this geometry value.
            other
        
        
             Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument. 
            true if other crosses this geometry value; otherwise false.
            The geometry value that should be compared with this geometry value.
            other
        
        
             Determines whether this DbGeometry value is spatially within the specified DbGeometry argument. 
            true if this geometry value is within other; otherwise false.
            The geometry value that should be compared with this geometry value for containment.
            other
        
        
             Determines whether this DbGeometry value spatially contains the specified DbGeometry argument. 
            true if this geometry value contains other; otherwise false.
            The geometry value that should be compared with this geometry value for containment.
            other
        
        
             Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument. 
            true if this geometry value overlaps other; otherwise false.
            The geometry value that should be compared with this geometry value for overlap.
            other
        
        
             Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern. 
            true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false.
            The geometry value that should be compared with this geometry value for relation.
            A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation.
            othermatrix
        
        
            Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value.
            A geometry object that represents the union of all points.
            The distance.
        
        
             Computes the distance between the closest points in this DbGeometry value and another DbGeometry value. 
            A double value that specifies the distance between the two closest points in this geometry value and other.
            The geometry value for which the distance from this value should be computed.
            other
        
        
             Computes the intersection of this DbGeometry value and another DbGeometry value. 
            A new DbGeometry value representing the intersection between this geometry value and other.
            The geometry value for which the intersection with this value should be computed.
            other
        
        
             Computes the union of this DbGeometry value and another DbGeometry value. 
            A new DbGeometry value representing the union between this geometry value and other.
            The geometry value for which the union with this value should be computed.
            other
        
        
             Computes the difference between this DbGeometry value and another DbGeometry value. 
            A new DbGeometry value representing the difference between this geometry value and other.
            The geometry value for which the difference with this value should be computed.
            other
        
        
             Computes the symmetric difference between this DbGeometry value and another DbGeometry value. 
            A new DbGeometry value representing the symmetric difference between this geometry value and other.
            The geometry value for which the symmetric difference with this value should be computed.
            other
        
        
             Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns>
            An element of this DbGeometry value from a specific position.
            The index.
        
        
             Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns>
            An element of this DbGeometry value from a specific position.
            The index.
        
        
             Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns>
            An interior ring from this DbGeometry value at a specific position.
            The index.
        
        
             Returns a string representation of the geometry value. 
            A string representation of the geometry value.
        
        
             Gets the default coordinate system id (SRID) for geometry values. 
            The default coordinate system id (SRID) for geometry values.
        
        
             Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it. 
            A representation of this DbGeometry value.
        
        
            
            Gets the spatial provider that will be used for operations on this spatial type.
            
        
        
             Gets or sets a data contract serializable well known representation of this DbGeometry value. 
            A data contract serializable well known representation of this DbGeometry value.
        
        
            Gets the coordinate system identifier of the DbGeometry object.
            The coordinate system identifier of the DbGeometry object.
        
        
            Gets the boundary of the DbGeometry objects.
            The boundary of the DbGeometry objects.
        
        
            
            Gets the dimension of the given  value or, if the value is a collection, the dimension of its largest element.
            
            
            The dimension of the given  value.
            
        
        
             Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value. 
            The envelope (minimum bounding box) of this DbGeometry value.
        
        
            Gets a spatial type name representation of this DbGeometry value.
            A spatial type name representation of this DbGeometry value.
        
        
            Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve.
            True if this DbGeometry value is empty; otherwise, false.
        
        
            Gets a nullable Boolean value indicating whether this DbGeometry value is simple.
            True if this DbGeometry value is simple; otherwise, false.
        
        
            Gets a nullable Boolean value indicating whether this DbGeometry value is valid.
            True if this DbGeometry value is valid; otherwise, false.
        
        
             Gets the convex hull of this DbGeometry value as another DbGeometry value. 
            The convex hull of this DbGeometry value as another DbGeometry value.
        
        
             Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns>
            The number of elements in this DbGeometry value.
        
        
             Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns>
            The X coordinate of this DbGeometry value.
        
        
             Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns>
            The Y coordinate of this DbGeometry value.
        
        
             Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns>
            The elevation (Z coordinate) of this DbGeometry value.
        
        
             Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns>
            The Measure (M coordinate) of this DbGeometry value.
        
        
             Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve. 
            The length of this DbGeometry value.
        
        
             Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. 
            A DbGeometry value representing the start point of this value.
        
        
             Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve. 
            A DbGeometry value representing the start point of this value.
        
        
             Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve. 
            True if this DbGeometry value is closed; otherwise, false.
        
        
             Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve. 
            True if this DbGeometry value is a ring; otherwise, false.
        
        
             Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns>
            The number of points in this DbGeometry value.
        
        
             Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface. 
            A nullable double value that indicates the area of this DbGeometry value.
        
        
             Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface. 
            The DbGeometry value that represents the centroid of this DbGeometry value.
        
        
             Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface. 
            A point on the surface of this DbGeometry value.
        
        
             Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon. 
            The DbGeometry value that represents the exterior ring of this DbGeometry value.
        
        
             Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns>
            The number of interior rings in this DbGeometry value.
        
        
            
            A data contract serializable representation of a  value.
            
        
        
             Gets or sets the coordinate system identifier (SRID) of this value. 
        
        
             Gets or sets the well known text representation of this value. 
        
        
             Gets or sets the well known binary representation of this value. 
        
        
            
            A provider-independent service API for geospatial (Geometry/Geography) type support.
            
        
        
            
            When implemented in derived types, reads an instance of  from the column at the specified column ordinal.
            
            The instance of DbGeography at the specified column value
            The ordinal of the column that contains the geography value
        
        
            
            When implemented in derived types, reads an instance of  from the column at the specified column ordinal.
            
            The instance of DbGeometry at the specified column value
            The ordinal of the data record column that contains the provider-specific geometry data
        
        
            
            Returns whether the column at the specified column ordinal is of geography type
            
            
            true if the column at the specified column ordinal is of geography type;
            false otherwise.
            
        
        
            
            Returns whether the column at the specified column ordinal is of geometry type
            
            
            true if the column at the specified column ordinal is of geometry type;
            false otherwise.
            
        
        
            
            A provider-independent service API for geospatial (Geometry/Geography) type support.
            
        
        
            
            This method is intended for use by derived implementations of
            
            after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation.
            
            
            A new  instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation.
            
            
            The spatial services instance that the returned  value will depend on for its implementation of spatial functionality.
            
            The provider value.
        
        
            
            Creates a new  value based on a provider-specific value that is compatible with this spatial services implementation.
            
            
            A new  value backed by this spatial services implementation and the specified provider value.
            
            A provider-specific value that this spatial services implementation is capable of interpreting as a geography value.
             A new DbGeography value backed by this spatial services implementation and the specified provider value. 
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known
            
            representation.
            
            A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation.
            
            An instance of  that contains the well-known representation of a geography value.
            
        
        
            
            Creates an instance of  that represents the specified
            
            value using one or both of the standard well-known spatial formats.
            
            
            The well-known representation of geographyValue, as a new
            
            .
            
            The geography value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a new  value based on the specified well-known binary value.
            
            
            A new  value as defined by the well-known binary value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.        
        
        
            
            Creates a new  value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  line value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  point value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  polygon value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  multiline value based on the specified well-known binary value and coordinate system identifier.
            
            
            The new  multiline value.
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  multipoint value based on the specified well-known binary value and coordinate system identifier.
            
            
            A new  multipoint value.
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  multi polygon value based on the specified well-known binary value and coordinate system identifier.
            
            
            A new  multi polygon value.
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  value based on the specified well-known text value.
            
            
            A new  value as defined by the well-known text value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
        
        
            
            Creates a new  value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  line value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  point value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  polygon value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  multiline value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multiline value.
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  multipoint value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multipoint value.
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  multi polygon value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multi polygon value.
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value.
            
            
            A new  value as defined by the GML value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a Geometry Markup Language (GML) representation of the geography value.
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the GML value with the specified coordinate system identifier (SRID).
            
            A string that contains a Geometry Markup Language (GML) representation of the geography value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Returns the coordinate system identifier of the given  value.
            
            
            The coordinate system identifier of the given  value.
            
            The geography value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the dimension of the given  value or, if the value is a collections, the largest element dimension.
            
            
            The dimension of geographyValue, or the largest element dimension if
            
            is a collection.
            
            The geography value for which the dimension value should be retrieved.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a value that indicates the spatial type name of the given
            
            value.
            
            
            The spatial type name of the given  value.
            
            The geography value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is empty.
            
            
            True if the given  value is empty; otherwise, false.
            
            The geography value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the well-known text representation of the given  value. This value should include only the Longitude and Latitude of points.
            
            A string containing the well-known text representation of geographyValue.
            The geography value for which the well-known text should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a text representation of  with elevation and measure.
            
            
            A text representation of .
            
            The geography value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the well-known binary representation of the given  value.
            
            
            The well-known binary representation of the given  value.
            
            The geography value for which the well-known binary should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Generates the Geography Markup Language (GML) representation of this
            
            value.
            
            A string containing the GML representation of this DbGeography value.
            The geography value for which the GML should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values are spatially equal.
            
            true if geographyValue is spatially equal to otherGeography; otherwise false.
            The first geography value to compare for equality.
            The second geography value to compare for equality.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values are spatially disjoint.
            
            true if geographyValue is disjoint from otherGeography; otherwise false.
            The first geography value to compare for disjointness.
            The second geography value to compare for disjointness.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values spatially intersect.
            
            true if geographyValue intersects otherGeography; otherwise false.
            The first geography value to compare for intersection.
            The second geography value to compare for intersection.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a geography value representing all points less than or equal to distance from the given
            
            value.
            
            A new DbGeography value representing all points less than or equal to distance from geographyValue.
            The geography value.
            A double value specifying how far from geographyValue to buffer.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the distance between the closest points in two  values.
            
            A double value that specifies the distance between the two closest points in geographyValue and otherGeography.
            The first geography value.
            The second geography value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the intersection of two  values.
            
            
            A new  value representing the intersection of geographyValue and otherGeography.
            
            The first geography value.
            The second geography value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the union of two  values.
            
            
            A new  value representing the union of geographyValue and otherGeography.
            
            The first geography value.
            The second geography value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the difference of two  values.
            
            A new DbGeography value representing the difference of geographyValue and otherGeography.
            The first geography value.
            The second geography value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the symmetric difference of two  values.
            
            
            A new  value representing the symmetric difference of geographyValue and otherGeography.
            
            The first geography value.
            The second geography value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the number of elements in the given  value, if it represents a geography collection.
            
            The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null.
            The geography value, which need not represent a geography collection.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns an element of the given  value, if it represents a geography collection.
            
            The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null.
            The geography value, which need not represent a geography collection.
            The position within the geography value from which the element should be taken.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the Latitude coordinate of the given  value, if it represents a point.
            
            
            The Latitude coordinate of the given  value.
            
            The geography value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the Longitude coordinate of the given  value, if it represents a point.
            
            
            The Longitude coordinate of the given  value.
            
            The geography value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the elevation (Z coordinate) of the given  value, if it represents a point.
            
            The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null.
            The geography value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the M (Measure) coordinate of the given  value, if it represents a point.
            
            
            The M (Measure) coordinate of the given  value.
            
            The geography value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the length of the given
            
            value, which may be null if the value does not represent a curve.
            
            
            The length of the given  value.
            
            The geography value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve.
            
            
            The start point of the given  value.
            
            The geography value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve.
            
            The end point of geographyValue, if it represents a curve; otherwise null.
            The geography value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is closed, which may be null if the value does not represent a curve.
            
            
            True if the given  value is closed; otherwise, false.
            
            The geography value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the number of points in the given  value, if it represents a linestring or linear ring.
            
            
            The number of points in the given  value.
            
            The geography value, which need not represent a linestring or linear ring.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a point element of the given  value, if it represents a linestring or linear ring.
            
            The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null.
            The geography value, which need not represent a linestring or linear ring.
            The position within the geography value from which the element should be taken.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the area of the given
            
            value, which may be null if the value does not represent a surface.
            
            
            A nullable double value that indicates the area of the given  value.
            
            The geography value, which need not represent a surface.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            This method is intended for use by derived implementations of
            
            after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation.
            
            
            A new  instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation.
            
            
            The spatial services instance that the returned  value will depend on for its implementation of spatial functionality.
            
            A provider value.
        
        
            
            Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known
            
            representation.
            
            A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation.
            
            An instance of  that contains the well-known representation of a geometry value.
                    
        
        
            
            Creates an instance of  that represents the specified
            
            value using one or both of the standard well-known spatial formats.
            
            
            The well-known representation of geometryValue, as a new
            
            .
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a new  value based on a provider-specific value that is compatible with this spatial services implementation.
            
            
            A new  value backed by this spatial services implementation and the specified provider value.
            
            A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a new  value based on the specified well-known binary value.
            
            
            A new  value as defined by the well-known binary value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
        
        
            
            Creates a new  value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  line value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  point value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  polygon value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  multiline value based on the specified well-known binary value and coordinate system identifier.
            
            
            The new  multiline value
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  multipoint value based on the specified well-known binary value and coordinate system identifier.
            
            
            A new  multipoint value.
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  multi polygon value based on the specified well-known binary value and coordinate system identifier.
            
            
            A new  multi polygon value.
            
            The well-known binary value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well-known binary value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A byte array that contains a well-known binary representation of the geometry value.
            
            The identifier of the coordinate system that the new value should use.
            
        
        
            
            Creates a new  value based on the specified well-known text value.
            
            
            A new  value as defined by the well-known text value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
        
        
            
            Creates a new  value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  line value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  point value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  polygon value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  multiline value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multiline value
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  multipoint value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multipoint value.
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  multi polygon value based on the specified well-known text value and coordinate system identifier.
            
            
            A new  multi polygon value.
            
            The well-known text value.
            The coordinate system identifier.
        
        
            
            Creates a new  collection value based on the specified well-known text value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a well-known text representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value.
            
            
            A new  value as defined by the GML value with the default
            
            coordinate system identifier (SRID) (
            
            ).
            
            A string that contains a Geography Markup Language (GML) representation of the geometry value.
        
        
            
            Creates a new  value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
            
            
            A new  value as defined by the GML value with the specified coordinate system identifier (SRID).
            
            A string that contains a Geography Markup Language (GML) representation of the geometry value.
            
            The identifier of the coordinate system that the new  value should use.
            
        
        
            
            Returns the coordinate system identifier of the given  value.
            
            
            The coordinate system identifier of the given  value.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the boundary of the given
            
            value.
            
            
            The boundary of the given  value.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the dimension of the given  value or, if the value is a collections, the largest element dimension.
            
            
            The dimension of geometryValue, or the largest element dimension if
            
            is a collection.
            
            The geometry value for which the dimension value should be retrieved.
        
        
            
            Gets the envelope (minimum bounding box) of the given  value, as a geometry value.
            
            
            The envelope of geometryValue, as a  value.
            
            The geometry value for which the envelope value should be retrieved.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a value that indicates the spatial type name of the given
            
            value.
            
            
            The spatial type name of the given  value.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is empty.
            
            
            True if the given  value is empty; otherwise, false.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is simple.
            
            
            True if the given  value is simple; otherwise, false.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is valid.
            
            
            True if the given  value is valid; otherwise, false.
            
            The geometry value.        
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the well-known text representation of the given  value, including only X and Y coordinates for points.
            
            A string containing the well-known text representation of geometryValue.
            The geometry value for which the well-known text should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a text representation of  with elevation and measure.
            
            
            A text representation of  with elevation and measure.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the well-known binary representation of the given  value.
            
            
            The well-known binary representation of the given  value.
            
            The geometry value for which the well-known binary should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Generates the Geography Markup Language (GML) representation of this
            
            value.
            
            A string containing the GML representation of this DbGeometry value.
            The geometry value for which the GML should be generated.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values are spatially equal.
            
            true if geometryValue is spatially equal to otherGeometry; otherwise false.
            The first geometry value to compare for equality.
            The second geometry value to compare for equality.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values are spatially disjoint.
            
            true if geometryValue is disjoint from otherGeometry; otherwise false.
            The first geometry value to compare for disjointness.
            The second geometry value to compare for disjointness.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values spatially intersect.
            
            true if geometryValue intersects otherGeometry; otherwise false.
            The first geometry value to compare for intersection.
            The second geometry value to compare for intersection.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values spatially touch.
            
            true if geometryValue touches otherGeometry; otherwise false.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values spatially cross.
            
            true if geometryValue crosses otherGeometry; otherwise false.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether one  value is spatially within the other.
            
            true if geometryValue is within otherGeometry; otherwise false.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether one  value spatially contains the other.
            
            true if geometryValue contains otherGeometry; otherwise false.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values spatially overlap.
            
            true if geometryValue overlaps otherGeometry; otherwise false.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Determines whether the two given  values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern.
            
            true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false.
            The first geometry value.
            The geometry value that should be compared with the first geometry value for relation.
            A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation.
            
            
            ,
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Creates a geometry value representing all points less than or equal to distance from the given
            
            value.
            
            A new DbGeometry value representing all points less than or equal to distance from geometryValue.
            The geometry value.
            A double value specifying how far from geometryValue to buffer.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the distance between the closest points in two  values.
            
            A double value that specifies the distance between the two closest points in geometryValue and otherGeometry.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the convex hull of the given
            
            value.
            
            
            The convex hull of the given  value.
            
            The geometry value.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the intersection of two  values.
            
            
            A new  value representing the intersection of geometryValue and otherGeometry.
            
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the union of two  values.
            
            
            A new  value representing the union of geometryValue and otherGeometry.
            
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the difference between two  values.
            
            A new DbGeometry value representing the difference between geometryValue and otherGeometry.
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Computes the symmetric difference between two  values.
            
            
            A new  value representing the symmetric difference between geometryValue and otherGeometry.
            
            The first geometry value.
            The second geometry value.
            
            
            or
            
            is null.
            
            
            
            or
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the number of elements in the given  value, if it represents a geometry collection.
            
            The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null.
            The geometry value, which need not represent a geometry collection.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns an element of the given  value, if it represents a geometry collection.
            
            The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null.
            The geometry value, which need not represent a geometry collection.
            The position within the geometry value from which the element should be taken.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the X coordinate of the given  value, if it represents a point.
            
            
            The X coordinate of the given  value.
            
            The geometry value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the Y coordinate of the given  value, if it represents a point.
            
            
            The Y coordinate of the given  value.
            
            The geometry value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the elevation (Z) of the given  value, if it represents a point.
            
            The elevation (Z) of geometryValue, if it represents a point; otherwise null.
            The geometry value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the M (Measure) coordinate of the given  value, if it represents a point.
            
            
            The M (Measure) coordinate of the given  value.
            
            The geometry value, which need not represent a point.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the length of the given
            
            value, which may be null if the value does not represent a curve.
            
            
            The length of the given  value.
            
            The geometry value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve.
            
            
            The start point of the given  value.
            
            The geometry value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve.
            
            The end point of geometryValue, if it represents a curve; otherwise null.
            The geometry value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is closed, which may be null if the value does not represent a curve.
            
            
            True if the given  value is closed; otherwise, false.
            
            The geometry value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable Boolean value that whether the given  value is a ring, which may be null if the value does not represent a curve.
            
            
            True if the given  value is a ring; otherwise, false.
            
            The geometry value, which need not represent a curve.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the number of points in the given  value, if it represents a linestring or linear ring.
            
            
            The number of points in the given  value.
            
            The geometry value, which need not represent a linestring or linear ring.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a point element of the given  value, if it represents a linestring or linear ring.
            
            The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null.
            The geometry value, which need not represent a linestring or linear ring.
            The position within the geometry value from which the element should be taken.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a nullable double value that indicates the area of the given
            
            value, which may be null if the value does not represent a surface.
            
            
            A nullable double value that indicates the area of the given  value.
            
            The geometry value, which need not represent a surface.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface.
            
            The centroid of geometryValue, if it represents a surface; otherwise null.
            The geometry value, which need not represent a surface.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface.
            
            
            A  value that represents a point on the surface of the given DbGeometry value.
            
            The geometry value, which need not represent a surface.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns a  value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon.
            
            A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null.
            The geometry value, which need not represent a polygon.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns the number of interior rings in the given  value, if it represents a polygon.
            
            The number of elements in geometryValue, if it represents a polygon; otherwise null.
            The geometry value, which need not represent a polygon.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Returns an interior ring from the given  value, if it represents a polygon.
            
            The interior ring in geometryValue at position index, if it represents a polygon; otherwise null.
            The geometry value, which need not represent a polygon.
            The position within the geometry value from which the element should be taken.
            
            
            is null.
            
            
            
            is not compatible with this spatial services implementation.
            
        
        
            
            Gets the default services for the .
            
            The default services.
        
        
            
            Override this property to allow the spatial provider to fail fast when native types or other
            resources needed for the spatial provider to function correctly are not available.
            The default value is true which means that EF will continue with the assumption
            that the provider has the necessary types/resources rather than failing fast.
            
        
        
            
            The same as  but works in partial trust and adds explicit caching of
            generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure
            we indent the next line properly.
            
        
        
            
            Specifies the default tab string. This field is constant.
            
        
        
            
            Specifies the culture what will be used by the underlying TextWriter. This static property is read-only.
            Note that any writer passed to one of the constructors of  must use this
            same culture. The culture is .
            
        
        
            
            Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string.
            Note that the writer passed to this constructor must use the  specified by the
             property.
            
            
            The  to use for output.
            
        
        
            
            Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string.
            Note that the writer passed to this constructor must use the  specified by the
             property.
            
            
            The  to use for output.
            
             The tab string to use for indentation. 
        
        
            
            Closes the document being written to.
            
        
        
            
            Flushes the stream.
            
        
        
            
            Outputs the tab string once for each level of indentation according to the
            
            property.
            
        
        
            
            Builds a string representing the current indentation level for a new line.
            
            
            Does NOT check if tabs are currently pending, just returns a string that would be
            useful in replacing embedded newline characters.
            
            An empty string, or a string that contains .Indent level's worth of specified tab-string.
        
        
            
            Writes the specified string to the text stream.
            
             The string to write. 
        
        
            
            Writes the text representation of a Boolean value to the text stream.
            
             The Boolean value to write. 
        
        
            
            Writes a character to the text stream.
            
             The character to write. 
        
        
            
            Writes a character array to the text stream.
            
             The character array to write. 
        
        
            
            Writes a subarray of characters to the text stream.
            
             The character array to write data from. 
             Starting index in the buffer. 
             The number of characters to write. 
        
        
            
            Writes the text representation of a Double to the text stream.
            
             The double to write. 
        
        
            
            Writes the text representation of a Single to the text stream.
            
             The single to write. 
        
        
            
            Writes the text representation of an integer to the text stream.
            
             The integer to write. 
        
        
            
            Writes the text representation of an 8-byte integer to the text stream.
            
             The 8-byte integer to write. 
        
        
            
            Writes the text representation of an object to the text stream.
            
             The object to write. 
        
        
            
            Writes out a formatted string, using the same semantics as specified.
            
             The formatting string. 
             The object to write into the formatted string. 
        
        
            
            Writes out a formatted string, using the same semantics as specified.
            
             The formatting string to use. 
             The first object to write into the formatted string. 
             The second object to write into the formatted string. 
        
        
            
            Writes out a formatted string, using the same semantics as specified.
            
             The formatting string to use. 
             The argument array to output. 
        
        
            
            Writes the specified string to a line without tabs.
            
             The string to write. 
        
        
            
            Writes the specified string, followed by a line terminator, to the text stream.
            
             The string to write. 
        
        
            
            Writes a line terminator.
            
        
        
            
            Writes the text representation of a Boolean, followed by a line terminator, to the text stream.
            
             The Boolean to write. 
        
        
            
            Writes a character, followed by a line terminator, to the text stream.
            
             The character to write. 
        
        
            
            Writes a character array, followed by a line terminator, to the text stream.
            
             The character array to write. 
        
        
            
            Writes a subarray of characters, followed by a line terminator, to the text stream.
            
             The character array to write data from. 
             Starting index in the buffer. 
             The number of characters to write. 
        
        
            
            Writes the text representation of a Double, followed by a line terminator, to the text stream.
            
             The double to write. 
        
        
            
            Writes the text representation of a Single, followed by a line terminator, to the text stream.
            
             The single to write. 
        
        
            
            Writes the text representation of an integer, followed by a line terminator, to the text stream.
            
             The integer to write. 
        
        
            
            Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream.
            
             The 8-byte integer to write. 
        
        
            
            Writes the text representation of an object, followed by a line terminator, to the text stream.
            
             The object to write. 
        
        
            
            Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
            
             The formatting string. 
             The object to write into the formatted string. 
        
        
            
            Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
            
             The formatting string to use. 
             The first object to write into the formatted string. 
             The second object to write into the formatted string. 
        
        
            
            Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
            
             The formatting string to use. 
             The argument array to output. 
        
        
            
            Writes the text representation of a UInt32, followed by a line terminator, to the text stream.
            
             A UInt32 to output. 
        
        
            
            Gets the encoding for the text writer to use.
            
            
            An  that indicates the encoding for the text writer to use.
            
        
        
            
            Gets or sets the new line character to use.
            
             The new line character to use. 
        
        
            
            Gets or sets the number of spaces to indent.
            
             The number of spaces to indent. 
        
        
            
            Gets the  to use.
            
            
            The  to use.
            
        
        
            
            Used for generating  values that are always in sequential
            order for the calling thread.
            
        
        
            
            Returns the value of  unless this value would be the same as the
            last value returned by this thread calling this method, in which case the thread pushes the value
            a little bit into the future. The comparison is in terms of the form used to store migration ID
            in the database--i.e. to the 1/10 second.
            
            
            There should never be any pushing to the future involved for normal use of migrations, but when
            this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs
            there may be occasional sleeping.
            
        
        
            
            Same as UtcNow method bur returns the time in the timestamp format used in migration IDs.
            
        
        
            
            Convention to apply column ordering specified via
            
            or the  API. This convention throws if a duplicate configured column order
            is detected.
            
        
        
            
            Convention to apply column ordering specified via
            
            or the  API.
            
        
        
            
        
        
            
            Validates the ordering configuration supplied for columns.
            This base implementation is a no-op.
            
            The name of the table that the columns belong to.
            The definition of the table.
        
        
            
            Validates the ordering configuration supplied for columns to ensure 
            that the same ordinal was not supplied for two columns.
            
            The name of the table that the columns belong to.
            The definition of the table.
        
        
            
            Strongly-typed and parameterized string resources.
            
        
        
            
            A string like "Applying automatic migration: {0}."
            
        
        
            
            A string like "Reverting automatic migration: {0}."
            
        
        
            
            A string like "Applying explicit migration: {0}."
            
        
        
            
            A string like "Reverting explicit migration: {0}."
            
        
        
            
            A string like "Applying explicit migrations: [{1}]."
            
        
        
            
            A string like "Reverting migrations: [{1}]."
            
        
        
            
            A string like "Target database is already at version {0}."
            
        
        
            
            A string like "Target database is: {0}."
            
        
        
            
            A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})"
            
        
        
            
            A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id."
            
        
        
            
            A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key."
            
        
        
            
            A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp."
            
        
        
            
            A string like "'{0}' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them."
            
        
        
            
            A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory."
            
        
        
            
            A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead."
            
        
        
            
            A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'."
            
        
        
            
            A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use."
            
        
        
            
            A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)."
            
        
        
            
            A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use."
            
        
        
            
            A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added."
            
        
        
        
            
            A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators."
            
        
        
            
            A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)"
            
        
        
            
            A string like "The argument '{0}' cannot be null, empty or contain only white space."
            
        
        
            
            A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type."
            
        
        
            
            A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type."
            
        
        
            
            A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
            
        
        
            
            A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
            
        
        
            
            A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property."
            
        
        
            
            A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property."
            
        
        
            
            A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'."
            
        
        
            
            A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty'  VB.Net: 'Function(t) t.MyProperty.MyProperty'."
            
        
        
            
            A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}'  VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'."
            
        
        
            
            A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}'  VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'."
            
        
        
        
            
            A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}"
            
        
        
            
            A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}"
            
        
        
            
            A string like "{0} = {1} conflicts with {2} = {3}"
            
        
        
            
            A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive or generic, and does not inherit from ComplexObject."
            
        
        
            
            A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive or generic, and does not inherit from EntityObject."
            
        
        
            
            A string like "The type '{0}' and the type '{1}' both have the same simple name of '{2}' and so cannot be used in the same model. All types in a given model must have unique simple names. Use 'NotMappedAttribute' or call Ignore in the Code First fluent API to explicitly exclude a property or type from the model."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys."
            
        
        
            
            A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities."
            
        
        
            
            A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys."
            
        
        
            
            A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty."
            
        
        
            
            A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names."
            
        
        
            
            A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name."
            
        
        
            
            A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API."
            
        
        
            
            A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property."
            
        
        
            
            A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property."
            
        
        
            
            A string like "{0}: {1}: {2}"
            
        
        
            
            A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'."
            
        
        
            
            A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call."
            
        
        
            
            A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name."
            
        
        
            
            A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax."
            
        
        
            
            A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation."
            
        
        
            
            A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string."
            
        
        
            
            A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set."
            
        
        
            
            A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model."
            
        
        
            
            A string like "Unable to determine the provider name for provider factory of type '{0}'. Make sure that the ADO.NET provider is installed or registered in the application config."
            
        
        
            
            A string like "Unable to determine the DbProviderFactory type for connection of type '{0}'. Make sure that the ADO.NET provider is installed or registered in the application config."
            
        
        
        
            
            A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method."
            
        
        
            
            A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once."
            
        
        
            
            A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once."
            
        
        
            
            A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used."
            
        
        
            
            A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them."
            
        
        
            
            A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type."
            
        
        
            
            A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types."
            
        
        
            
            A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified."
            
        
        
            
            A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns."
            
        
        
            
            A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations."
            
        
        
            
            A string like "The abstract type '{0}' has no mapped descendants and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. "
            
        
        
            
            A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. "
            
        
        
            
            A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct."
            
        
        
            
            A string like "Both property '{0}' on type '{1}' and property '{2}' on type '{3}' map to column '{4}' on table '{5}' but the configuration of the column for property '{1}.{0}' is incompatible with the configuration of the column for property '{3}.{2}'. The column type and configuration must be the same for all properties that map to a given column in a TPH table. {6}"
            
        
        
            
            A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct."
            
        
        
            
            A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties."
            
        
        
            
            A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation."
            
        
        
            
            A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor."
            
        
        
            
            A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor."
            
        
        
        
            
            A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state."
            
        
        
            
            A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model."
            
        
        
        
            
            A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed."
            
        
        
            
            A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created."
            
        
        
        
        
            
            A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property."
            
        
        
            
            A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property.""
            
        
        
            
            A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties.""
            
        
        
            
            A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'."
            
        
        
            
            A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead."
            
        
        
            
            A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'."
            
        
        
            
            A string like "The expression passed to method {0} must represent a property defined on the type '{1}'."
            
        
        
            
            A string like "{0} cannot be used for entities in the {1} state."
            
        
        
            
            A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'."
            
        
        
            
            A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property."
            
        
        
            
            A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'."
            
        
        
            
            A string like "The '{0}' property does not exist or is not mapped for the type '{1}'."
            
        
        
            
            A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'."
            
        
        
            
            A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'."
            
        
        
            
            A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties."
            
        
        
            
            A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties."
            
        
        
            
            A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null."
            
        
        
            
            A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null."
            
        
        
            
            A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)."
            
        
        
            
            A string like "Migrations is enabled for context '{0}' but the database does not exist or contains no mapped tables. Use Migrations to create the database and its tables, for example by running the 'Update-Database' command from the Package Manager Console."
            
        
        
            
            A string like "Database '{0}' cannot be created because it already exists."
            
        
        
        
        
            
            A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details."
            
        
        
            
            A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once."
            
        
        
            
            A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details."
            
        
        
            
            A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute.""
            
        
        
            
            A string like "The entity found was of type {0} when an entity of type {1} was requested."
            
        
        
            
            A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types."
            
        
        
            
            A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute."
            
        
        
            
            A string like "The entity type {0} is not part of the model for the current context."
            
        
        
            
            A string like "No connection string named '{0}' could be found in the application config file."
            
        
        
            
            A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor."
            
        
        
            
            A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'."
            
        
        
            
            A string like "The context type '{0}' must have a public constructor taking an EntityConnection."
            
        
        
            
            A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details."
            
        
        
            
            A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details."
            
        
        
            
            A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file."
            
        
        
            
            A string like "The context factory type '{0}' must have a public default constructor."
            
        
        
            
            A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name."
            
        
        
            
            A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet."
            
        
        
            
            A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer."
            
        
        
            
            A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types."
            
        
        
            
            A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined."
            
        
        
            
            A string like "The end name  '{0}' is already defined."
            
        
        
            
            A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element."
            
        
        
            
            A string like "Property '{0}' has a CollectionKind specified but is not a collection property."
            
        
        
            
            A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models."
            
        
        
            
            A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models."
            
        
        
            
            A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models."
            
        
        
            
            A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable."
            
        
        
            
            A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType."
            
        
        
            
            A string like "Key usage is not valid. The {0} class  cannot define keys because one of its base classes ('{1}') defines keys."
            
        
        
            
            A string like "EntityType '{0}' has no key defined. Define the key for this EntityType."
            
        
        
            
            A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'."
            
        
        
            
            A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'."
            
        
        
            
            A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined."
            
        
        
            
            A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'."
            
        
        
            
            A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one  of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'."
            
        
        
            
            A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'."
            
        
        
            
            A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'."
            
        
        
            
            A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'."
            
        
        
            
            A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'."
            
        
        
            
            A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls."
            
        
        
            
            A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType."
            
        
        
            
            A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined."
            
        
        
            
            A string like "Each type name in a schema must be unique. Type name '{0}' is already defined."
            
        
        
            
            A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type."
            
        
        
            
            A string like "Each property name in a type must be unique. Property name '{0}' is already defined."
            
        
        
            
            A string like "A cycle was detected in the type hierarchy of '{0}'."
            
        
        
            
            A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType."
            
        
        
            
            A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType."
            
        
        
            
            A string like "The specified name must not be longer than 480 characters: '{0}'."
            
        
        
            
            A string like "The specified name is not allowed: '{0}'."
            
        
        
            
            A string like "'{0}' is not valid data space for EdmModel. EdmModel supports only DataSpace.CSpace and DataSpace.SSpace."
            
        
        
            
            A string like "The field {0} must be a string or array type with a maximum length of '{1}'."
            
        
        
            
            A string like "The field {0} must be a string or array type with a minimum length of '{1}'."
            
        
        
            
            A string like "No connection string named '{0}' could be found in the application config file."
            
        
        
            
            A string like "The EntitySet '{0}' obtained from the metadata workspace is incompatible with the EntitySet required by this EntityKey."
            
        
        
            
            A string like "The provided list of key-value pairs contains an incorrect number of entries. There are {1} key fields defined on type '{0}', but {2} were provided."
            
        
        
            
            A string like "The type of the key field '{0}' is expected to be '{1}', but the value provided is actually of type '{2}'."
            
        
        
            
            A string like "No corresponding object layer type found for the key field '{0}' whose type in the conceptual layer is '{1}'."
            
        
        
            
            A string like "The required entry '{0}' was not found in the provided input. This entry is required by the key fields defined on type '{1}'."
            
        
        
            
            A string like "The requested operation could not be completed, because a mismatched EntityKey was returned from the EntityKey property on an object of type '{0}'."
            
        
        
            
            A string like "The name '{0}' contains characters that are not valid."
            
        
        
            
            A string like "The key field '{0}' cannot have a value of null. A non-null value is required for the key fields defined on type '{1}'."
            
        
        
            
            A string like "The function or function import '{0}' is not composable. A non-composable function or function import cannot be called in a query expression."
            
        
        
            
            A string like "Some required information is missing from the connection string. The '{0}' keyword is always required."
            
        
        
            
            A string like "The '{0}' keyword is not supported."
            
        
        
            
            A string like "Parameters must have a unique ParameterName. A second instance of '{0}' was discovered."
            
        
        
            
            A string like "The connection string of the named connection '{0}' cannot contain a 'Name' keyword in the configuration."
            
        
        
            
            A string like "The ADO.NET provider with invariant name '{0}' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details."
            
        
        
            
            A string like "Execution of the command requires an open and available connection. The connection's current state is {0}."
            
        
        
            
            A string like "The store data provider failed to return information for the {0} request. See the inner exception for details."
            
        
        
            
            A string like "The parameter name '{0}' is not valid. A valid parameter name must begin with a letter and contain only letters, numbers, and underscores."
            
        
        
            
            A string like "A null was returned after calling the '{0}' method on a store provider instance of type '{1}'. The store provider might not be functioning correctly."
            
        
        
            
            A string like "The parameter '{0}' is not an input-only parameter. The EntityClient provider only allows input-only parameters when the CommandType property is set to CommandText."
            
        
        
            
            A string like "The EntityParameter '{0}' must have a value from which the DbType can be inferred, or a supported DbType must be set as the value of the EntityParameter.DbType property."
            
        
        
            
            A string like "The DbType '{0}' is not valid for the EntityParameter.DbType property on the '{1}' object."
            
        
        
            
            A string like "The declared type of navigation property {0}.{1} is not compatible with the result of the specified navigation. "
            
        
        
            
            A string like "The underlying provider failed on {0}."
            
        
        
            
            A string like "The container '{0}' specified for the FunctionImport could not be found in the current workspace."
            
        
        
            
            A string like "The FunctionImport '{1}' could not be found in the container '{0}'."
            
        
        
            
            A string like "The function import '{0}' is composable. Only non-composable function imports can be executed as stored procedures."
            
        
        
            
            A string like "The function import '{0}' cannot be executed because it is not mapped to a store function."
            
        
        
            
            A string like "MetadataWorkspace must have {0} pre-registered."
            
        
        
            
            A string like "The DbConnection parameter '{0}' contains no ProviderFactory."
            
        
        
            
            A string like "The EdmType '{0}' is not a scalar type."
            
        
        
            
            A string like "The EdmType '{0}' is not consistent with the DbType provided for parameter '{1}'."
            
        
        
            
            A string like "The LINQ expression node type '{0}' is not supported in LINQ to Entities."
            
        
        
            
            A string like "The ObjectContext parameter ('{0}') in a compiled query can only be used as the source for queries."
            
        
        
            
            A string like "The parameter '{0}' was not bound in the specified LINQ to Entities query expression."
            
        
        
            
            A string like "LINQ to Entities does not recognize the method '{0}' method, and this method cannot be translated into a store expression."
            
        
        
            
            A string like "The method '{0}' cannot be translated into a LINQ to Entities store expression. Consider using the method '{1}' instead."
            
        
        
            
            A string like "The specified type member '{0}' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."
            
        
        
            
            A string like "The specified method '{0}' on the type '{1}' cannot be translated into a LINQ to Entities store expression."
            
        
        
            
            A string like "The specified method '{0}' on the type '{1}' cannot be translated into a LINQ to Entities store expression because one or more passed arguments match more than one function overload."
            
        
        
            
            A string like "The specified method '{0}' on the type '{1}' cannot be translated into a LINQ to Entities store expression because no overload matches the passed arguments."
            
        
        
            
            A string like "The specified member '{0}' on the type '{1}' cannot be translated into a LINQ to Entities store expression."
            
        
        
            
            A string like "The specified member '{0}' on the type '{1}' cannot be translated into a valid provider-specific LINQ to Entities store expression equivalent."
            
        
        
            
            A string like "The specified LINQ expression of type '{0}' cannot be translated into a LINQ to Entities store expression."
            
        
        
            
            A string like "The specified LINQ expression of type '{0}' cannot be translated into a valid provider-specific LINQ to Entities store expression equivalent."
            
        
        
            
            A string like "Unable to process the type '{0}', because it has no known mapping to the value layer."
            
        
        
            
            A string like "Unable to create a null constant value of type '{0}'. Only entity types, enumeration types or primitive types are supported in this context."
            
        
        
            
            A string like "Unable to create a constant value of type '{0}'. Only primitive types or enumeration types are supported in this context."
            
        
        
            
            A string like "Unable to cast the type '{0}' to type '{1}'. LINQ to Entities only supports casting EDM primitive or enumeration types."
            
        
        
            
            A string like "The '{0}' expression with an input of type '{1}' and a check of type '{2}' is not supported. Only entity types and complex types are supported in LINQ to Entities queries."
            
        
        
            
            A string like "'{0}' is not a valid metadata type for type filtering operations. Type filtering is only valid on entity types and complex types."
            
        
        
            
            A string like "The entity or complex type '{0}' cannot be constructed in a LINQ to Entities query."
            
        
        
            
            A string like "A type that implements IEnumerable '{0}' cannot be initialized in a LINQ to Entities query."
            
        
        
            
            A string like "The type '{0}' appears in two structurally incompatible initializations within a single LINQ to Entities query. A type can be initialized in two places in the same query, but only if the same properties are set in both places and those properties are set in the same order."
            
        
        
            
            A string like "The key selector type for the call to the '{0}' method is not comparable in the underlying store provider."
            
        
        
            
            A string like "The method '{0}' is not supported when called on an instance of type '{1}'."
            
        
        
            
            A string like "A navigation property of type '{0}' is not valid. '{1}' or a single implementation of '{2}' was expected, but '{3}' was found."
            
        
        
            
            A string like "The member '{0}' is not a property or a field."
            
        
        
            
            A string like "The method '{0}' is only supported in LINQ to Entities when the argument '{1}' is a non-negative integer constant."
            
        
        
            
            A string like "The method '{0}' is only supported in LINQ to Entities when there are no trim characters specified as arguments."
            
        
        
            
            A string like "The method '{0}' is only supported in LINQ to Entities when the argument '{1}' is a constant."
            
        
        
            
            A string like "The method '{0}' is not supported in LINQ to Entities when the argument '{1}' has the value '{2}'."
            
        
        
            
            A string like "The method '{0}' is only supported in LINQ to Entities when the argument is a string variable or literal."
            
        
        
            
            A string like "Cannot compare elements of type '{0}'. Only primitive types, enumeration types and entity types are supported."
            
        
        
            
            A string like "Cannot compare EntityKeys referring to types '{0}' and '{1}' because they do not share a common super-type."
            
        
        
            
            A string like "Cannot compare '{0}'. Only primitive types, enumeration types and entity types are supported."
            
        
        
            
            A string like "member '{0}' of "
            
        
        
            
            A string like "type '{0}'"
            
        
        
            
            A string like "Unknown LINQ expression of type '{0}'."
            
        
        
            
            A string like "Unknown LINQ binding of type '{0}'."
            
        
        
            
            A string like "The specified method '{0}' on the type '{1}' cannot be translated into a LINQ to Entities store expression because its return type does not match the return type of the function specified by its DbFunction attribute."
            
        
        
            
            A string like "The specified parameter type '{0}' is not valid. Only scalar parameters (such as Int32, Decimal, and Guid) are supported."
            
        
        
            
            A string like "The specified parameter '{0}' of type '{1}' is not valid. Only scalar parameters (such as Int32, Decimal, and Guid) are supported."
            
        
        
            
            A string like "The specified use of parameter '{0}' to produce a value of type '{1}' is not supported by LINQ to Entities in a compiled query."
            
        
        
            
            A string like "Internal error. An unsupported expression kind ({0}) encountered in update mapping view by the ({1}) visitor."
            
        
        
            
            A string like "Internal error. An unsupported type ({0}) was used as an argument to cast an expression in the update mapping view. The argument must be a scalar."
            
        
        
            
            A string like "Internal error. EntitySet ({0}) has unsupported type ({1}). Only EntitySets and AssociationSets can be processed in the update pipeline."
            
        
        
            
            A string like "Internal error. An unsupported join type is in update mapping view ({0}). Only binary inner or left outer joins are supported."
            
        
        
            
            A string like "Internal error. Unsupported projection expression type ({0}). Only DBNewInstanceExpression projections are supported in update mapping views."
            
        
        
            
            A string like "Store update, insert, or delete statement affected an unexpected number of rows ({0}). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries."
            
        
        
            
            A string like "In order to update the AssociationSet '{0}', the corresponding entity from EntitySet '{1}' must be available in the ObjectStateManager."
            
        
        
            
            A string like "Entities in '{0}' participate in the '{1}' relationship. '{2}' related '{3}' were found. Between {4} and {5} '{3}' are expected."
            
        
        
            
            A string like "A relationship from the '{0}' AssociationSet is in the '{1}' state. Given multiplicity constraints, a corresponding '{2}' must also in the '{1}' state."
            
        
        
            
            A string like "At most, '{0}' relationships may be in the '{1}' state for the '{2}' relationship from End '{3}' to an instance of End '{4}'. '{5}' instances were found."
            
        
        
            
            A string like "Modifications to tables where a primary key column has property '{0}' set to '{1}' are not supported. Use '{2}' pattern instead. Key column: '{3}'. Table: '{4}'."
            
        
        
            
            A string like "A function mapping for EntitySet '{0}' requires that corresponding Associations in AssociationSet '{1}' are loaded. Load the AssociationSet before saving changes to this EntitySet."
            
        
        
            
            A string like "A function mapping specifies a result column '{0}' that the result set does not contain."
            
        
        
            
            A string like "A null store-generated value was returned for a non-nullable member '{0}' of type '{1}'."
            
        
        
            
            A string like "A store-generated value of type '{0}' could not be converted to a value of type '{1}' required for member '{2}' of type '{3}'."
            
        
        
            
            A string like "Unable to determine rows affected. The value of parameter '{0}' is not convertible to '{1}'."
            
        
        
            
            A string like "Update Mapping not found for EntitySet '{0}'."
            
        
        
            
            A string like "Modifying a column with the '{0}' pattern is not supported. Column: '{1}'. Table: '{2}'."
            
        
        
            
            A string like "A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column: '{0}'."
            
        
        
            
            A string like "Null value for non-nullable member. Member: '{0}'."
            
        
        
            
            A string like "Entities in '{0}' participate in the '{1}' relationship. {2} related '{3}' were found. {4} '{3}' is expected."
            
        
        
            
            A string like "Cannot find the {0}FunctionMapping for {1} '{2}' in the mapping file."
            
        
        
            
            A string like "Unable to determine the principal end of the '{0}' relationship. Multiple added entities may have the same primary key."
            
        
        
            
            A string like "Unable to insert or update an entity because the principal end of the '{0}' relationship is deleted."
            
        
        
            
            A string like "Values other than [{0}]"
            
        
        
            
            A string like "Insufficient or contradictory mapping. Cannot generate query views for entities in {0} when:"
            
        
        
            
            A string like "No mapping specified for instances of the EntitySet and AssociationSet in the EntityContainer {0}."
            
        
        
            
            A string like "No mapping specified for the following types - {0}."
            
        
        
            
            A string like "No mapping specified for the following EntitySet/AssociationSet - {0}."
            
        
        
            
            A string like "Cannot define new concurrency token member {0} in the derived class {1} of EntitySet {2}."
            
        
        
            
            A string like "Concurrency token(s) [{0}] in EntitySet {1} must not have a condition."
            
        
        
            
            A string like "Must specify mapping for all key properties ({0}) of table {1}."
            
        
        
            
            A string like "Must specify mapping for all key properties ({0}) of the EntitySet {1}."
            
        
        
            
            A string like "Must specify mapping for all key properties ({0}) of End {1} in Relationship {2}."
            
        
        
            
            A string like "No mapping specified for properties {0} in {1} {2}."
            
        
        
            
            A string like "Must specify mapping for all types in {0} {1}."
            
        
        
            
            A string like "Insufficient mapping: It is possible to have {0} within {1} that are not mapped."
            
        
        
            
            A string like "Column {1} in table {0} must be mapped: It has no default value and is not nullable."
            
        
        
            
            A string like "Column {0} has no default value and is not nullable. A column value is required to store entity data."
            
        
        
            
            A string like "Potential runtime violation of table {0}'s keys ({2}): Columns ({1}) are mapped to EntitySet {3}'s properties ({4}) on the conceptual side but they do not form the EntitySet's key properties ({5})."
            
        
        
            
            A string like "All the key properties ({0}) of the EntitySet {1} must be mapped to all the key properties ({2}) of table {3}."
            
        
        
            
            A string like "At least one of the key properties of AssociationSet {0} must be mapped to all the key properties ({1}) of table {2}."
            
        
        
            
            A string like "Given the cardinality of Association End Member {0}, it should be mapped to key columns of the table {1}. Either fix the mapping or change the multiplicity of this end."
            
        
        
            
            A string like "Each of the following columns in table {0} is mapped to multiple conceptual side properties:"
            
        
        
        
            
            A string like "Property {0} with 'IsNull=false' condition must be mapped."
            
        
        
            
            A string like "Conditions specified on member {0} in this fragment are not allowed."
            
        
        
            
            A string like "Column(s) [{0}] are being mapped in both fragments to different conceptual side properties."
            
        
        
            
            A string like "Data loss or key constraint violation is possible in table {0}."
            
        
        
            
            A string like "Data loss is possible in {0}."
            
        
        
            
            A string like "Problem in mapping fragments starting at line {0}:"
            
        
        
            
            A string like "Problem in mapping fragments starting at lines {0}:"
            
        
        
            
            A string like "Missing table mapping: {0} no mapping specified for the table {1}."
            
        
        
            
            A string like "{0} The columns of table {1} are mapped to AssociationSet {2}'s End {3} but the key columns of table {4} are not mapped to the keys of the EntitySet {5} corresponding to this End."
            
        
        
            
            A string like "Foreign key constraint '{0}' from table {1} ({2}) to table {3} ({4}):"
            
        
        
            
            A string like " {0} is mapped to AssociationSet  {1} - for this mapping to be correct, the upper multiplicity bound of end {2} needs to be 1."
            
        
        
            
            A string like " {0} is mapped to AssociationSet {1} - for this mapping to be correct, the lower multiplicity bound of end {2} needs to be 1."
            
        
        
            
            A string like " {0}: Insufficient mapping: Foreign key must be mapped to some AssociationSet or EntitySets participating in a foreign key association on the conceptual side."
            
        
        
            
            A string like "The foreign key '{0}' is not being enforced in the model. An Association or inheritance relationship needs to be created to enforce this constraint."
            
        
        
            
            A string like "Incorrect mapping of composite key columns. {0} Columns ({1}) in table {2} are mapped to properties ({3}) in {4} and columns ({5}) in table {6} are mapped to properties ({7}) in {8}. The order of the columns through the mappings is not preserved."
            
        
        
            
            A string like " {0} plays Role '{1}' in AssociationSet '{2}'"
            
        
        
            
            A string like " {0} does NOT play Role '{1}' in AssociationSet '{2}'"
            
        
        
            
            A string like " {0} is in '{1}' EntitySet"
            
        
        
            
            A string like " {0} is NOT in '{1}' EntitySet"
            
        
        
            
            A string like "An Entity with Key ({0}) will not round-trip when:"
            
        
        
            
            A string like "The current model no longer matches the model used to pre-generate the mapping views, as indicated by the {0}.MappingHashValue property. Pre-generated mapping views must be either regenerated using the current model or removed if mapping views generated at runtime should be used instead. See http://go.microsoft.com/fwlink/?LinkId=318050 for more information on Entity Framework mapping views."
            
        
        
            
            A string like "Ensure that mapping fragments for EntitySet {0} do not map entities with the same primary key to different rows of the same table."
            
        
        
            
            A string like "Could not validate mapping for EntitySet {0}. Check that the mapping constraints are possible in the presence of store side constraints. Having an 'IsNull=True' condition in the mapping for a non-nullable column is an example of an impossible constraint."
            
        
        
            
            A string like "Non-nullable column {1} in table {0} is mapped to a nullable entity property."
            
        
        
            
            A string like "Condition member '{0}' with a condition other than 'IsNull=False' is mapped. Either remove the condition on {0} or remove it from the mapping."
            
        
        
            
            A string like "Condition members {0} have duplicate condition values."
            
        
        
            
            A string like "EntitySets '{1}' and '{2}' are both mapped to table '{0}'. Their primary keys may collide."
            
        
        
            
            A string like "Column {0} is used in a Not Null condition but it is mapped to a property {1} which is nullable. Consider making this property non-nullable."
            
        
        
            
            A string like "EntityTypes {0} are being mapped to the same rows in table {1}. Mapping conditions can be used to distinguish the rows that these types are mapped to."
            
        
        
            
            A string like "When there is a mapping fragment between EntitySet '{0}' and Table '{1}' with MakeColumnsDistinct attribute marked to 'true', there can be no additional mapping fragments between '{0}' and '{1}'."
            
        
        
            
            A string like "The type '{0}' doesn't have any key members. A RelationshipType or EntityType must either have key members or a BaseType with key members."
            
        
        
            
            A string like "EntityKeyProperty and IsNullable cannot both be true in the EdmScalarPropertyAttribute for property '{0}' on type '{1}'. Properties that are part of the key cannot be nullable."
            
        
        
            
            A string like "The property '{0}' on type '{1}' has the return type '{2}', which is not a recognized EntityType or enumeration of instances of EntityType."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is attributed with EdmScalarPropertyAttribute but returns the type '{2}', which is not a primitive type or a recognized enumeration type."
            
        
        
            
            A string like "The property '{0}' on type '{1}' is attributed with EdmComplexPropertyAttribute but returns the type '{2}', which is not a recognized ComplexType."
            
        
        
            
            A string like "Multiple types with the name '{0}' exist in the EdmItemCollection in different namespaces.  Convention based mapping requires unique names without regard to namespace in the EdmItemCollection."
            
        
        
            
            A string like "The property '{0}' on the type '{1}' has a property type of '{2}' which cannot be mapped to a primitive type."
            
        
        
            
            A string like "The required property '{0}' does not exist on the type '{1}'."
            
        
        
            
            A string like "The base type '{0}' of type '{1}' does not match the model base type '{2}'."
            
        
        
            
            A string like "No corresponding object layer type could be found for the conceptual type '{0}'."
            
        
        
            
            A string like "The relationship '{0}' was not loaded because the type '{1}' is not available."
            
        
        
            
            A string like "The types in the assembly '{0}' cannot be loaded because the assembly contains the EdmSchemaAttribute, and the closure of types is being loaded by name.  Loading by both name and attribute is not allowed."
            
        
        
            
            A string like "The property '{0}' of type '{1}' in the assembly '{2}' cannot be used as a scalar property because it does not have both a getter and setter."
            
        
        
            
            A string like "The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type '{0}'. Previously found CLR type '{1}', newly found CLR type '{2}'."
            
        
        
            
            A string like "The EntityType or ComplexType '{0}' cannot be mapped by convention to the value type '{1}'.  Value types are not allowed to be mapped to EntityTypes or ComplexTypes."
            
        
        
            
            A string like "The type '{0}' was not loaded because the base type '{1}' is not available."
            
        
        
            
            A string like "Type '{0}' defined in the object layer is not compatible with type '{1}' defined in the conceptual model. An enumeration type cannot be mapped to a non-enumeration type."
            
        
        
            
            A string like "The type '{0}' is not a supported underlying type for enumeration types."
            
        
        
            
            A string like "Error in Function '{0}'. Aggregate Functions should take exactly one input parameter."
            
        
        
            
            A string like "Type of parameter '{0}' in function '{1}' is not valid. The aggregate function parameter type must be of CollectionType."
            
        
        
            
            A string like "Schema specified is not valid. Errors: {0}"
            
        
        
            
            A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name."
            
        
        
            
            A string like "The space '{0}' has no associated collection."
            
        
        
            
            A string like "The specified key Member '{0}' does not exist in the Members collection."
            
        
        
            
            A string like "Specified file '{0}' has extension '{1}' that is not valid. The valid extension is {2}."
            
        
        
            
            A string like "The type '{0}' that is being loaded conflicts with the type '{1}' that is already loaded because they have the same namespace and name."
            
        
        
            
            A string like "'{0}' is only valid in metadata file paths when running inside ASP.NET."
            
        
        
            
            A string like "Unable to find type '{0}' in assembly '{1}'."
            
        
        
            
            A string like "The assembly '{0}' specified does not exist in the assemblies enumeration."
            
        
        
            
            A string like "The EDMVersion of the item collection {0} is not an EDMVersion that the runtime supports. The supported versions are {1}."
            
        
        
            
            A string like "Unable to resolve assembly '{0}'."
            
        
        
            
            A string like "The parameters of Function '{0}' are converted to conceptual side type '{1}', and the function with the same conceptual side type parameters already exists. Please make sure that function overloads are not ambiguous."
            
        
        
            
            A string like "The EntitySet '{0}' that was passed in does not belong to the conceptual model."
            
        
        
            
            A string like "The type '{0}' specified is not the declared type '{1}' or a derivation of the type of the EntitySet '{2}'."
            
        
        
            
            A string like "The type '{0}' specified is not the declared type '{1}' or a derivation of the type of the AssociationSet '{2}'."
            
        
        
            
            A string like "The {0} could not be registered with the MetadataWorkspace because its version ('{1}') is different from the version ('{2}') already associated with the MetadataWorkspace."
            
        
        
            
            A string like "ItemCollection is not valid. For '{0}' space, the CollectionType should be MappingItemCollection."
            
        
        
            
            A string like "Argument '{0}' is not valid. A minimum of one .ssdl artifact must be supplied. "
            
        
        
            
            A string like "Argument '{0}' is not valid.  The set contains a null value."
            
        
        
            
            A string like "The RelationshipSet with the specified name '{0}' does not exist in the EntityContainer."
            
        
        
            
            A string like "The EntitySet with the specified name '{0}' does not exist in the EntityContainer."
            
        
        
            
            A string like "The function '{0}' is not marked as FunctionImport and cannot be added to the EntityContainer"
            
        
        
            
            A string like "The member with identity '{0}' does not exist in the metadata collection."
            
        
        
            
            A string like "The item with identity '{0}' already exists in the metadata collection."
            
        
        
            
            A string like "More than one item in the metadata collection match the identity '{0}'."
            
        
        
            
            A string like "Missing default value for '{0}' in type '{1}'. Default value must be specified because the '{0}' is specified as constant."
            
        
        
            
            A string like "Minimum and maximum value must not be specified for '{0}' in type '{1}' since '{0}' is specified as constant."
            
        
        
            
            A string like "Both minimum and maximum values must be provided for '{0}' in type '{1}' since '{0}' is not specified as a constant."
            
        
        
            
            A string like "Minimum and maximum values cannot be identical for '{0}' in type '{1}' because '{0}' is not specified as constant."
            
        
        
            
            A string like "Minimum and maximum values must be greater than or equal to zero for '{0}' in type '{1}'."
            
        
        
            
            A string like "Minimum value '{0}' specified for '{1}' in type '{2} is not valid. Minimum value must be always less than the maximum value."
            
        
        
            
            A string like "Both Ends on the EdmRelationshipAttribute for relationship '{0}' have the same Role name '{1}'. The ends of a relationship type must have different Role names."
            
        
        
            
            A string like "The property for the relationship '{0}' contains a Role '{1}' has a type '{2}' that is not valid for a relationship End. Change the End Role to an EntityType."
            
        
        
            
            A string like "EdmRelationshipNavigationPropertyAttribute for RelationshipType '{3}' on NavigationProperty '{0}' in EntityType '{1}' has a TargetRole name '{2}' that is not valid. Make sure that TargetRole name is a valid name. "
            
        
        
            
            A string like "EdmRelationshipNavigationPropertyAttribute on NavigationProperty '{0}' in EntityType '{1}' has a RelationshipName '{2}' that is not valid. Make sure the RelationshipName is valid."
            
        
        
            
            A string like "Type '{0}' in Assembly '{1}' is a nested class. Nested classes are not supported."
            
        
        
            
            A string like "The EdmRelationshipAttribute for the relationship '{1}' has a null parameter '{0}'."
            
        
        
            
            A string like "The RelationshipName parameter of an EdmRelationshipAttribute in the assembly '{0}' is null."
            
        
        
            
            A string like "The EntityType '{0}' that the NavigationProperty '{1}' is declared on is not the same type '{4}' referred by the end '{3}' of the RelationshipType '{2}' that this NavigationProperty represents."
            
        
        
            
            A string like "All SSDL artifacts must target the same provider. The Provider '{0}' is different from '{1}' that was encountered earlier."
            
        
        
            
            A string like "All SSDL artifacts must target the same provider. The ProviderManifestToken '{0}' is different from '{1}' that was encountered earlier."
            
        
        
            
            A string like "Could not find the CLR type for '{0}'."
            
        
        
            
            A string like "Could not find the conceptual model type for '{0}'."
            
        
        
            
            A string like "Could not find the CLR type for '{0}'."
            
        
        
            
            A string like "EdmComplexTypeAttribute and EdmEntityTypeAttribute can not be used on the generic type '{0}'."
            
        
        
            
            A string like "The EDM version {0} is not supported by the runtime."
            
        
        
            
            A string like "The EntityContainer '{0}' for the conceptual model specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The EntityContainer '{0}' for the storage model specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The EntityContainer '{0}' for the storage model has already been mapped."
            
        
        
            
            A string like "The EntitySet '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The EntityType '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The EntityType '{0}' is Abstract and cannot be mapped using Function Mapping."
            
        
        
            
            A string like "The EntityType '{0}' is Abstract and can be mapped only using IsTypeOf."
            
        
        
            
            A string like "The EntityType '{0}' used in IsTypeOf does not have any concrete descendants."
            
        
        
            
            A string like "The EntityType '{0}' specified is not the declared type '{1}' or a derivation of the type of the EntitySet '{2}'."
            
        
        
            
            A string like "The AssociationType '{0}' specified is not the declared type '{1}' of the AssociationSet '{2}'."
            
        
        
            
            A string like "The Table '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The Complex Type '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The AssociationSet '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The AssociationSet '{0}' cannot have a Condition because it does not provide maps for the End elements."
            
        
        
            
            A string like "AssociationType '{0}' has a referential integrity constraint and cannot be mapped."
            
        
        
            
            A string like "AssociationType '{0}' has a primary key to primary key referential integrity constraint. Any mappings for it will be ignored."
            
        
        
            
            A string like "The AssociationType '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The property '{0}' is not a key member of the EntityType. Only key members can be mapped as part of the EndProperty mapping."
            
        
        
            
            A string like "Content not valid. The conceptual side Member or Property '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The Column '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The End property '{0}' specified as part of this MSL does not exist in MetadataWorkspace."
            
        
        
            
            A string like "The conceptual side Member or Property '{0}' has multiple mappings specified as part of the same mapping fragment."
            
        
        
            
            A string like "The Member or Property '{0}' has multiple conditions specified as part of the same mapping fragment."
            
        
        
            
            A string like "Condition can not be specified on values of member '{0}'. Value conditions are not supported for type '{1}'."
            
        
        
            
            A string like "Member '{0}' specified in Condition does not exist."
            
        
        
            
            A string like "Condition cannot be specified for Column member '{0}' because it is marked with a 'Computed' or 'Identity' StoreGeneratedPattern."
            
        
        
            
            A string like "At least one property must be mapped in the set mapping for '{0}'."
            
        
        
            
            A string like "The Member '{0}' in the conceptual model type '{1}' is not present in the CLR type '{2}'."
            
        
        
            
            A string like "The Member '{0}' in the CLR type '{1}' is not present in the conceptual model type '{2}'."
            
        
        
            
            A string like "The type '{0}' of the member '{1}' in the conceptual side type '{2}' does not match with the type '{3}' of the member '{4}' on the object side type '{5}'."
            
        
        
            
            A string like "The '{0}' property on the conceptual model type '{1}' is of type '{2}'. The property '{3}' on the CLR type '{4}' is of type '{5}'. The property types must match."
            
        
        
            
            A string like "The multiplicity '{0}' on End '{1}' in the conceptual side Association '{2}' doesn't match with multiplicity '{3}' on end '{4}' on the object side Association '{5}'."
            
        
        
            
            A string like "The number of members in the conceptual type '{0}' does not match with the number of members on the object side type '{1}'. Make sure the number of members are the same."
            
        
        
            
            A string like "The type '{0}'('{1}') of the member '{2}' in the conceptual  type '{3}' doesn't match with the type '{4}'('{5}') of the member '{6}' on the object side type '{7}'."
            
        
        
            
            A string like "The underlying type '{0}' of the enumeration type '{1}' defined in the conceptual model does not match the underlying type '{2}' of the enumeration type '{3}' defined in the object layer."
            
        
        
            
            A string like "The enumeration type '{0}' defined in the object layer does not have a member that corresponds to the member '{1}' whose value is '{2}' of the enumeration type '{3}' defined in the conceptual model."
            
        
        
            
            A string like "The mapping for EntityContainer '{0}' was not found in Workspace."
            
        
        
            
            A string like "The conceptual AssociationSet '{0}' cannot be mapped multiple times."
            
        
        
            
            A string like "Invalid root element found in the mapping file. Make sure that the root element's local name is 'Mapping' and the namespaceURI is '{0}', '{1}' or '{2}'."
            
        
        
            
            A string like "The Storage Map can be looked up only from the type in conceptual model. It cannot be looked up from type in the following space: {0}."
            
        
        
            
            A string like "Member Mapping specified is not valid. The type '{0}' of member '{1}' in type '{2}' is not compatible with '{3}' of member '{4}' in type '{5}'."
            
        
        
            
            A string like "The property '{0}' on the conceptual side is not a scalar property."
            
        
        
            
            A string like "The type '{0}' has been mapped more than once."
            
        
        
            
            A string like "More than one property map found for property '{0}' when using case-insensitive search."
            
        
        
            
            A string like "Non-empty enumeration value must be specified for condition mapping for enumeration '{0}'."
            
        
        
            
            A string like "Enumeration value '{0}' specified in condition mapping is not valid."
            
        
        
            
            A string like "XML parsing failed for mapping schema. Schema Error Information : {0}."
            
        
        
            
            A string like "XML Schema validation failed for mapping schema. Schema Error Information : {0}."
            
        
        
            
            A string like "Object mapping could not be found for Type with identity '{0}'."
            
        
        
            
            A string like "The connection is not of type '{0}'."
            
        
        
            
            A string like "No views were found in assemblies or could be generated for {0} '{1}'."
            
        
        
            
            A string like "Store EntitySet name should not be specified on set mapping for Set '{0}' because a query view is being specified."
            
        
        
            
            A string like "The query view specified for EntitySet '{0}' is empty."
            
        
        
            
            A string like "The IsTypeOf({0}) query view specified for EntitySet '{1}' is empty."
            
        
        
            
            A string like "The query view specified for EntitySet '{0}' for EntityType '{1}' is empty."
            
        
        
            
            A string like "Property maps cannot be specified for EntitySet '{0}' because a query view has been specified."
            
        
        
            
            A string like "The query view generated for the EntitySet '{0}' is not valid. The query parser threw the following error : {1}."
            
        
        
            
            A string like "The query view specified for the EntitySet '{0}' is not valid. The query parser threw the following error : {1}."
            
        
        
            
            A string like "The ResultType of the query view expression specified for the EntitySet '{0}' is not assignable to the element type of the EntitySet."
            
        
        
            
            A string like "The EntitySetMapping in EntityContainerMapping for EntityContainer '{0}' must contain only mapping fragments and no query view. The EntitySetMapping contains only query views and the view for this EntityContainerMapping will not be generated."
            
        
        
            
            A string like "A single QueryView is defined for multiple types within EntitySet {0}."
            
        
        
            
            A string like "IsTypeOf( ) QueryView is already defined for EntitySet {0} and TypeName {1}."
            
        
        
            
            A string like "QueryView is already defined for EntitySet {0} and TypeName {1}."
            
        
        
            
            A string like "TypeName property must be defined for all but the first QueryViews within mapping for EntitySet {0}."
            
        
        
            
            A string like "IsTypeOf({0}) QueryView should not be specified for {1} EntitySet's element type {0}."
            
        
        
            
            A string like "The query view specified for '{0}' EntitySet's type(s) '{1}' contains an unsupported expression of kind '{2}'."
            
        
        
            
            A string like "The query view specified for the EntitySet '{0}' includes a call to the Function '{1}'. Only storage Functions may be referenced in a query view."
            
        
        
            
            A string like "The query view specified for the EntitySet '{0}' includes a scan of the '{1}' EntitySet. Only storage EntitySets may be referenced in a query view."
            
        
        
            
            A string like "The query view specified for the EntitySet '{0}' contains a reference to member '{1}' of kind '{2}'. Only columns may be referenced."
            
        
        
            
            A string like "The query view specified for the EntitySet '{0}' initializes an instance of type '{1}'. Only types assignable to the element type of the EntitySet are permitted."
            
        
        
            
            A string like "The EntitySet '{0}' used for creating the Ref expression does not match the EntitySet '{1}' declared on the AssociationSetEnd '{2}' of the AssociationSet '{3}'."
            
        
        
            
            A string like "If an EntitySet or AssociationSet includes a query view, all related entity and association sets in the EntityContainer must also define query views. The following sets require query views: {0}."
            
        
        
            
            A string like "The context type '{0}' must derive from the System.Data.Entity.DbContext type or the System.Data.Entity.Core.Objects.ObjectContext type."
            
        
        
            
            A string like "The DbMappingViewCache type '{0}' specified in the DbMappingViewCacheTypeAttribute constructor could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application."
            
        
        
            
            A string like "Multiple instances of DbMappingViewCacheTypeAttribute that specify the same context type '{0}' are not allowed."
            
        
        
            
            A string like "The type that contains generated views '{0}' must derive from the System.Data.Entity.Infrastructure.DbMappingViewCache type."
            
        
        
            
            A string like "The EntitySet '{0}' for which the view has been specified could not be found in the workspace."
            
        
        
            
            A string like "GlobalItem with name '{0}' exists both in conceptual model and storage model. Make sure that every item has a unique name across conceptual model and storage model."
            
        
        
            
            A string like "Type '{0}' in conceptual side  cannot be mapped to type '{1}' on the object side.  Both the types must be abstract or both must be concrete types."
            
        
        
            
            A string like "Type '{0}' defined in the conceptual model cannot be mapped to type '{1}' from the object layer. An enumeration type cannot be mapped to a non-enumeration type."
            
        
        
            
            A string like "Storage EntityContainer name '{0}' specified in this mapping schema doesn't match with the storage EntityContainer name '{1}' specified in the previous mapping schema(s) for EntityContainer '{2}' in the conceptual model. Make sure that you specify exactly one mapping per EntityContainer, or if you want to specify partial mapping, make sure that they map to the same storage EntityContainer."
            
        
        
            
            A string like "An EdmType cannot be mapped to CLR classes multiple times. The EdmType '{0}' is mapped more than once."
            
        
        
            
            A string like "A mapping function binding specifies an unknown function {0}."
            
        
        
            
            A string like "A mapping function binding specifies an ambiguous function {0} with more than one overload."
            
        
        
            
            A string like "A mapping function binding specifies a function {0} that is not supported. Only functions that cannot be composed are supported."
            
        
        
            
            A string like "A mapping function binding specifies a function {0} with an unsupported parameter: {1}. Output parameters may only be mapped through the {2} property. Use result bindings to return values from a function invocation."
            
        
        
            
            A string like "A mapping function bindings specifies a function {0} but does not map the following function parameters: {1}."
            
        
        
            
            A string like "An association End mapping specifies an AssociationSet {0} that does not exist in the current container."
            
        
        
            
            A string like "An association End mapping specifies a Role {0} that does not exist in the current AssociationSet."
            
        
        
            
            A string like "An association End mapping defines a from Role {0} that is not bound to the current EntitySet."
            
        
        
            
            A string like "An association End mapping has a 'to' Role {0} with multiplicity greater than one. A maximum multiplicity of one is supported."
            
        
        
            
            A string like "Unable to find ComplexType {0} in the current MetadataWorkspace."
            
        
        
            
            A string like "The Complex Type {0} does not match the type of the current property {1}."
            
        
        
            
            A string like "The function parameter {0} is not defined in the function {1}."
            
        
        
            
            A string like "The property {0} does not exist in the type {1}."
            
        
        
            
            A string like "The property {0} is not a key of {1}. Association End mappings may only include key properties."
            
        
        
            
            A string like "The parameter {0} is bound multiple times."
            
        
        
            
            A string like "The EntityType {0} is mapped to functions more than once."
            
        
        
            
            A string like "If some of the EntitySet or the AssociationSet mapped to the same store EntitySet, and one of the sets includes a function mapping, all related entity and AssociationSets in the EntityContainer must also define function mappings. The following sets require function mappings: {0}."
            
        
        
            
            A string like "If an EntitySet mapping includes a function binding, function bindings must be included for all types. The following types do not have function bindings: {0}."
            
        
        
            
            A string like "Parameter Mapping specified is not valid. The type '{0}' of member '{1}' in type '{2}' is not compatible with '{3}' of parameter '{4}' in function '{5}'."
            
        
        
            
            A string like "AssociationSet instances may only be mapped using functions in one EntitySetMapping or AssociationSetMapping. The following AssociationSet instances are mapped in multiple locations: {0}."
            
        
        
            
            A string like "A function mapping includes parameter bindings for two different Ends of the same AssociationSet. Only one End of a particular AssociationSet may be mapped within a single function mapping. End Roles: {0}, {1}. AssociationSet: {2}."
            
        
        
            
            A string like "A function mapping includes multiple result bindings for a single property. Property name: {0}. Column names: {1}."
            
        
        
            
            A string like "The EntitySet '{0}' includes function mappings for AssociationSet '{1}', but none exists in element '{2}' for type '{3}'. AssociationSets must be consistently mapped for all operations."
            
        
        
            
            A string like "The EntityType '{0}' includes function mappings for AssociationSet '{1}' that requires type '{2}'."
            
        
        
            
            A string like "A function mapping for 'to' role {0} is not permitted because it is a foreign key association."
            
        
        
            
            A string like "The conceptual side property '{0}' has already been mapped to a storage property with type '{1}'. If the conceptual side property is mapped to multiple properties in the storage model, make sure that all the properties in the storage model have the same type."
            
        
        
            
            A string like "The store provider did not return a valid EdmType for '{0}'."
            
        
        
            
            A string like "The storage function '{0}' does not exist."
            
        
        
            
            A string like "The FunctionImport '{0}' does not exist in container '{1}'."
            
        
        
            
            A string like "The FunctionImport '{0}' has already been mapped."
            
        
        
            
            A string like "The non-composable function import '{0}' is mapped to the composable store function '{1}'. Non-composable function imports can be mapped only to stored procedures."
            
        
        
            
            A string like "The composable function import '{0}' is mapped to the non-composable store function '{1}'. Composable function imports can be mapped only to composable table-valued store functions."
            
        
        
            
            A string like "Storage function has a parameter '{0}' but no corresponding parameter was found in the FunctionImport."
            
        
        
            
            A string like "Import function has a parameter '{0}' but no corresponding parameter was found in the storage function."
            
        
        
            
            A string like "Parameter '{0}' has mode '{1}' in the storage function but mode '{2}' in the FunctionImport."
            
        
        
            
            A string like "Parameter '{0}' has type '{1}' in the storage that is not compatible with type '{2}' declared for the FunctionImport."
            
        
        
            
            A string like "The storage function parameter '{0}' of type '{1}' does not match the corresponding FunctionImport parameter of enumeration type '{2}' with underlying type '{3}'. The underlying type of the enumeration parameter for a function defined in the conceptual model must match the corresponding storage function parameter type."
            
        
        
            
            A string like "Rows affected parameter '{0}' does not exist in function '{1}'."
            
        
        
            
            A string like "Rows affected parameter '{0}' is of type '{1}'. Must be an integer numeric type."
            
        
        
            
            A string like "Rows affected parameter '{0}' has mode '{1}'. Must have mode '{2}' or '{3}'."
            
        
        
            
            A string like "An {0} element can only be declared for a FunctionImport declaring an EntitySet. FunctionImport '{1}' does not declare an EntitySet."
            
        
        
            
            A string like "The EntityType '{0}' specified is not the declared type '{1}' nor a derivation of the type of the EntitySet '{2}' for FunctionImport '{3}'."
            
        
        
            
            A string like "The condition value specified for {0} is not compatible with the type returned by the storage provider. Column name: '{1}', ResultType: '{2}'. "
            
        
        
            
            A string like "The type returned by the storage provider is not supported for type conditions. Column name: '{0}', ResultType: '{1}'."
            
        
        
            
            A string like "The number of ResultMapping elements for the FunctionImport '{0}' does not match the number of specified ReturnType elements."
            
        
        
            
            A string like "Mapping of the function import '{0}' is not valid. Mapped type '{1}' is not compatible with the return type of the function import."
            
        
        
            
            A string like "Mapping of the function import '{0}' is not valid. ComplexTypeMapping is supported only for function imports returning a collection of ComplexType."
            
        
        
            
            A string like "Mapping of the function import '{0}' is not valid. EntityTypeMapping is supported only for function imports returning a collection of EntityType."
            
        
        
            
            A string like "Mapping of the function import '{0}' is not valid. Storage function return type is expected to be a collection of rows."
            
        
        
            
            A string like "No mapping specified for the conceptual property '{0}' of type '{1}' in the result mapping of the function import '{2}'."
            
        
        
            
            A string like "The return type '{0}' of the function import '{1}' is abstract and cannot be mapped implicitly."
            
        
        
            
            A string like "The function import '{0}' can be mapped only to a store function that returns rows with one column. The store function '{1}' returns rows with multiple columns."
            
        
        
            
            A string like "The return type '{0}' of the function import '{1}' is not compatible with the return type '{2}' of the store function '{3}'."
            
        
        
            
            A string like "The function import mapping cannot produce an entity of type '{0}'. Ensure that conditions unambiguously imply the type. See line(s) '{1}'."
            
        
        
            
            A string like "The function import mapping cannot produce an entity from the '{0}' type hierarchy. Ensure that conditions unambiguously imply some type in the hierarchy. See line(s) '{1}'."
            
        
        
            
            A string like "Unable to resolve to a specific overload of the function '{0}'."
            
        
        
            
            A string like "The key properties of all entity types returned by the function import '{0}' must be mapped to the same non-nullable columns returned by the storage function."
            
        
        
            
            A string like "Nullable complex types are not supported. The complex property '{0}' must not allow nulls."
            
        
        
            
            A string like "The property '{0}' could not be reported as changing. This occurred because EntityComplexMemberChanging was called with a property name that is not a complex property. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "Property '{0}' is not a valid property on the object referenced by this ObjectStateEntry."
            
        
        
            
            A string like "The property '{0}' is part of the object's key information and cannot be modified. "
            
        
        
            
            A string like "{0} cannot be called because the object is not in a modified or unchanged state."
            
        
        
            
            A string like "The property '{0}' does not have a valid entity mapping on the entity object. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "The property '{0}' does not have a valid entity mapping on the complex type. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "The change cannot be tracked because the state of the object changed from '{0}' to '{1}' since the previous call to EntityMemberChanging or EntityComplexMemberChanging on the same change tracker with the same property name. For information about properly reporting changes, see the Entity Framework documentation. "
            
        
        
        
            
            A string like "The entity of type '{0}' references the same complex object of type '{1}' more than once. Complex objects cannot be referenced multiple times by the same entity."
            
        
        
            
            A string like "The original value for the property '{0}' cannot be set because it is a complex property. Individual scalar properties can be set on a complex type if the type is first obtained as a OriginalValueRecord from the entity's original values."
            
        
        
            
            A string like "The original value for the property '{0}' cannot be set to null because the '{1}' member on the entity type '{2}' is not nullable."
            
        
        
            
            A string like "The original value for the property '{0}' cannot be set because the property is part of the entity's key."
            
        
        
            
            A string like "The ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type '{0}'."
            
        
        
            
            A string like "An object with the same key already exists in the ObjectStateManager. The existing object is in the {0} state. An object can only be added to the ObjectStateManager again if it is in the added state."
            
        
        
            
            A string like "EntityType '{0}' does not exist in the EntitySet '{1}'."
            
        
        
            
            A string like "Conflicting changes to the role '{0}' of the relationship '{1}' have been detected."
            
        
        
            
            A string like "The following objects have not been refreshed because they were not found in the store: {0}."
            
        
        
            
            A string like "The specified default EntityContainer name '{0}' could not be found in the mapping and metadata information."
            
        
        
            
            A string like "The element at index {0} in the collection of objects to refresh is in the added state. Objects in this state cannot be refreshed."
            
        
        
            
            A string like "The element at index {0} in the collection of objects to refresh is a duplicate of an object that is already in the collection."
            
        
        
            
            A string like "The element at index {0} in the collection of objects to refresh is null."
            
        
        
            
            A string like "The element at index {0} in the collection of objects to refresh has a null EntityKey property value or is not attached to this ObjectStateManager."
            
        
        
            
            A string like "The EntitySet name '{0}' could not be found."
            
        
        
            
            A string like "The EntityContainer name '{0}' could not be found."
            
        
        
            
            A string like "Mapping and metadata information could not be found for EntityType '{0}'."
            
        
        
            
            A string like "The EntitySet name '{0}.{1}' from the object's EntityKey does not match the expected EntitySet name, '{2}.{3}'."
            
        
        
            
            A string like "The type parameter '{0}' in ExecuteFunction is incompatible with the type '{1}' returned by the function. "
            
        
        
            
            A string like "The stored procedure or function '{1}' returned the type '{0}'. ExecuteFunction only supports stored procedures and functions that return collections of entity objects or collections of complex objects. "
            
        
        
            
            A string like "The stored procedure or function '{0}' does not have a return type. ExecuteFunction only supports stored procedures and functions that have a return type. "
            
        
        
            
            A string like "The parameter at index {0} in the parameters array is null."
            
        
        
            
            A string like "The object in the ObjectContext is of type '{0}', but the modified object provided is of type '{1}'. The two objects must be of the same EntityType for changes to be applied. "
            
        
        
            
            A string like "The existing object in the ObjectContext is in the {0} state. Changes can only be applied when the existing object is in an unchanged or modified state."
            
        
        
            
            A string like "The existing object in the ObjectContext is in the {0} state. Original values can be changed when the existing object is in an unchanged, modified or deleted state."
            
        
        
            
            A string like "The changes to the database were committed successfully, but an error occurred while updating the object context. The ObjectContext might be in an inconsistent state. Inner exception message: {0}"
            
        
        
            
            A string like "The EntitySet, '{0}', from the entity's EntityKey does not match the entity's type, '{1}'."
            
        
        
            
            A string like "The specified entity type, '{0}', does not match the type '{1}' from the EntitySet '{2}'."
            
        
        
            
            A string like "The EntitySet name '{0}.{1}' from the entity's EntityKey does not match the expected EntitySet name '{2}.{3}' from the '{4}' parameter."
            
        
        
            
            A string like "Cannot explicitly load {0} for entities that are detached.  Objects loaded using the NoTracking merge option are always detached."
            
        
        
            
            A string like "Cannot load {0} using a context different than that with which the object was loaded."
            
        
        
        
        
            
            A string like "There are no EntitySets defined for the specified entity type '{0}'. If '{0}' is a derived type, use the base type instead."
            
        
        
            
            A string like "The specified entity cannot be deleted from the ObjectSet because the entity is a member of the EntitySet '{0}.{1}' instead of the EntitySet '{2}.{3}' that is referenced by the ObjectSet. Use the DeleteObject method on the ObjectSet that contains the entity, or use the ObjectContext.DeleteObject method if you want to delete the entity without validating its EntitySet."
            
        
        
            
            A string like "The specified entity cannot be detached from the ObjectSet because the entity is a member of the EntitySet '{0}.{1}' instead of the EntitySet '{2}.{3}' that is referenced by the ObjectSet. Use the Detach method on the ObjectSet that contains the entity, or use the ObjectContext.Detach method if you want to delete the entity without validating its EntitySet."
            
        
        
            
            A string like "The specified EntitySet '{0}.{1}' does not contain results of type '{2}'."
            
        
        
            
            A string like "The result type '{0}' may not be abstract and must include a default constructor."
            
        
        
            
            A string like "The '{0}' column is mapped to multiple properties '{1}'. Ensure a separate column exists for each property."
            
        
        
            
            A string like "The object at index {0} in the specified collection of objects is null."
            
        
        
            
            A string like "The object at index {0} in the specified collection of objects is not attached to the same ObjectContext as source object of this EntityCollection."
            
        
        
            
            A string like "The object at index {0} in the specified collection of objects is in an added or deleted state. Relationships cannot be created for objects in this state."
            
        
        
            
            A string like "The {0} object could not be serialized. This type of object cannot be serialized when the RelationshipManager belongs to an entity object that does not implement IEntityWithRelationships."
            
        
        
            
            A string like "An item cannot be added to a fixed size Array of type '{0}'."
            
        
        
            
            A string like "An item cannot be removed from a fixed size Array of type '{0}'."
            
        
        
            
            A string like "The property '{0}' cannot be set to a null value."
            
        
        
            
            A string like "The '{2}' property on '{1}' could not be set to a '{3}' value. You must set this property to a non-null value of type '{0}'. "
            
        
        
            
            A string like "The specified cast from a materialized '{0}' type to the '{1}' type is not valid."
            
        
        
            
            A string like "The specified cast from a materialized '{0}' type to a nullable '{1}' type is not valid."
            
        
        
            
            A string like "The cast to value type '{0}' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type."
            
        
        
            
            A string like "All objects in the EntitySet '{0}' must have unique primary keys. However, an instance of type '{1}' and an instance of type '{2}' both have the same primary key value, '{3}'. "
            
        
        
            
            A string like "An object with a key value '{0}' already exists in an added state. An object in this state cannot be merged."
            
        
        
            
            A string like "The relationship '{0}' does not match any relationship defined in the conceptual model."
            
        
        
            
            A string like "An EntityCollection of {0} objects could not be returned for role name '{1}' in relationship '{2}'. Make sure that the EdmRelationshipAttribute that defines this relationship has the correct RelationshipMultiplicity for this role name. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "The Load method cannot return the {0} when the related object is in a deleted state."
            
        
        
            
            A string like "The RelatedEnd with role name '{0}' from relationship '{1}' has already been loaded. This can occur when using a NoTracking merge option. Try using a different merge option when querying for the related object."
            
        
        
            
            A string like "An EntityReference of type '{0}' could not be returned for role name '{1}' in relationship '{2}'. Make sure that the EdmRelationshipAttribute that defines this relationship has the correct RelationshipMultiplicity for this role name. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "Multiplicity constraint violated. The role '{0}' of the relationship '{1}' has multiplicity 1 or 0..1."
            
        
        
            
            A string like "The {0} could not be loaded because it is not attached to an ObjectContext."
            
        
        
            
            A string like "An object of type '{0}' cannot be added, attached, or removed from an EntityCollection that contains objects of type '{1}'."
            
        
        
            
            A string like "An object of type '{0}' cannot be set or removed from the Value property of an EntityReference of type '{1}'."
            
        
        
            
            A string like "The object in the '{0}' role cannot be automatically added to the context because it was retrieved using the NoTracking merge option. Explicitly attach the entity to the ObjectContext before defining the relationship."
            
        
        
            
            A string like "Related objects cannot be loaded using the {0} merge option. Relationships cannot be created when one object was retrieved using a NoTracking merge option and the other object was retrieved using a different merge option."
            
        
        
            
            A string like "The relationship cannot be defined because the EntitySet name '{0}.{1}' is not valid for the role '{2}' in association set name '{3}.{4}'."
            
        
        
            
            A string like "Metadata information for the relationship '{0}' could not be retrieved. If mapping attributes are used, make sure that the EdmRelationshipAttribute for the relationship has been defined in the assembly.  When using convention-based mapping, metadata information for relationships between detached entities cannot be determined."
            
        
        
            
            A string like "The relationship '{0}' does not contain the role '{1}'. Make sure that EdmRelationshipAttribute that defines this relationship has the correct role names. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "The relationship manager was defined with an owner of type '{0}', which is not compatible with the type '{1}' for the source role '{2}' in the specified relationship, '{3}'."
            
        
        
            
            A string like "The EntityReference has already been initialized. {0}"
            
        
        
            
            A string like "The EntityReference could not be initialized, because the relationship manager for object to which the entity reference belongs is already attached to an ObjectContext. {0}"
            
        
        
            
            A string like "The EntityCollection has already been initialized. {0}"
            
        
        
            
            A string like "The EntityCollection could not be initialized because the relationship manager for the object to which the EntityCollection belongs is already attached to an ObjectContext. {0}"
            
        
        
            
            A string like "The specified navigation property {0} could not be found."
            
        
        
            
            A string like "The object could not be added to the bound collection. The specific EntitySet for the object of type '{0}' could not be determined."
            
        
        
            
            A string like "The class '{0}' has no parameterless constructor."
            
        
        
            
            A string like "Unable to set field/property {0} on entity type {1}. See InnerException for details."
            
        
        
            
            A string like "The navigation property of type '{0}' is not a single implementation of '{1}'."
            
        
        
        
            
            A string like "function '{0}()'"
            
        
        
            
            A string like "type '{0}' constructor"
            
        
        
            
            A string like "Cannot convert literal '{0}' to '{1}'. Numeric literal specification is not valid."
            
        
        
            
            A string like "'{0}' is a reserved keyword and cannot be used as an alias, unless it is escaped."
            
        
        
            
            A string like "The escaped identifier '{0}' is not valid."
            
        
        
            
            A string like "The escaped identifier '{0}' has a mismatch of opening ('[') and closing (']') delimiters."
            
        
        
            
            A string like "The simple identifier '{0}' is not valid."
            
        
        
            
            A string like "The simple identifier '{0}' must contain basic Latin characters only. To use UNICODE characters, use an escaped identifier."
            
        
        
            
            A string like "The alias '{0}' was already used."
            
        
        
            
            A string like "The name '{0}' is ambiguous. '{0}' is defined in both the '{1}' namespace and the '{2}' namespace. To disambiguate, either use a fully qualified name or define a namespace alias."
            
        
        
            
            A string like "The argument types '{0}' and '{1}' are incompatible for this operation."
            
        
        
            
            A string like "The BETWEEN lower limit type '{0}' is not compatible with the upper limit type '{1}'."
            
        
        
            
            A string like "The BETWEEN lower limit type '{0}' is not order-comparable with the upper limit type '{1}'."
            
        
        
            
            A string like "The BETWEEN value type '{0}' is not order-comparable with the limits common type '{1}'."
            
        
        
            
            A string like "'{0}' cannot be instantiated because it is defined as an abstract type."
            
        
        
            
            A string like "'{0}' cannot be resolved into a valid type or function."
            
        
        
            
            A string like "'{0}' could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly."
            
        
        
            
            A string like "The CREATEREF type '{0}' is not a sub-type or super-type of the EntitySet EntityType '{1}'."
            
        
        
            
            A string like "The CREATEREF type must specify an EntityType. The type specification '{0}' represents '{1}'."
            
        
        
            
            A string like "The DEREF argument must be a reference type. The passed argument is a '{0}' type."
            
        
        
            
            A string like "The inline function '{0}' with the same parameters already exists. Make sure that function overloads are not ambiguous."
            
        
        
            
            A string like "The entity set or function import '{0}' is not defined in the entity container '{1}'."
            
        
        
            
            A string like "The OFTYPE collection element type must refer to an EntityType. The passed type is {0} '{1}'."
            
        
        
            
            A string like "The OFTYPE collection element type must refer to a nominal type. The passed type is {0} '{1}'."
            
        
        
            
            A string like "{0} must refer to an EntityType. The passed type is {1} '{2}'."
            
        
        
            
            A string like "{0} must refer to a nominal type. The passed type is {1} '{2}'."
            
        
        
            
            A string like "Could not resolve the aggregate function '{0}' in this context."
            
        
        
            
            A string like "A '{0}' exception occurred while processing the query. See the inner exception."
            
        
        
            
            A string like "The type '{0}' is not supported in the UNION expression."
            
        
        
            
            A string like "The CAST expression is not valid. There is no valid conversion from type '{0}' to type '{1}'."
            
        
        
            
            A string like "The complex member '{0}' in type '{1}' and the complex member '{2}' in type '{3}' are incompatible because they have a different number of members."
            
        
        
            
            A string like "The argument type '{0}' is not compatible with the property '{1}' of formal type '{2}'."
            
        
        
            
            A string like "It is not valid to use the type constructor on type '{0}'. This type must have one of the following constructors: Entity, ComplexType, or RelationType."
            
        
        
            
            A string like "The DateTimeOffset literal '{0}' exceeds the range of DateTimeOffset values."
            
        
        
            
            A string like "The day '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "The day '{0}' is not valid for the month '{1}' in DateTime literal '{2}'."
            
        
        
            
            A string like "'{0}' is not a member of type '{1}'. Type '{1}' is the result of dereferencing an expression of type '{2}'."
            
        
        
            
            A string like "The EntityType objects '{0}' and '{1}' are incompatible because they do not share a common super-type."
            
        
        
            
            A string like "The entity '{0}' in type '{1}' and the entity '{2}' in type '{3}' are incompatible because they do not share a common super-type."
            
        
        
            
            A string like "The expression has been classified as a {0}; a {1} was expected."
            
        
        
            
            A string like "The identifier '{0}' is not valid because it is not contained either in an aggregate function or in the GROUP BY clause."
            
        
        
            
            A string like "Hour '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "The 'from' end could not be inferred in the relationship '{0}'."
            
        
        
            
            A string like "The 'to' end could not be inferred in the relationship '{0}'."
            
        
        
            
            A string like "The element type '{0}' and the CollectionType '{1}' are not compatible. The IN expression only supports entity, scalar and reference types. "
            
        
        
            
            A string like "The KEY argument expression must be of reference type. The passed type is '{0}'."
            
        
        
            
            A string like "COLLATE can only be used with sort keys of string type. The passed type is '{0}'."
            
        
        
            
            A string like "The {0} literal value '{1}' is not valid."
            
        
        
            
            A string like "Minute '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "Month '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "The non-nullable member '{0}' of type '{1}' cannot be initialized with a NULL value."
            
        
        
            
            A string like "The command parameter syntax '@{0}' is not valid."
            
        
        
            
            A string like "{0} member '{1}' and {2} member '{3}' are incompatible because they do not have a common type."
            
        
        
            
            A string like "{0} member '{1}' in type '{2}' and {3} member '{4}' in type '{5}' are incompatible because they do not have a common type."
            
        
        
            
            A string like "'{0}' is not a valid member of the '{1}' relationship. "
            
        
        
            
            A string like "'{0}' has been resolved as a {1}; a {2} was expected."
            
        
        
            
            A string like "Complex type '{0}' and complex type '{1}' are incompatible because they have different number of members."
            
        
        
            
            A string like "Row type '{0}' and row type '{1}' are incompatible because they have a different number of columns."
            
        
        
            
            A string like "Row member '{0}' in type '{1}' and row member '{2}' in type '{3}' are incompatible because they have a different number of columns."
            
        
        
            
            A string like "Second '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "The '{0}' argument must be of CollectionType."
            
        
        
            
            A string like "The unsigned type '{0}' cannot be promoted to a signed type."
            
        
        
            
            A string like "Year '{0}' is not valid in DateTime literal '{1}'."
            
        
        
            
            A string like "The multiplicity '{1}' is not valid for the relationship end '{0}'."
            
        
        
            
            A string like "The query is not valid because it contains the association type '{0}', which cannot be projected."
            
        
        
            
            A string like "The key expression '{0}' must have at least one reference to the immediate input scope."
            
        
        
            
            A string like "There is no EDM type that corresponds to the literal type '{0}'."
            
        
        
            
            A string like "The parameter '{0}' was defined more than once in the parameter collection."
            
        
        
            
            A string like "The variable '{0}' was defined more than once in the variable collection."
            
        
        
            
            A string like "The namespace alias '{0}' was used in a previous USING directive."
            
        
        
            
            A string like "The namespace '{0}' was already imported."
            
        
        
            
            A string like "The nested aggregate {0} cannot be used inside of the aggregate {1}."
            
        
        
            
            A string like "No overload of aggregate function '{0}.{1}' is compatible with argument types in '{2}'."
            
        
        
            
            A string like "No overload of canonical aggregate function '{0}.{1}' is compatible with the argument types in '{2}'. Consult provider-specific function documentation for store functions with similar functionality."
            
        
        
            
            A string like "No overload of canonical function '{0}.{1}' is compatible with the argument types in '{2}'. Consult provider-specific function documentation for potential store functions with similar functionality."
            
        
        
            
            A string like "No overload of function '{0}.{1}' is compatible with the argument types in '{2}'."
            
        
        
            
            A string like "'{0}' is not a member of '{1}'. To extract a property of a collection element, use a sub-query to iterate over the collection."
            
        
        
            
            A string like "'{0}' is not a member of type '{1}' in the currently loaded schemas."
            
        
        
            
            A string like "Type '{0}' is neither a sub-type nor a super-type of '{1}'."
            
        
        
            
            A string like "The type constructor argument '{0}' is missing."
            
        
        
            
            A string like "The number of arguments passed to the type '{0}' constructor exceeds its formal specification."
            
        
        
            
            A string like "The OFTYPE ONLY type argument is not valid because '{0}' is an abstract type."
            
        
        
            
            A string like "The command parameter '{0}' of type '{1}' is not supported."
            
        
        
            
            A string like "The command parameter '{0}' was not defined."
            
        
        
            
            A string like "The {0} expression type must be promotable to an Edm.Int64 type. The passed type is '{1}'."
            
        
        
            
            A string like "The {0} expression must be a command parameter or an integral numeric literal."
            
        
        
            
            A string like "The {0} expression value must be greater than or equal to zero."
            
        
        
            
            A string like "The {0} operand of {1} is not valid because its type '{2}' cannot be compared for equality. Only primitive, enumeration, entity, row, and reference types can be compared for equality."
            
        
        
            
            A string like "The precision '{0}' must be greater than the scale '{1}'.  "
            
        
        
            
            A string like "The REF argument must be of EntityType. The passed type is '{0}'."
            
        
        
            
            A string like "The REF argument must specify an EntityType. The type specification '{0}' represents '{1}'."
            
        
        
            
            A string like "The related end expression type '{0}' must be promotable to the 'to' end type '{1}'."
            
        
        
            
            A string like "The specified type '{0}' must be a relationship type."
            
        
        
            
            A string like "The target end '{0}' must be unique."
            
        
        
            
            A string like "The relationship source type '{0}' must be promotable to the 'from' end type '{1}'."
            
        
        
            
            A string like "'{0}' does not support type specification."
            
        
        
            
            A string like "'{0}' does not support '{1}' specification."
            
        
        
            
            A string like "The type specification has an incorrect number of arguments. The '{0}' type has {1} parameters."
            
        
        
            
            A string like "'{0}' is less than the minimum supported value."
            
        
        
            
            A string like "'{0}' is greater than the maximum supported value."
            
        
        
            
            A string like "{0} member '{1}' and {2} member '{3}' are not compatible for this operation, because they are not the same kind of type."
            
        
        
            
            A string like "The '{0}' type argument must specify an EntityType. The passed type is {1} '{2}'."
            
        
        
            
            A string like "The '{0}' type argument must specify a nominal type, The passed type is {1} '{2}'."
            
        
        
            
            A string like "Type '{0}' could not be found. Make sure that the required schemas are loaded and that the namespaces are imported correctly."
            
        
        
            
            A string like "INTERNAL ERROR: The literal type '{0}' is not supported."
            
        
        
            
            A string like "INTERNAL ERROR: The expression resolution has an unknown class '{0}'."
            
        
        
            
            A string like "The expression '{0}' is of an unsupported type. "
            
        
        
            
            A string like "The specified type is not polymorphic: '{0}'. "
            
        
        
            
            A string like "{0} requires an expression argument with a polymorphic result type that is compatible with the type argument."
            
        
        
            
            A string like "The name '{2}' was specified twice, at index {0} and index {1}. Duplicate names are not allowed."
            
        
        
            
            A string like "The ResultType of the specified expression is not compatible with the required type. The expression ResultType is '{0}' but the required type is '{1}'. "
            
        
        
            
            A string like "The EntityContainer '{0}' was not found in the destination MetadataWorkspace. "
            
        
        
            
            A string like "The EntitySet '{0}.{1}' was not found in the destination MetadataWorkspace. "
            
        
        
            
            A string like "The function '{0}' was not found in the destination MetadataWorkspace."
            
        
        
            
            A string like "A property named '{0}' is not declared by the type '{1}' from the destination MetadataWorkspace. "
            
        
        
            
            A string like "A navigation property named '{0}' is not declared by the type '{1}' from the destination MetadataWorkspace. "
            
        
        
            
            A string like "A relationship end named '{0}' is not declared by the relationship type '{1}' from the destination MetadataWorkspace."
            
        
        
            
            A string like "The destination MetadataWorkspace does not contain the type '{0}'."
            
        
        
            
            A string like "The specified parameter name is not valid: '{0}'."
            
        
        
            
            A string like "The specified expression contains multiple references to the parameter '{0}' that have different result types."
            
        
        
            
            A string like "The specified expression contains {0} metadata from a workspace other than the target workspace."
            
        
        
            
            A string like "The specified expression contains {0} metadata from a data space other than the target, '{1}'."
            
        
        
            
            A string like "No property with the name '{0}' is declared by the type '{1}'."
            
        
        
            
            A string like "The method result type '{0}' is not supported for this method argument. A method that produces an instance of a DbExpression-derived type or an anonymous type with DbExpression-derived properties is required."
            
        
        
            
            A string like "{0} requires arguments with compatible collection ResultTypes."
            
        
        
            
            A string like "{0} requires a collection argument."
            
        
        
            
            A string like "The unsigned type '{0}' cannot be promoted to a signed type."
            
        
        
            
            A string like "The requested cast is not allowed: from type '{0}' to type '{1}'."
            
        
        
            
            A string like "The specified value is not an instance of type '{0}'."
            
        
        
            
            A string like "Only enumeration or primitive types may be used as constant value types. DbConstantExpression cannot be created using an instance of type '{0}'."
            
        
        
            
            A string like "The type '{0}' does not match the EDM enumeration type '{1}' or its underlying type '{2}'."
            
        
        
            
            A string like "No function named 'Edm.{0}' having the specified argument types was found."
            
        
        
            
            A string like "The specified argument result types matched more than one overload of the function 'Edm.{0}'."
            
        
        
            
            A string like "The specified group key is not valid because equality comparison cannot be performed on its ResultType: '{0}'."
            
        
        
            
            A string like "An aggregate named '{0}' cannot be used because the specified group keys include a key with the same name."
            
        
        
            
            A string like "The specified DbCrossJoinExpression inputs contain expression bindings with a duplicate variable name, '{2}'. The first occurrence is at index {0}, the second is at index {1}. "
            
        
        
            
            A string like "A collection of '{0}' is not a valid argument for {1}."
            
        
        
            
            A string like "DbNewInstanceExpression cannot create an instance of the memberless type '{0}'."
            
        
        
            
            A string like "DbNewInstanceExpression cannot create an instance of the abstract type '{0}'."
            
        
        
            
            A string like "The specified navigation requires a navigation source of a type that is compatible with '{0}'."
            
        
        
            
            A string like "An error occurred while preparing definition of the function '{0}'. See the inner exception for details."
            
        
        
            
            A string like "Definition of the function '{0}' contains a direct or indirect reference to itself. Recursive function definitions are not supported."
            
        
        
            
            A string like "The result type '{0}' specified in the declaration of the function '{1}' does not match the result type '{2}' of the function definition."
            
        
        
            
            A string like "The function '{0}' has no defining expression. A user-defined function needs a defining expression for successful execution."
            
        
        
            
            A string like "The referenced variable '{0}' is not defined in the current scope."
            
        
        
            
            A string like "The ResultType of the referenced variable '{0}' does not match the type specified in this variable reference expression."
            
        
        
            
            A string like "The specified Op is of an unsupported type: {0}"
            
        
        
            
            A string like "Calling '{0}' when the data reader is closed is not a valid operation."
            
        
        
            
            A string like "The data reader is incompatible with the specified '{0}'. A member of the type, '{1}', does not have a corresponding column in the data reader with the same name."
            
        
        
            
            A string like "The data reader is incompatible with the function mapping '{1}'. The column with the name '{0}' does not exist."
            
        
        
            
            A string like "Cannot create a value for property '{0}' of type '{1}'. Only properties of primitive or enumeration types are supported."
            
        
        
            
            A string like "The query attempted to call '{0}' over a nested query, but '{0}' did not have the appropriate keys."
            
        
        
            
            A string like "The nested query is not supported. Operation1='{0}' Operation2='{1}'"
            
        
        
            
            A string like "No query mapping view exists for the specified set '{0}.{1}'."
            
        
        
            
            A string like "Internal .NET Framework Data Provider error {0}."
            
        
        
            
            A string like "The {0} enumeration value, {1}, is not valid."
            
        
        
            
            A string like "Buffer offset '{1}' plus the bytes available '{0}' is greater than the length of the passed in buffer."
            
        
        
            
            A string like "Data length '{0}' is less than 0."
            
        
        
            
            A string like "The parameter data type of {0} is not valid."
            
        
        
            
            A string like "Destination buffer is not valid (size of {0}) offset: {1}"
            
        
        
            
            A string like "Source buffer is not valid (size of {0}) offset: {1}"
            
        
        
            
            A string like "At dataOffset '{0}' {2} attempt is not valid.  With CommandBehavior.SequentialAccess, you may only read from dataOffset '{1}' or greater."
            
        
        
            
            A string like "Attempt to read from column ordinal '{0}' is not valid.  With CommandBehavior.SequentialAccess, you may only read from column ordinal '{1}' or greater."
            
        
        
            
            A string like "Unable to handle an unknown TypeCode {0} returned by Type {1}."
            
        
        
            
            A string like "The element in the collection parameter '{0}' cannot be null."
            
        
        
            
            A string like "The element in the collection parameter '{0}' cannot be null or empty."
            
        
        
            
            A string like "An EntityParameter with ParameterName '{0}' is not contained by this EntityParameterCollection."
            
        
        
            
            A string like "Invalid index {0} for this EntityParameterCollection with {1} elements."
            
        
        
            
            A string like "The EntityParameterCollection only accepts non-null EntityParameter type objects, not objects of type {0}."
            
        
        
            
            A string like "Format of the initialization string does not conform to specification starting at index {0}."
            
        
        
            
            A string like "Invalid parameter Size value '{0}'. The value must be greater than or equal to 0."
            
        
        
            
            A string like "Keyword not supported: '{0}'."
            
        
        
            
            A string like "Facet '{0}' must not be specified for type '{1}'."
            
        
        
            
            A string like "Annotation '{0}' is already defined in '{1}'."
            
        
        
            
            A string like "{0} does not contain a schema definition, or the XmlReader provided started at the end of the file."
            
        
        
            
            A string like "{0} is not valid."
            
        
        
            
            A string like "{1} ({0}) is not valid."
            
        
        
            
            A string like "Unrecognized schema attribute: {0}."
            
        
        
            
            A string like "Unrecognized schema element: {0}."
            
        
        
            
            A string like "The current schema element does not support text ({0})."
            
        
        
            
            A string like "Unexpected XmlNode type: {0}."
            
        
        
            
            A string like "Malformed XML. Element starting at ({0},{1}) has no closing tag."
            
        
        
            
            A string like "{1} value ({0}) was not understood."
            
        
        
            
            A string like "The EntityContainer name must be unique. An EntityContainer with the name '{0}' is already defined."
            
        
        
            
            A string like "Each type name in a schema must be unique. Type name '{0}' was already defined."
            
        
        
            
            A string like "Each property name in a type must be unique. Property name '{0}' was already defined."
            
        
        
            
            A string like "Each member name in an EntityContainer must be unique. The member '{0}' is already defined in EntityContainer '{1}'. Because EntityContainer '{2}' extends EntityContainer '{1}', you cannot have a member with the same name in EntityContainer '{2}'."
            
        
        
            
            A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined."
            
        
        
            
            A string like "{0} property is not valid. A type is already defined for this property."
            
        
        
            
            A string like "MaxLength '{0}' is not valid. Length must be between '{1}' and '{2}' for '{3}' type."
            
        
        
            
            A string like "SRID '{0}' is not valid. Its value must be between '{1}' and '{2}' for '{3}' type."
            
        
        
            
            A string like "Unknown namespace or alias ({0})."
            
        
        
            
            A string like "BaseType ({0}) is not valid. The BaseType for {1} must be a structured type."
            
        
        
            
            A string like "A property cannot be of type {0}. The property type must be an inline type, a scalar type, or an enumeration type."
            
        
        
            
            A string like "BaseType ({0}) is not valid. The BaseType for {1} must be another EntityType."
            
        
        
            
            A string like "BaseType ({0}) is not valid. The BaseType for {1} must be another ComplexType."
            
        
        
            
            A string like "{0} facet isn't allowed for properties of type {1}."
            
        
        
            
            A string like "Facet '{0}' must be specified for '{1}' typed properties."
            
        
        
            
            A string like "Default value ({0}) is not valid for Binary. Value must be of form 0x123 where 123 stands for a non-empty sequence of hex digits."
            
        
        
            
            A string like "Default value ({0}) is not valid. Expected an integer between {1} and {2}."
            
        
        
            
            A string like "Default value ({0}) is not valid for DateTime. The value must be in the form '{1}'."
            
        
        
            
            A string like "Default value ({0}) is not valid for Time. The value must be in the form '{1}'."
            
        
        
            
            A string like "Default value ({0}) is not valid for DateTimeOffset. The value must be in the form '{1}'."
            
        
        
            
            A string like "Default value ({0}) is not compatible with the facets specified for Decimal. The value must be a decimal number with scale less than or equal to {1} and precision less than or equal to {2}."
            
        
        
            
            A string like "Default value ({0}) is not valid. The value must be a floating point number between {1} and {2}."
            
        
        
            
            A string like "Default value ({0}) is not valid for GUID. The value must be enclosed in single quotes in the form 'dddddddd-dddd-dddd-dddd-dddddddddddd'."
            
        
        
            
            A string like "Default value ({0}) is not valid for Boolean. The value must be true or false."
            
        
        
            
            A string like "A member named {0} cannot be defined in class {1}. It is defined in ancestor class {2}."
            
        
        
            
            A string like "Precision and Scale combination is not valid. Precision ({0}) must be greater than or equal to Scale ({1})."
            
        
        
            
            A string like "No schema encountered with '{0}' namespace. Make sure the namespace is correct or the schema defining the namespace is specified."
            
        
        
            
            A string like "NavigationProperty is not valid. {0} is not a Relationship."
            
        
        
            
            A string like "NavigationProperty is not valid. The role {0} is not defined in Relationship {1}."
            
        
        
            
            A string like "NavigationProperty '{0}' is not valid. Type '{1}' of FromRole '{2}' in AssociationType '{3}' must exactly match with the type '{4}' on which this NavigationProperty is declared on."
            
        
        
            
            A string like "Name {0} cannot be used in type {1}. Member names cannot be the same as their enclosing type."
            
        
        
            
            A string like "Key usage is not valid. {0} cannot define keys because one of its base classes ({1}) defines keys."
            
        
        
            
            A string like "Key Part: '{0}' for type {1} is not valid. All parts of the key must be non nullable."
            
        
        
            
            A string like "Key: {0} is not valid. {1} is not a valid property name."
            
        
        
            
            A string like "EntityType '{0}' has no key defined. Define the key for this EntityType."
            
        
        
            
            A string like "Value {0} is not valid. Expected a non-negative value."
            
        
        
            
            A string like "{0} is out of range."
            
        
        
            
            A string like "URI {0} is not acceptable. URIs must be absolute or specify a file."
            
        
        
            
            A string like "Element of unexpected type {0} was found at index {1}."
            
        
        
            
            A string like "Each alias in a schema must be unique. Alias '{0}' was already used in this schema."
            
        
        
            
            A string like "The namespace '{0}' is a system namespace and is implicitly referred by every schema. You cannot specify an explicit reference to this namespace."
            
        
        
            
            A string like "'{0}' is a system namespace and cannot be used as an Alias. Use some other Alias."
            
        
        
            
            A string like "The EntitySet {0} is based on type {1} that has no keys defined."
            
        
        
            
            A string like "The EntitySet '{0}' has both a Table or Schema attribute and a DefiningQuery element. The Table and Schema attributes on EntitySet are mutually exclusive with the DefiningQuery element. Use only the Table and Schema attributes or the DefiningQuery element."
            
        
        
            
            A string like "The element {1} in namespace {0} was unexpected for the root element. The expected Schema in one of the following namespaces: {2}."
            
        
        
            
            A string like "The element {1} was unexpected for the root element. The expected Schema in one of the following namespaces: {2}."
            
        
        
            
            A string like "Each parameter name in a function must be unique. The parameter name '{0}' was already defined."
            
        
        
            
            A string like "Type '{0}' is not valid in function '{1}'. The function must have return type and parameters expressed in primitive types."
            
        
        
            
            A string like "Type '{0}' is not valid in function '{1}'. The function must have return type and parameters expressed in conceptual side primitive types."
            
        
        
            
            A string like "Return type is not valid in FunctionImport '{0}'. The FunctionImport must return a collection of scalar values or a collection of entities."
            
        
        
            
            A string like "Return type is not valid in FunctionImport '{0}'. The FunctionImport must return Scalar, Entity, or ComplexType."
            
        
        
            
            A string like "Return type is not valid in FunctionImport '{0}'. The FunctionImport can have no return type or return a collection of scalar values, a collection of complex types or a collection of entities."
            
        
        
            
            A string like "EntitySet '{0}' is not valid in FunctionImport '{1}'. Unable to find an EntitySet with the name."
            
        
        
            
            A string like "FunctionImport '{0}' returns entities but does not specify an EntitySet."
            
        
        
            
            A string like "The function import '{0}' returns entities of type '{1}' that cannot exist in the declared EntitySet '{2}'."
            
        
        
            
            A string like "The function import '{0}' specifies an entity set but does not return entities."
            
        
        
            
            A string like "The function import '{0}' specifies an entity set and an entity set path. A function import may only specify one of these values but not both."
            
        
        
            
            A string like "The function import '{0}' is declared as composable and side-effecting. A function import can be either composable or side-effecting, but not both."
            
        
        
            
            A string like "The function import '{0}' has a parameter of a collection or reference type. Parameters of a collection or reference type are not allowed in function imports."
            
        
        
            
            A string like "The function import '{0}' has a non-nullable parameter. Only nullable parameters are allowed in function imports."
            
        
        
            
            A string like "The EntitySet '{0}' with schema '{1}' and table '{2}' was already defined. Each EntitySet must refer to a unique schema and table."
            
        
        
            
            A string like "Type '{0}' is derived from the type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for sub types of base EntitySet types."
            
        
        
            
            A string like "In EntityContainer '{4}', Role '{0}' in '{1}' and '{2}' AssociationSet refers to the same EntitySet '{3}'. Make sure that if two or more AssociationSet refer to the same AssociationType, the ends must not refer to the same EntitySet."
            
        
        
            
            A string like "Relationship {0} is not valid. Multiplicity ({1}) is not valid. Multiplicity must be: '*', '0..1', or '1'."
            
        
        
            
            A string like "Each Name and PluralName in a relationship must be unique. '{0}' was already defined."
            
        
        
            
            A string like "Relationship {0} is not valid. End type ({1}) is not valid. The End type must be an EntityType."
            
        
        
            
            A string like "The parameter {0} in function '{1}' in schema '{2}' has an invalid parameter direction {3}. Valid parameter directions are: In, Out, and InOut."
            
        
        
            
            A string like "The parameter {0} in function '{1}' in schema '{2}' has an invalid parameter direction {3}. The only valid value for this parameter is In."
            
        
        
            
            A string like "The Action {0} on {1} is not recognized. Valid actions are 'None' or 'Cascade'."
            
        
        
            
            A string like "Only one {0} element is allowed per relationship."
            
        
        
            
            A string like "Type {0} is not defined in namespace {1} (Alias={2})."
            
        
        
            
            A string like "The Type {0} is not qualified with a namespace or alias. Only primitive types can be used without qualification."
            
        
        
            
            A string like "Type {0} is not defined in namespace {1}."
            
        
        
            
            A string like "The value {0} is not valid for ParameterTypeSemantics attribute. Valid values are 'ExactMatchOnly', 'AllowImplicitPromotion' or 'AllowImplicitConversion'."
            
        
        
            
            A string like "Key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element."
            
        
        
            
            A string like "An EntitySet cannot be of type {0}. The property type must be an EntityType, or an AssociationEntityType."
            
        
        
            
            A string like "A RelationshipSet cannot be of type {0}. The property type must be a Relationship."
            
        
        
            
            A string like "No EntityContainer found with name '{0}'."
            
        
        
            
            A string like "'{0}' is not a valid namespace or alias name. You must use the current schema namespace or alias to qualify the type."
            
        
        
            
            A string like "Precision '{0}' is not valid. Precision must be between '{1}' and '{2}' for '{3}' type."
            
        
        
            
            A string like "Scale '{0}' is not valid. Scale must be between '{1}' and '{2}' for '{3}' type."
            
        
        
            
            A string like "The referenced EntitySet {0} for End {1} could not be found in the containing EntityContainer."
            
        
        
            
            A string like "The End {0} does not match any Ends on the {1} type."
            
        
        
            
            A string like "The End Name {0} is already defined."
            
        
        
            
            A string like "The EntitySet for the End '{0}' in AssociationSet '{1}'was not specified, and cannot be inferred because the EntitySet is ambiguous. More than one EntitySet could be used; an explicit End element with an EntitySet attribute must be specified."
            
        
        
            
            A string like "The EntitySet for the End '{0}' in AssociationSet '{1}' was not specified, and cannot be inferred because none of the EntitySet elements are of the correct type."
            
        
        
            
            A string like "The End {0} has a different Type than the EntitySet it refers to."
            
        
        
            
            A string like "In EntityContainer '{4}', the Role for the End with the EntitySet '{0}', in the AssociationSet '{1}' was not supplied, and there were no Ends in the Relationship '{2}' that matched the type '{3}'."
            
        
        
            
            A string like "In EntityContainer '{4}', the Role for the End with the EntitySet '{0}' in the AssociationSet '{1}' was not supplied, and there is more than one End in the Relationship '{2}' that could match the type '{3}'. Provide the Role attribute to disambiguate the End."
            
        
        
            
            A string like "The Role for the End with the EntitySet {0} in the AssociationSet {1} was not supplied and the End found matches one that is already defined. Change the EntitySet to one which has a type of a different End of the Relationship."
            
        
        
            
            A string like "The Association {0} is not valid. Associations may only contain two End elements."
            
        
        
            
            A string like "There is no Role with name '{0}' defined in relationship '{1}'. Check and try again."
            
        
        
            
            A string like "Properties referred by the Principal Role {0} must be exactly identical to the key of the EntityType {1} referred to by the Principal Role in the relationship constraint for Relationship {2}. Make sure all the key properties are specified in the Principal Role."
            
        
        
            
            A string like "Properties referred by the Dependent Role {0} must be a subset of the key of the EntityType {1} referred to by the Dependent Role in the referential constraint for Relationship {2}."
            
        
        
            
            A string like "There is no property with name '{0}' defined in type referred by Role '{1}'."
            
        
        
            
            A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'."
            
        
        
            
            A string like "Multiplicity is not valid in role '{0}' in relationship '{1}'. Valid values for multiplicity for Principal Role are '0..1' or '1'."
            
        
        
            
            A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because one/all of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'."
            
        
        
            
            A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. The Lower Bound of the multiplicity must be 0."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be 1."
            
        
        
            
            A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *."
            
        
        
            
            A string like "The relationship '{0}' does not contain the required referential constraint."
            
        
        
            
            A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refers to the same Role in the relationship type."
            
        
        
            
            A string like "The value '{0}' is not a valid PrimitiveTypeKind."
            
        
        
            
            A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of enumeration or primitive type."
            
        
        
            
            A string like "The property '{0}' in EntityType '{1}' is not valid. Type '{2}' of the property maps to '{3}' and EntityKey properties that are of type '{4}' are currently not supported."
            
        
        
            
            A string like "The property '{0}' in EntityType '{1}' is not valid. EntityKey properties that are of type '{2}' are currently not supported."
            
        
        
            
            A string like "The type '{0}' is of PrimitiveTypeKind {1} which must have the facet description {2}."
            
        
        
            
            A string like "End '{0}' on relationship '{1}' cannot have operation specified since its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'."
            
        
        
            
            A string like "End '{0}' on relationship '{1}' must specify multiplicity."
            
        
        
            
            A string like "EntityContainer '{0}' cannot extend itself. Specify some other EntityContainer name."
            
        
        
            
            A string like "Argument '{0}' is invalid. The specified function is not marked as composable."
            
        
        
            
            A string like "Function '{0}' with the same {1} space type parameters already exists. Make sure that function overloads are not ambiguous."
            
        
        
            
            A string like "Function '{0}' and {1} space type '{0}' cannot have the same fully qualified name."
            
        
        
            
            A string like "A cycle was detected in the type hierarchy of '{0}'."
            
        
        
            
            A string like "The function import '{0}' cannot have ComplexType ReturnType '{1}' and an EntitySet specified at the same time."
            
        
        
            
            A string like "Nested ComplexType property '{0}' in the ReturnType '{1}' of the function '{2}' is not supported, please consider flattening the nested ComplexType property."
            
        
        
            
            A string like "Facets cannot be specified for non-scalar type '{0}'."
            
        
        
            
            A string like "ReferenceType element can only refer to an EntityType. '{0}' is not declared as an EntityType."
            
        
        
            
            A string like "The '{0}' namespace is reserved for the Entity Framework code generation."
            
        
        
            
            A string like "The value '{0}' of the enumeration type member '{1}' cannot be converted to '{2}' type."
            
        
        
            
            A string like "'{0}' is not a valid type for type filtering operations. Type filtering is only valid on entity types and complex types."
            
        
        
            
            A string like "The specified query name '{0}' is not valid. Query names must begin with a letter and can only contain letters, numbers, and underscores."
            
        
        
            
            A string like "The array type '{0}' cannot be initialized in a query result. Consider using '{1}' instead."
            
        
        
        
            
            A string like "The specified parameter name '{0}' is not valid. Parameter names must begin with a letter and can only contain letters, numbers, and underscores."
            
        
        
            
            A string like "The specified parameter type '{0}' is not valid. Only scalar types, such as System.Int32, System.Decimal, System.DateTime, and System.Guid, are supported."
            
        
        
            
            A string like "A parameter named '{0}' was not found in the parameter collection."
            
        
        
            
            A string like "A parameter '{0}' already exists in the parameter collection. Parameters must be unique in the parameter collection."
            
        
        
            
            A string like "A parameter named '{0}' already exists in the parameter collection. Parameter names must be unique in the parameter collection."
            
        
        
            
            A string like "The provider returned null for the informationType '{0}'."
            
        
        
            
            A string like "A specified Include path is not valid. The EntityType '{0}' does not declare a navigation property with the name '{1}'."
            
        
        
            
            A string like "The property '{0}' on type '{1}' cannot be set because the collection is already set to an EntityCollection."
            
        
        
            
            A string like "There is no metadata information available for the proxy type for '{0}'. This exception can be caused when a proxy type for an entity is detached from an ObjectContext. See InnerException for details."
            
        
        
            
            A string like "There is already a generated proxy type for the object layer type '{0}'. This occurs when the same object layer type is mapped by two or more different models in an AppDomain."
            
        
        
            
            A string like "No Entity Framework provider found for the ADO.NET provider with invariant name '{0}'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information."
            
        
        
            
            A string like "The Entity Framework provider type '{0}' registered in the application config file for the ADO.NET provider with invariant name '{1}' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information."
            
        
        
            
            A string like "The Entity Framework provider type '{0}' did not have a static property or field named 'Instance'. Entity Framework providers must declare a static property or field named 'Instance' that returns the singleton instance of the provider."
            
        
        
            
            A string like "The 'Instance' member of the Entity Framework provider type '{0}' did not return an object that inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. Entity Framework providers must inherit from this class and the 'Instance' member must return the singleton instance of the provider. This may be because the provider does not support Entity Framework 6 or later; see http://go.microsoft.com/fwlink/?LinkId=260882 for more information."
            
        
        
            
            A string like "The provider for invariant name '{0}' is specified multiple times in the application configuration. The invariant name must be unique for each configured provider."
            
        
        
            
            A string like "No name was passed to the IDbDependencyResolver.GetService method. The provider invariant name must be supplied when attempting to resolve a '{0}' dependency."
            
        
        
            
            A string like "No '{0}' instance was passed to the IDbDependencyResolver.GetService method. A '{0}' instance must be supplied when attempting to resolve an '{1}' dependency."
            
        
        
            
            A string like "The default DbConfiguration instance was used by the Entity Framework before an attempt was made to set an instance of '{0}'. The '{0}' instance must be set at application start before using any Entity Framework features or must be registered in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "An instance of '{0}' cannot be set because an instance of '{1}' is already being used. Only one DbConfiguration type can be used in an application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "The default DbConfiguration instance was used by the Entity Framework before the '{0}' type was discovered. An instance of '{0}' must be set at application start before using any Entity Framework features or must be registered in the application's config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "An instance of '{0}' was set but this type was not discovered in the same assembly as the '{1}' context. Either put the DbConfiguration type in the same assembly as the DbContext type, use DbConfigurationTypeAttribute on the DbContext type to specify the DbConfiguration type, or set the DbConfiguration type in the config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "The assembly '{0}' contains more than one type derived from '{1}'. Either use DbConfigurationTypeAttribute on the DbContext type to specify the DbConfiguration type, define the DbConfiguration type to use in the application's config file, or ensure that the assembly contains at most one type derived from '{1}'."
            
        
        
            
            A string like "The type '{0}' does not inherit from '{1}'. Migrations configuration types must extend from '{1}'."
            
        
        
            
            A string like "The type '{0}' does not inherit from '{1}'. Migrations SQL generator implementations must extend from '{1}'."
            
        
        
            
            A string like "The type '{0}' does not inherit from '{1}'. Entity Framework code-based configuration classes must inherit from '{1}'."
            
        
        
            
            A string like "The DbConfiguration type '{0}' specified in the application config file could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "The DbConfiguration type '{0}' specified in the DbConfigurationTypeAttribute constructor could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "Failed to create instance of type '{0}'. The type must have a public parameterless constructor."
            
        
        
            
            A string like "Failed to create instance of type '{0}'. The type must not be abstract."
            
        
        
            
            A string like "Failed to create instance of type '{0}'. The type must not be generic."
            
        
        
            
            A string like "The call to DbConfiguration.{0} failed because the configuration is locked. The protected methods and properties of DbConfiguration are intended to be called only from the constructor of a class derived from DbConfiguration and cannot be called after the DbConfiguration object is in use."
            
        
        
            
            A string like "To enable migrations for '{0}', use Enable-Migrations -ContextTypeName {0}."
            
        
        
            
            A string like "More than one context type was found in the assembly '{0}'."
            
        
        
            
            A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context."
            
        
        
            
            A string like "No context type was found in the assembly '{0}'."
            
        
        
            
            A string like "The context type '{0}' was not found in the assembly '{1}'."
            
        
        
            
            A string like "The source IQueryable doesn't implement IDbAsyncEnumerable{0}. Only sources that implement IDbAsyncEnumerable can be used for Entity Framework asynchronous operations. For more details see http://go.microsoft.com/fwlink/?LinkId=287068."
            
        
        
            
            A string like "An instance of '{0}' could not be created because it does not define a parameterless constructor. Every type derived from EntityTypeConfiguration in an assembly must have a parameterless constructor when using AddFromAssembly to add Code First configurations from that assembly."
            
        
        
            
            A string like "The '{0}' collection used in the call to '{1}' must contain at least one element."
            
        
        
            
            A string like "The type '{0}' does not inherit from DbContext. The DbMigrationsConfiguration.ContextType property must be set to a type that inherits from DbContext."
            
        
        
            
            A string like "The 'MigrationsDirectory' property of 'DbMigrationsConfiguration' was set to the absolute path '{0}'. The migrations directory must be set to a relative path for a sub-directory under the Visual Studio project root."
            
        
        
            
            A string like "The type '{0}' cannot be used to filter properties. Only scalar types, string, and byte[] are supported."
            
        
        
            
            A string like "The property '{0}' cannot be configured. Only scalar properties can be configured using the Property method."
            
        
        
            
            A string like "Unable to generate an explicit migration because the following explicit migrations are pending: [{0}]. Apply the pending explicit migrations before attempting to generate a new explicit migration."
            
        
        
            
            A string like "The configured execution strategy '{0}' does not support user initiated transactions. See http://go.microsoft.com/fwlink/?LinkId=309381 for additional information."
            
        
        
            
            A string like "The minimum delay of '{0}' must be less than or equal to the maximum delay of '{1}'."
            
        
        
            
            A string like "The delay '{0}' is invalid. Delay must be greater than or equal to zero."
            
        
        
            
            A string like "Maximum number of retries ({0}) exceeded while executing database operations with '{1}'. See inner exception for the most recent failure."
            
        
        
            
            A string like "The base type '{0}' must be mapped to functions because its derived type '{1}' is mapped to functions. When mapping an inheritance hierarchy to functions, ensure that the root type of the hierarchy is also mapped to functions."
            
        
        
            
            A string like "'{0}' is not a valid resource name."
            
        
        
            
            A string like "A parameter binding to the property '{0}' was not found on the modification function '{1}'. Ensure that the parameter is valid for this modification operation and that it is not database generated."
            
        
        
            
            A string like "The current migration SQL generator ({0}) is unable to generate SQL for operations of type '{1}'. Call SetSqlGenerator on your migrations configuration class to use a different SQL generator. To create a custom SQL generator that can handle this type of operation, add a new class that derives from {0} and override Generate(MigrationOperation)."
            
        
        
            
            A string like "An original value parameter binding to the property '{0}' was not found on the modification function '{1}'. Ensure that the parameter is a concurrency token."
            
        
        
            
            A string like "A result binding for the property '{0}' was not found on the modification function '{1}'. Ensure that the property is database generated."
            
        
        
            
            A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting modification function mapping information."
            
        
        
            
            A string like "Streaming queries are not supported by the configured execution strategy '{0}'. See http://go.microsoft.com/fwlink/?LinkId=309381 for additional information."
            
        
        
            
            A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType or an EnumType."
            
        
        
            
            A string like "Argument '{0}' is not valid. The specified mapping already exists or property paths are empty."
            
        
        
            
            A string like "Could not apply auto-migration '{0}' because it includes modification function creation operations. When using auto-migrations, modification function creation operations are only supported when migrating to the current model."
            
        
        
            
            A string like "Calling '{0}' is not valid for type '{1}' because it is configured as a complex type. '{0}' is only allowed when configuring entity types."
            
        
        
            
            A string like "Calling '{0}' is not valid for type '{1}' because it has been excluded from the model."
            
        
        
            
            A string like "Attempt to add member {0} to structural type {1} failed. Member has DataSpace {2}, structural type has DataSpace {3}. They must be the same."
            
        
        
        
            
            A string like "The entity type '{0}' on which the navigation property '{1}' is declared is not the same as the type '{2}' referred to by the inverse navigation property '{3}'."
            
        
        
            
            A string like "The entity type '{0}' to which the navigation property '{1}' refers is not the same as the type '{2}' on which the inverse navigation property '{3}' is declared."
            
        
        
            
            A string like "Duplicate parameter name: {0}"
            
        
        
            
            A string like "-- Failed in {0} ms with error: {1}{2}"
            
        
        
            
            A string like "-- Canceled in {0} ms{1}"
            
        
        
            
            A string like "-- Completed in {0} ms with result: {1}{2}"
            
        
        
            
            A string like "-- Executing asynchronously at {0}{1}"
            
        
        
            
            A string like "-- Executing at {0}{1}"
            
        
        
            
            A string like "The type '{0}' passed to DbConfiguration.LoadConfiguration does not derive from DbContext. Only DbContext types can be used for DbConfiguration discovery."
            
        
        
            
            A string like "An error occurred while attempting to generate the body SQL of the stored procedure '{0}' for entity type '{1}'. This can happen if the entity type has both a self-referencing association and a store-generated key. See the inner exception for details."
            
        
        
            
            A string like "Multiplicity '{0}' is not compatible with the property '{1}' of type '{2}'."
            
        
        
            
            A string like "Multiplicity '{0}' is not valid. Multiplicity must be: '*', '0..1', or '1'."
            
        
        
            
            A string like "The property '{0}' of type '{1}' cannot be marked as optional because it cannot be assigned a null value."
            
        
        
            
            A string like "The member '{0}' has not been implemented on type '{1}' which inherits from '{2}'. Test doubles for '{2}' must provide implementations of methods and properties that are used."
            
        
        
            
            A string like "The property '{0}' on type '{1}' cannot be configured as a navigation property because type '{2}' was configured as a complex type."
            
        
        
            
            A string like "The specified convention of type '{0}' is not a valid convention. Conventions must derive from Convention or implement IStoreConvention or IConceptualConvention."
            
        
        
        
            
            A string like "Scale cannot be configured for the DateTime property '{0}', only precision can be configured for DateTime properties."
            
        
        
            
            A string like "Only precision was configured for Decimal property '{0}'. Both precision and scale must be configured for Decimal properties."
            
        
        
            
            A string like "Precision without scale has been configured for property '{0}'. Precision without scale can only be configured for DateTime properties."
            
        
        
            
            A string like "Precision and scale have been configured for property '{0}'. Precision and scale can only be configured for Decimal properties."
            
        
        
            
            A string like "The property '{0}' is not a Byte array. IsRowVersion can only be configured for Byte array properties."
            
        
        
            
            A string like "The property '{0}' is not a String. IsUnicode can only be configured on String properties."
            
        
        
            
            A string like "The property '{0}' is not a String or Byte array. Length can only be configured for String and Byte array properties."
            
        
        
            
            A string like "AutomaticMigration"
            
        
        
            
            A string like "BootstrapMigration"
            
        
        
            
            A string like "InitialCreate"
            
        
        
            
            A string like "Automatic migration was not applied because it would result in data loss."
            
        
        
            
            A string like "Running Seed method."
            
        
        
            
            A string like "No pending explicit migrations."
            
        
        
            
            A string like "Explicit"
            
        
        
            
            A string like "Upgrading history table."
            
        
        
            
            A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)."
            
        
        
            
            A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration."
            
        
        
            
            A string like "Scripting the downgrade between two specified migrations is not supported."
            
        
        
            
            A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it."
            
        
        
            
            A string like "One or more validation errors were detected during model generation:"
            
        
        
            
            A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported."
            
        
        
            
            A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details."
            
        
        
            
            A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct."
            
        
        
            
            A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details."
            
        
        
            
            A string like "The set of property value names is read-only."
            
        
        
            
            A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type."
            
        
        
            
            A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility."
            
        
        
            
            A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations."
            
        
        
            
            A string like "The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe."
            
        
        
            
            A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)."
            
        
        
            
            A string like "The operation cannot be completed because the DbContext has been disposed."
            
        
        
            
            A string like "The provider factory returned a null connection."
            
        
        
            
            A string like "The DbConnectionFactory instance returned a null connection."
            
        
        
            
            A string like "The number of primary key values passed must match number of primary key values defined on the entity."
            
        
        
            
            A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details."
            
        
        
            
            A string like "Multiple entities were found in the Added state that match the given primary key values."
            
        
        
            
            A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()."
            
        
        
            
            A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties."
            
        
        
            
            A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection."
            
        
        
            
            A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used."
            
        
        
            
            A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."
            
        
        
            
            A string like "An exception occurred while initializing the database. See the InnerException for details."
            
        
        
            
            A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
            
        
        
            
            A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
            
        
        
            
            A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception."
            
        
        
            
            A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method."
            
        
        
            
            A string like "NavigationProperty is not valid. The FromRole and ToRole are the same."
            
        
        
            
            A string like "OnDelete can be specified on only one End of an EdmAssociation."
            
        
        
            
            A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical."
            
        
        
            
            A string like "Composable function imports are not supported for version 1.0 or 2.0 EDM Models."
            
        
        
            
            A string like "The name is missing or not valid."
            
        
        
            
            A string like "AssociationEnd must not be null."
            
        
        
            
            A string like "DependentEnd must not be null."
            
        
        
            
            A string like "ToProperties must not be empty."
            
        
        
            
            A string like "Association must not be null."
            
        
        
            
            A string like "ResultEnd must not be null."
            
        
        
            
            A string like "EntityType must not be null."
            
        
        
            
            A string like "ElementType must not be null."
            
        
        
            
            A string like "ElementType must not be null."
            
        
        
            
            A string like "SourceSet must not be null."
            
        
        
            
            A string like "TargetSet must not be null."
            
        
        
            
            A string like "The type is not a valid EdmTypeReference."
            
        
        
            
            A string like "The data space of the item does not match the data space of the EdmModel."
            
        
        
            
            A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer."
            
        
        
            
            A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            A string like "MinLengthAttribute must have a Length value that is zero or greater."
            
        
        
            
            A string like "The connection can not be overridden because this context was created from an existing ObjectContext."
            
        
        
            
            A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection."
            
        
        
            
            A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection."
            
        
        
            
            A string like "The key-value pairs that define an EntityKey cannot be null or empty."
            
        
        
            
            A string like "The requested operation could not be completed, because a null EntityKey property value was returned by the object."
            
        
        
            
            A string like "An EntityKey must have at least one key name and value."
            
        
        
            
            A string like "The EntitySet name cannot be null or empty, and must be qualified with an EntityContainer name that is not null or empty."
            
        
        
            
            A string like "The EntityKey does not contain a valid EntitySet name."
            
        
        
            
            A string like "EntityKey values cannot be changed once they are set."
            
        
        
            
            A string like "The EntityType specified for the metadata parameter is not compatible with the specified EntitySet. "
            
        
        
            
            A string like "The type of the TypeUsage object specified for the metadata parameter is not compatible with the type to which an EdmMember belongs."
            
        
        
            
            A string like "The specified value is not a string."
            
        
        
            
            A string like "The EntityCommand.CommandText property has not been initialized."
            
        
        
            
            A string like "A connection string must be set on the connection before you attempt this operation."
            
        
        
            
            A string like "The connection is not open."
            
        
        
            
            A string like "Cannot perform the operation because the command does not have a connection."
            
        
        
            
            A string like "Cannot perform the operation because the adapter does not have a connection."
            
        
        
            
            A string like "Cannot perform the update operation because the adapter's connection is not open."
            
        
        
            
            A string like "The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid."
            
        
        
            
            A string like "The command is still associated with an open data reader. Changes cannot be made on this command and this command cannot be executed until the data reader is closed."
            
        
        
            
            A string like "No modifications to connection are permitted after the metadata has been registered either by opening a connection or constructing the connection with a MetadataWorkspace."
            
        
        
            
            A string like "closed"
            
        
        
            
            A string like "broken"
            
        
        
            
            A string like "This store command cannot be cloned because the underlying store provider does not support cloning."
            
        
        
            
            A string like "The only EntityCommand.CommandType values supported by the EntityClient provider are Text and StoredProcedure."
            
        
        
            
            A string like "An error occurred while closing the provider connection. See the inner exception for details."
            
        
        
            
            A string like "An error occurred while starting a transaction on the provider connection. See the inner exception for details."
            
        
        
            
            A string like "Other keywords are not allowed when the 'Name' keyword is specified."
            
        
        
            
            A string like "An error occurred while preparing the command definition. See the inner exception for details."
            
        
        
            
            A string like "An error occurred while executing the command definition. See the inner exception for details."
            
        
        
            
            A string like "An error occurred while executing the command. See the inner exception for details."
            
        
        
            
            A string like "An error occurred while reading from the store provider's data reader. See the inner exception for details."
            
        
        
            
            A string like "The data reader returned by the store data provider does not have enough columns for the query requested."
            
        
        
            
            A string like "One of the parameters in the EntityParameterCollection is null or empty. A name must begin with a letter and contain only letters, numbers, and underscores. "
            
        
        
            
            A string like "The correct DbType cannot be inferred based on the value that has been set for the EntityParameter.DbType property."
            
        
        
            
            A string like "The connection is already in a transaction and cannot participate in another transaction. EntityClient does not support parallel transactions."
            
        
        
            
            A string like "The transaction is either not associated with the current connection or has been completed."
            
        
        
            
            A string like "The update operation cannot be performed, because the adapter's connection is not associated with a valid store connection."
            
        
        
            
            A string like "The command could not be executed, because the connection metadata is incompatible with the command metadata."
            
        
        
            
            A string like "The underlying provider failed."
            
        
        
            
            A string like "EntityCommand.CommandText was not specified for the StoredProcedure EntityCommand."
            
        
        
            
            A string like "The value of EntityCommand.CommandText is not valid for a StoredProcedure command. The EntityCommand.CommandText value must be of the form 'ContainerName.FunctionImportName'."
            
        
        
            
            A string like "EntityClient cannot be used to create a command definition from a store command tree."
            
        
        
            
            A string like "This EntityCommand is based on a prepared command definition and cannot be re-prepared. To create an equivalent command with different parameters, create a new command definition and call its CreateCommand method."
            
        
        
            
            A string like "CommandText property value cannot be retrieved because the CommandTree property is not null."
            
        
        
            
            A string like "Cannot set the CommandText property value because the CommandTree property is not null."
            
        
        
            
            A string like "CommandTree property value cannot be retrieved because the CommandText property is not null."
            
        
        
            
            A string like "Cannot set the CommandTree property value because the CommandText property is not null."
            
        
        
            
            A string like "LINQ to Entities query expressions can only be constructed from instances that implement the IQueryable interface."
            
        
        
            
            A string like "Only parameterless constructors and initializers are supported in LINQ to Entities."
            
        
        
            
            A string like "Only list initializer items with a single element are supported in LINQ to Entities."
            
        
        
            
            A string like "In constructors and initializers, only property or field parameter bindings are supported in LINQ to Entities."
            
        
        
            
            A string like "The ThenBy method must follow either the OrderBy method or another call to the ThenBy method."
            
        
        
            
            A string like "This method is not supported against a materialized query result."
            
        
        
            
            A string like "The specified LINQ expression contains references to queries that are associated with different contexts."
            
        
        
            
            A string like "Casting to Decimal is not supported in LINQ to Entities queries, because the required precision and scale information cannot be inferred."
            
        
        
            
            A string like "Calling the CreateOrderedEnumerable generic method on the result of a LINQ to Entities query is not supported."
            
        
        
            
            A string like "The method 'Skip' is only supported for sorted input in LINQ to Entities. The method 'OrderBy' must be called before the method 'Skip'."
            
        
        
            
            A string like "Property indexers are not supported in LINQ to Entities."
            
        
        
            
            A string like "Anonymous type"
            
        
        
            
            A string like "Closure type"
            
        
        
            
            A string like "The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead."
            
        
        
            
            A string like "The methods 'Single' and 'SingleOrDefault' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead."
            
        
        
            
            A string like "The method 'Include' is only supported by LINQ to Entities when the argument is a string constant."
            
        
        
            
            A string like "The method 'MergeAs' is only supported by LINQ to Entities when the argument is a MergeOption constant."
            
        
        
            
            A string like "This method supports the LINQ to Entities infrastructure and is not intended to be used directly from your code."
            
        
        
            
            A string like "A cycle was detected in a LINQ expression."
            
        
        
            
            A string like "This function can only be invoked from LINQ to Entities."
            
        
        
            
            A string like "Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values."
            
        
        
            
            A string like "An error occurred while updating the entries. See the inner exception for details."
            
        
        
            
            A string like "A value shared across entities or associations is generated in more than one location. Check that mapping does not split an EntityKey to multiple store-generated columns."
            
        
        
            
            A string like "The entity client's MetadataWorkspace differs from the workspace referenced by the state manager."
            
        
        
            
            A string like "Referential integrity constraint violation. A Dependent Role has multiple principals with different values."
            
        
        
            
            A string like "Error retrieving values from ObjectStateEntry. See inner exception for details."
            
        
        
            
            A string like "Circular relationships with referential integrity constraints detected."
            
        
        
            
            A string like "Invalid data encountered. A required relationship is missing. Examine StateEntries to determine the source of the constraint violation."
            
        
        
            
            A string like "Conflicting changes detected. This may happen when trying to insert multiple entities with the same key."
            
        
        
            
            A string like "Set"
            
        
        
            
            A string like "NULL"
            
        
        
            
            A string like ", "
            
        
        
            
            A string like "entities"
            
        
        
            
            A string like "rows"
            
        
        
            
            A string like "NOT_NULL"
            
        
        
            
            A string like "ERROR"
            
        
        
            
            A string like "Entity"
            
        
        
            
            A string like "An entity is mapped to different rows within the same table. Ensure these two mapping fragments do not map two groups of entities with identical keys to two distinct groups of rows."
            
        
        
            
            A string like "Two entities with identical keys are mapped to different rows within the same table. Ensure these two mapping fragments do not map two groups of entities with overlapping keys to two distinct groups of rows."
            
        
        
            
            A string like "An entity is mapped to different rows within the same table. Ensure these two mapping fragments do not map two groups of entities with overlapping keys to two distinct groups of rows."
            
        
        
            
            A string like "Two entities with possibly identical keys are mapped to different rows within the same table. Ensure these two mapping fragments do not map two unrelated EntitySets to two distinct groups of rows."
            
        
        
            
            A string like "Two entities with different keys are mapped to the same row. Ensure these two mapping fragments do not map two groups of entities with different keys to the same group of rows."
            
        
        
            
            A string like "Two entities with different keys are mapped to the same row. Ensure these two mapping fragments do not map two EntitySets with overlapping keys to the same group of rows."
            
        
        
            
            A string like "Two entities with different keys are mapped to the same row. Ensure these two mapping fragments do not map two groups of entities with overlapping keys to the same group of rows."
            
        
        
            
            A string like "Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments do not map two unrelated EntitySets to the same group of rows."
            
        
        
            
            A string like "Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns."
            
        
        
            
            A string like "Two entities with different keys are mapped to the same row. Ensure these two mapping fragments do not map two groups of entities with different keys to two overlapping groups of rows."
            
        
        
            
            A string like "Two rows with different primary keys are mapped to the same entity. Ensure these two mapping fragments do not map two groups of entities with identical keys to two overlapping groups of rows."
            
        
        
            
            A string like "Two rows with different primary keys are mapped to two entities that carry identical keys through a referential integrity constraint. Ensure these two mapping fragments do not map two EntitySets with identical keys to two overlapping groups of rows."
            
        
        
            
            A string like "An entity from one EntitySet is mapped to a row that is also mapped to an entity from another EntitySet with possibly different key. Ensure these two mapping fragments do not map two unrelated EntitySets to two overlapping groups of rows."
            
        
        
            
            A string like "Mapping fragments cannot be joined. Ensure every mapping fragment maps a key on which it should be joined with one of the other mapping fragments."
            
        
        
            
            A string like "Item has an empty identity."
            
        
        
            
            A string like "CollectionType has a null type usage."
            
        
        
            
            A string like "The facet object has null for the FacetType. Null is not valid for this property."
            
        
        
            
            A string like "The member has null for the DeclaringType. Null is not valid for this property."
            
        
        
            
            A string like "The member has null for the MemberTypeUsage. Null is not valid for this property."
            
        
        
            
            A string like "The item property has null for TypeUsage. Null is not valid for this property."
            
        
        
            
            A string like "The RefType has null for EntityType. Null is not valid for this property."
            
        
        
            
            A string like "The type usage object has null for EdmType. Null is not valid for this property."
            
        
        
            
            A string like "A member of the same name is already defined in a BaseType."
            
        
        
            
            A string like "CollectionType objects cannot have a base type."
            
        
        
            
            A string like "Reference types cannot have a base type."
            
        
        
            
            A string like "The type does not have a name."
            
        
        
            
            A string like "The type does not have a namespace."
            
        
        
            
            A string like "The facet does not have a name."
            
        
        
            
            A string like "The member does not have a name."
            
        
        
            
            A string like "The metadata property does not have a name."
            
        
        
            
            A string like "The underlying type of CLR enumeration type does not match the underlying type of EDM enumeration type."
            
        
        
            
            A string like "The following information may be useful in resolving the previous error:"
            
        
        
            
            A string like "Inconsistent metadata error"
            
        
        
            
            A string like "The operation cannot be performed because the collection is read only."
            
        
        
            
            A string like "The operation cannot be performed because the item is read only."
            
        
        
            
            A string like "The EntitySet already has an EntityContainer, it cannot be added to this collection."
            
        
        
            
            A string like "At least one of the input paths is not valid because either it is too long or it has incorrect format."
            
        
        
            
            A string like "Unable to determine application context. The ASP.NET application path could not be resolved."
            
        
        
            
            A string like "The wildcard assembly enumerator function returned null."
            
        
        
            
            A string like "Unable to load the specified metadata resource."
            
        
        
            
            A string like "At least one SSDL artifact is required for creating StoreItemCollection."
            
        
        
            
            A string like "The specified metadata path is not valid. A valid path must be either an existing directory, an existing file with extension '.csdl', '.ssdl', or '.msl', or a URI that identifies an embedded resource."
            
        
        
            
            A string like "Entity connections are not supported; only storage connections are supported."
            
        
        
            
            A string like "The PrimitiveType is not a string type."
            
        
        
            
            A string like "The PrimitiveType is not a binary type."
            
        
        
            
            A string like "The PrimitiveType is not a DateTime type."
            
        
        
            
            A string like "The given primitive type is not a DateTimeOffset type."
            
        
        
            
            A string like "The given primitive type is not a Time type."
            
        
        
            
            A string like "The PrimitiveType is not a Decimal type."
            
        
        
            
            A string like "Destination array was not long enough. Check arrayIndex and length, and the array's lower bounds."
            
        
        
            
            A string like "The storage provider manifest could not be obtained."
            
        
        
            
            A string like "Could not retrieve the provider manifest."
            
        
        
            
            A string like "MaxLength must be greater than zero."
            
        
        
            
            A string like "The argument to the function must be a conceptual schema type."
            
        
        
            
            A string like "The argument to the function must be an CLR type."
            
        
        
            
            A string like ""Mapping not valid error""
            
        
        
            
            A string like "Content in MSL is not valid."
            
        
        
            
            A string like "AssociationType Name should be specified when providing a function mapping or End property mapping."
            
        
        
            
            A string like "A table mapping element is expected but not present."
            
        
        
            
            A string like "Expecting only EntitySetMapping, AssociationSetMapping, or FunctionImportMapping elements."
            
        
        
            
            A string like "Both conceptual model and column members cannot be specified for condition mapping."
            
        
        
            
            A string like "Either conceptual model or Column Members must  be specified for condition mapping."
            
        
        
            
            A string like "Both Value and IsNull attributes cannot be specified for condition mapping."
            
        
        
            
            A string like "Either Value or IsNullAttribute has to be specified for condition mapping."
            
        
        
            
            A string like "Conditions are not supported on complex-valued members."
            
        
        
            
            A string like "Only EntityTypeMapping and QueryView elements are allowed when the EntityType name is not specified on the EntitySetMapping."
            
        
        
            
            A string like "The value specified for the condition is not compatible with the type of the member."
            
        
        
            
            A string like "The first QueryView must not be type-specific. Try removing the TypeName property."
            
        
        
            
            A string like "The specified DbMappingViewCacheFactory has failed to create a DbMappingViewCache instance."
            
        
        
            
            A string like "MappingViewCacheFactory is already set and cannot be modified."
            
        
        
            
            A string like "Unclosed parenthesis in IsOfType declaration."
            
        
        
            
            A string like "An EntityType Mapping containing a function mapping cannot specify the TableName property."
            
        
        
            
            A string like "An EntityType Mapping function binding cannot map multiple types. Function mappings may be specified only for EntityType mappings for single types -- do not use the 'IsTypeOf' modifier or specify multiple types."
            
        
        
            
            A string like "Cannot determine the version for the current parameter binding."
            
        
        
            
            A string like "This function mapping can only contain bindings to 'original' property versions."
            
        
        
            
            A string like "This function mapping can only contain bindings to 'current' property versions."
            
        
        
            
            A string like "MakeColumnsDistinct flag can only be placed within a container that does not generate update views. Mark GenerateUpdateViews attribute to 'false' within EntityContainerMapping."
            
        
        
            
            A string like "The version of EdmItemCollection must match the version of StoreItemCollection."
            
        
        
            
            A string like "The version of the loaded mapping files must be the same as the version of loaded EdmItemCollection and StoreItemCollection."
            
        
        
            
            A string like "An entity object cannot be referenced by multiple instances of IEntityChangeTracker."
            
        
        
            
            A string like "This complex object is already attached to another object."
            
        
        
            
            A string like "This ObjectStateEntry does not have original values. Objects in an added or detached state cannot have original values. "
            
        
        
            
            A string like "This ObjectStateEntry does not have current values. Objects in a deleted or detached state cannot have current values."
            
        
        
            
            A string like "The object is in a detached state. This operation cannot be performed on an ObjectStateEntry when the object is detached."
            
        
        
            
            A string like "The ObjectStateEntry is a relationship entry. The current and original values of relationship entries cannot be modified."
            
        
        
            
            A string like "The ObjectStateEntry is a relationship entry. The state of relationship entries cannot be modified."
            
        
        
            
            A string like "The object is in a detached or deleted state. An ObjectStateEntry in this state cannot be modified."
            
        
        
            
            A string like "The EntityKey property can only be set when the current value of the property is null."
            
        
        
            
            A string like "The ObjectStateEntry is a key entry and its current and original values are not accessible."
            
        
        
            
            A string like "The ObjectStateEntry is a key entry and its state cannot be modified."
            
        
        
            
            A string like "The ObjectStateEntry is a key entry. Delete cannot be called on key entries."
            
        
        
            
            A string like "EntityMemberChanged or EntityComplexMemberChanged was called without first calling EntityMemberChanging or EntityComplexMemberChanging on the same change tracker with the same property name. For information about properly reporting changes, see the Entity Framework documentation. "
            
        
        
            
            A string like "A RelationshipManager object cannot be returned for this ObjectStateEntry instance. Only an ObjectStateEntry that represents an entity has an associated RelationshipManager."
            
        
        
            
            A string like "The value for the complex property could not be set. Complex properties must be set to an object that implements IExtendedDataRecord."
            
        
        
            
            A string like "The supplied EntityKey does not have a corresponding entry in the ObjectStateManager."
            
        
        
            
            A string like "An object with a key that matches the key of the supplied object could not be found in the ObjectStateManager. Verify that the key values of the supplied object match the key values of the object to which changes must be applied."
            
        
        
            
            A string like "Objects in a detached state do not exist in the ObjectStateManager."
            
        
        
            
            A string like "An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key."
            
        
        
            
            A string like "AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges."
            
        
        
            
            A string like "The value of a property that is part of an object's key does not match the corresponding property value stored in the ObjectContext.  This can occur if properties that are part of the key return inconsistent or incorrect values or if DetectChanges is not called after changes are made to a property that is part of the key."
            
        
        
            
            A string like "The object cannot be attached because the value of a property that is a part of the EntityKey does not match the corresponding value in the EntityKey."
            
        
        
            
            A string like "The object's EntityKey value is not valid."
            
        
        
            
            A string like "AcceptChanges cannot continue because the object's EntityKey value is null or is not a temporary key. This can happen when the EntityKey property is modified while the object is in an added state."
            
        
        
            
            A string like "The object cannot be added to the object context. The object's EntityKey has an ObjectStateEntry that indicates that the object is already participating in a different relationship."
            
        
        
            
            A string like "A RelationshipManager cannot be returned for this object. A RelationshipManager can only be returned for objects that are either tracked by the ObjectStateManager or that implement IEntityWithRelationships."
            
        
        
            
            A string like "Cannot change relationship's state to the state other than deleted or detached if the source or target entity is in the deleted state."
            
        
        
            
            A string like "Cannot change relationship's state to the state other than added or detached if the source or target entity is in the added state."
            
        
        
            
            A string like "Cannot change state of a relationship if one of the ends of the relationship is a KeyEntry."
            
        
        
            
            A string like "The ChangeRelationshipState method is not supported for relationships that are defined by using foreign-key values."
            
        
        
            
            A string like "The object state cannot be changed. This exception may result from one or more of the primary key properties being set to null. Non-Added objects cannot have null primary key values.  See inner exception for details."
            
        
        
            
            A string like "The refresh attempt has failed because an unexpected entity was returned by the data source."
            
        
        
            
            A string like "The supplied connection string is not valid, because it contains insufficient mapping or metadata information."
            
        
        
            
            A string like "The supplied connection is not valid because it contains insufficient mapping or metadata information."
            
        
        
            
            A string like "An object with the specified EntityKey value could not be found."
            
        
        
            
            A string like "The object cannot be deleted because it was not found in the ObjectStateManager."
            
        
        
            
            A string like "The object cannot be detached because it is not attached to the ObjectStateManager."
            
        
        
            
            A string like "The specified CommandTimeout value is not valid. It must be a positive number."
            
        
        
            
            A string like "The object cannot be attached because it is already in the object context. An object can only be reattached when it is in an unchanged state. "
            
        
        
            
            A string like "An object with a null EntityKey value cannot be attached to an object context."
            
        
        
            
            A string like "An object with a temporary EntityKey value cannot be attached to an object context."
            
        
        
            
            A string like "The EntitySet name could not be determined. To attach an object, supply a valid EntitySet name and make sure that the object has a valid EntityKey."
            
        
        
            
            A string like "The EntityContainer name could not be determined. The provided EntitySet name must be qualified by the EntityContainer name, such as 'EntityContainerName.EntitySetName', or the DefaultContainerName property must be set for the ObjectContext."
            
        
        
            
            A string like "The DefaultContainerName property has already been set for this ObjectContext. This property cannot be changed after it has been set. "
            
        
        
            
            A string like "The provided EntitySet name must be qualified by the EntityContainer name, such as 'EntityContainerName.EntitySetName', or the DefaultContainerName property must be set for the ObjectContext."
            
        
        
            
            A string like "The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted."
            
        
        
            
            A string like "The ObjectContext instance has been disposed and can no longer be used for operations that require a connection."
            
        
        
            
            A string like "The selector expression for LoadProperty must be a MemberAccess for the property."
            
        
        
            
            A string like "The EntityState value passed for the entity is not valid. The EntityState value must be one of the following: Added, Deleted, Detached, Modified, or Unchanged."
            
        
        
            
            A string like "The EntityState value passed for the relationship is not valid. The EntityState value must be one of the following: Added, Deleted, Detached, or Unchanged. Relationships cannot be set to the Modified state."
            
        
        
            
            A string like "An object that has a key that matches the key of the supplied object could not be found in the ObjectStateManager. Verify that the object to which changes must be applied is not in the Added state and that its key values match the key values of the supplied object."
            
        
        
            
            A string like "When executing a command, parameters must be exclusively database parameters or values."
            
        
        
            
            A string like "Attach is not a valid operation when the source object associated with this related end is in an added, deleted, or detached state. Objects loaded using the NoTracking merge option are always detached."
            
        
        
            
            A string like "The object being attached to the source object is not attached to the same ObjectContext as the source object."
            
        
        
            
            A string like "The object being attached is in an added or deleted state. Relationships cannot be created for objects in this state."
            
        
        
            
            A string like "The object could not be added to the EntityCollection or EntityReference. An object that is attached to an ObjectContext cannot be added to an EntityCollection or EntityReference that is not associated with a source object. "
            
        
        
            
            A string like " The object could not be removed from the EntityCollection or EntityReference. An object that is attached to an ObjectContext cannot be removed from an EntityCollection or EntityReference that is not associated with a source object."
            
        
        
            
            A string like "Adding a relationship with an entity which is in the Deleted state is not allowed."
            
        
        
            
            A string like "This property cannot be set to a null value."
            
        
        
            
            A string like "The result of a query cannot be enumerated more than once."
            
        
        
            
            A string like "Only primitive types, entity types, and complex types can be materialized."
            
        
        
            
            A string like "The source query for this EntityCollection or EntityReference cannot be returned when the related object is in either an added state or a detached state and was not originally retrieved using the NoTracking merge option."
            
        
        
            
            A string like "A navigation property that returns an EntityCollection cannot be changed if the existing EntityCollection contains items that are not in the new EntityCollection."
            
        
        
            
            A string like "A relationship multiplicity constraint violation occurred: An EntityReference expected at least one related object, but the query returned no related objects from the data store."
            
        
        
            
            A string like "A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error."
            
        
        
            
            A string like "A referential integrity constraint violation occurred: A primary key property that is a part of referential integrity constraint cannot be changed when the dependent object is Unchanged unless it is being set to the association's principal object. The principal object must be tracked and not marked for deletion."
            
        
        
            
            A string like "The EntityKey property cannot be set to EntityNotValidKey, NoEntitySetKey, or a temporary key."
            
        
        
            
            A string like "The object could not be added or attached because its EntityReference has an EntityKey property value that does not match the EntityKey for this object."
            
        
        
            
            A string like "At least one related end in the relationship could not be found."
            
        
        
            
            A string like "When an object is returned with a NoTracking merge option, Load can only be called when the EntityCollection or EntityReference does not contain objects."
            
        
        
            
            A string like "When an object is returned with a NoTracking merge option, Load cannot be called when the IsLoaded property is true."
            
        
        
            
            A string like "The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects."
            
        
        
            
            A string like "Requested operation is not allowed when the owner of this RelatedEnd is null. RelatedEnd objects that were created with the default constructor should only be used as a container during serialization."
            
        
        
            
            A string like "A referential integrity constraints violation occurred: Not all of the property values that define referential integrity constraints could be retrieved from related entities."
            
        
        
            
            A string like "A referential integrity constraint violation occurred: The property values that define the referential constraints are not consistent between principal and dependent objects in the relationship."
            
        
        
            
            A string like "A circular relationship path has been detected while enforcing a referential integrity constraints. Referential integrity cannot be enforced on circular relationships."
            
        
        
            
            A string like "The requested operation could not be completed because the object implementing IEntityWithRelationships returned a null value from the RelationshipManager property."
            
        
        
            
            A string like "The relationship manager supplied by the object implementing IEntityWithRelationships is not the expected relationship manager."
            
        
        
            
            A string like "The operation could not be completed because the object to which the relationship manager belongs was attached to the ObjectContext before the relationship manager was instantiated."
            
        
        
            
            A string like "InitializeRelatedReference should only be used to initialize a new EntityReference during deserialization of an entity object."
            
        
        
            
            A string like "The InitializeRelatedCollection method should only be called to initialize a new EntityCollection during deserialization of an object graph."
            
        
        
            
            A string like "The RelatedEnd cannot be returned by this RelationshipManager. A RelatedEnd can only be returned by a RelationshipManager for objects that are either tracked by the ObjectStateManager or that implement IEntityWithRelationships."
            
        
        
            
            A string like "The object or data row on the data binding interface cannot be replaced."
            
        
        
            
            A string like "The index-based insert operation is not supported on this data binding interface."
            
        
        
            
            A string like "Updates cannot be performed on a read-only data binding interface."
            
        
        
            
            A string like "The IBindingList.AddNew method is not supported when binding to a collection of abstract types. You must instead use the IList.Add method."
            
        
        
            
            A string like "The object being added is of a type that is not compatible with the type of the bound collection."
            
        
        
            
            A string like "Properties are not supported on value types."
            
        
        
            
            A string like "The property uses an unsupported type."
            
        
        
            
            A string like "Indexed properties are not supported."
            
        
        
            
            A string like "Static properties are not supported."
            
        
        
            
            A string like "The property getter does not exist."
            
        
        
            
            A string like "The property setter does not exist."
            
        
        
            
            A string like "General query error"
            
        
        
            
            A string like "aliased expression"
            
        
        
            
            A string like "aliased namespace import"
            
        
        
            
            A string like "logical AND expression"
            
        
        
            
            A string like "ANYELEMENT expression"
            
        
        
            
            A string like "APPLY clause"
            
        
        
            
            A string like "BETWEEN expression"
            
        
        
            
            A string like "CASE expression"
            
        
        
            
            A string like "CASE/ELSE expression"
            
        
        
            
            A string like "CASE/WHEN/THEN expression"
            
        
        
            
            A string like "CAST expression"
            
        
        
            
            A string like "collated ORDER BY clause item"
            
        
        
            
            A string like "collection type definition"
            
        
        
            
            A string like "command expression"
            
        
        
            
            A string like "CREATEREF expression"
            
        
        
            
            A string like "DEREF expression"
            
        
        
            
            A string like "division operation"
            
        
        
            
            A string like "ELEMENT expression"
            
        
        
            
            A string like "equals expression"
            
        
        
            
            A string like "escaped identifier"
            
        
        
            
            A string like "EXCEPT expression"
            
        
        
            
            A string like "EXISTS expression"
            
        
        
            
            A string like "expression list"
            
        
        
            
            A string like "FLATTEN expression"
            
        
        
            
            A string like "FROM/APPLY clause"
            
        
        
            
            A string like "FROM clause"
            
        
        
            
            A string like "FROM clause item"
            
        
        
            
            A string like "FROM clause list"
            
        
        
            
            A string like "FROM/JOIN clause"
            
        
        
            
            A string like "function definition"
            
        
        
            
            A string like "greater than expression"
            
        
        
            
            A string like "greater than or equals expression"
            
        
        
            
            A string like "GROUP BY clause"
            
        
        
            
            A string like "GROUPPARTITION expression"
            
        
        
            
            A string like "HAVING predicate"
            
        
        
            
            A string like "identifier"
            
        
        
            
            A string like "IN set expression"
            
        
        
            
            A string like "INTERSECT expression"
            
        
        
            
            A string like "IS NOT NULL expression"
            
        
        
            
            A string like "IS NOT OF expression"
            
        
        
            
            A string like "IS NULL expression"
            
        
        
            
            A string like "IS OF expression"
            
        
        
            
            A string like "JOIN clause"
            
        
        
            
            A string like "JOIN/ON clause"
            
        
        
            
            A string like "KEY expression"
            
        
        
            
            A string like "less than expression"
            
        
        
            
            A string like "less than or equals expression"
            
        
        
            
            A string like "LIKE expression"
            
        
        
            
            A string like "ORDER BY/LIMIT sub-clause"
            
        
        
            
            A string like "constant literal"
            
        
        
            
            A string like "member access expression"
            
        
        
            
            A string like "function, method or type constructor"
            
        
        
            
            A string like "subtraction operation"
            
        
        
            
            A string like "modulus operation"
            
        
        
            
            A string like "multiplication operation"
            
        
        
            
            A string like "MULTISET constructor"
            
        
        
            
            A string like "namespace import"
            
        
        
            
            A string like "namespace import list"
            
        
        
            
            A string like "NAVIGATE expression"
            
        
        
            
            A string like "logical NOT expression"
            
        
        
            
            A string like "NOT BETWEEN expression"
            
        
        
            
            A string like "not equals expression"
            
        
        
            
            A string like "NOT IN set expression"
            
        
        
            
            A string like "NOT LIKE expression"
            
        
        
            
            A string like "NULL literal"
            
        
        
            
            A string like "OFTYPE expression"
            
        
        
            
            A string like "OFTYPE ONLY expression"
            
        
        
            
            A string like "logical OR expression"
            
        
        
            
            A string like "ORDER BY clause"
            
        
        
            
            A string like "ORDER BY clause item"
            
        
        
            
            A string like "OVERLAPS expression"
            
        
        
            
            A string like "parenthesized expression"
            
        
        
            
            A string like "addition operation"
            
        
        
            
            A string like "type name with type specification arguments"
            
        
        
            
            A string like "query expression"
            
        
        
            
            A string like "query statement"
            
        
        
            
            A string like "REF expression"
            
        
        
            
            A string like "reference type definition"
            
        
        
            
            A string like "RELATIONSHIP expression"
            
        
        
            
            A string like "RELATIONSHIP expression list"
            
        
        
            
            A string like "ROW constructor"
            
        
        
            
            A string like "row type definition"
            
        
        
            
            A string like "SELECT clause"
            
        
        
            
            A string like "SELECT VALUE clause"
            
        
        
            
            A string like "SET expression"
            
        
        
            
            A string like "simple identifier"
            
        
        
            
            A string like "ORDER BY/SKIP sub-clause"
            
        
        
            
            A string like "TOP sub-clause"
            
        
        
            
            A string like "TREAT expression"
            
        
        
            
            A string like "type name"
            
        
        
            
            A string like "unary minus operation"
            
        
        
            
            A string like "unary plus operation"
            
        
        
            
            A string like "UNION expression"
            
        
        
            
            A string like "UNION ALL expression"
            
        
        
            
            A string like "WHERE predicate"
            
        
        
            
            A string like "The query syntax is not valid."
            
        
        
            
            A string like "in the current FROM clause"
            
        
        
            
            A string like "in GROUP BY clause"
            
        
        
            
            A string like "as a column name in ROW constructor"
            
        
        
            
            A string like "in the SELECT projection list"
            
        
        
            
            A string like "Escaped identifiers cannot be empty."
            
        
        
            
            A string like "The query text consists only of comments and/or white space."
            
        
        
            
            A string like "The operator symbol is not valid."
            
        
        
            
            A string like "The punctuation symbol is not valid."
            
        
        
            
            A string like "collection"
            
        
        
            
            A string like "column"
            
        
        
            
            A string like "complex"
            
        
        
            
            A string like "entity"
            
        
        
            
            A string like "entity container"
            
        
        
            
            A string like "function"
            
        
        
            
            A string like "query inline function"
            
        
        
            
            A string like "keyword"
            
        
        
            
            A string like "left"
            
        
        
            
            A string like "line"
            
        
        
            
            A string like "namespace, type or function"
            
        
        
            
            A string like "namespace"
            
        
        
            
            A string like "Near"
            
        
        
            
            A string like "primitive"
            
        
        
            
            A string like "reference"
            
        
        
            
            A string like "right"
            
        
        
            
            A string like "row"
            
        
        
            
            A string like "term"
            
        
        
            
            A string like "type"
            
        
        
            
            A string like "enum member"
            
        
        
            
            A string like "value expression"
            
        
        
            
            A string like "The function call cannot be resolved, because one or more passed arguments match more than one function overload."
            
        
        
            
            A string like "The upper and lower limits of the BETWEEN expression cannot be un-typed nulls."
            
        
        
            
            A string like "Cannot create an empty multiset."
            
        
        
            
            A string like "A multiset of un-typed NULLs is not valid."
            
        
        
            
            A string like "There is no underlying support for the '+' operation on strings in the current provider."
            
        
        
            
            A string like "The ELEMENT operator is not supported in this version of Entity Framework. It is reserved for future use."
            
        
        
            
            A string like "The specified expression cannot be NULL."
            
        
        
            
            A string like "The specified expression must be of CollectionType."
            
        
        
            
            A string like "The specified expression must be of numeric type."
            
        
        
            
            A string like "The specified expression must be of Boolean type."
            
        
        
            
            A string like "The specified expression type must be equal-comparable."
            
        
        
            
            A string like "The specified expression cannot be of CollectionType."
            
        
        
            
            A string like "The expression in the CREATEREF operator is not a valid EntitySet."
            
        
        
            
            A string like "The GROUP BY clause key expression type must be equal-comparable."
            
        
        
            
            A string like "The GROUPPARTITION operator is allowed only in the context of a query expression."
            
        
        
            
            A string like "The HAVING clause must be preceded by a GROUP BY clause."
            
        
        
            
            A string like "The CREATEREF key expression type is not compatible with the EntityKey element type."
            
        
        
            
            A string like "The CREATEREF key expression is not compatible with the EntityKey structure."
            
        
        
            
            A string like "The INNER JOIN expression must have an ON predicate."
            
        
        
            
            A string like "The THEN/ELSE expression types are not compatible."
            
        
        
            
            A string like "The CASE/WHEN/THEN expression is not valid, because all resulting expressions are un-typed."
            
        
        
            
            A string like "The CAST argument expression must be of a scalar type."
            
        
        
            
            A string like "The CAST type argument must be of a scalar type."
            
        
        
            
            A string like "The CREATEREF key expression must be of row type."
            
        
        
            
            A string like "The DISTINCT/ALL argument is not valid in type constructors."
            
        
        
            
            A string like "The DISTINCT/ALL argument is only valid for group aggregate functions."
            
        
        
            
            A string like "The FLATTEN argument must be a collection of collections."
            
        
        
            
            A string like "Left correlation is not allowed in the JOIN clause."
            
        
        
            
            A string like "A namespace, type, or function name must be a single name or any number of names separated by dots."
            
        
        
            
            A string like "The WITH RELATIONSHIP clause is only supported when defining read-only view queries."
            
        
        
            
            A string like "The namespace alias is not valid."
            
        
        
            
            A string like "Un-typed NULL arguments are not valid in arithmetic expressions."
            
        
        
            
            A string like "Un-typed NULL arguments are not valid in comparison expressions."
            
        
        
            
            A string like "The ON predicate is not allowed in the CROSS JOIN clause."
            
        
        
            
            A string like "The SELECT VALUE expression cannot be aliased in this context. SELECT VALUE expression can be aliased only when ORDER BY is specified."
            
        
        
            
            A string like "SELECT VALUE can have only one expression in the projection list."
            
        
        
            
            A string like "The WITH RELATIONSHIP clause is only supported for entity type constructors."
            
        
        
            
            A string like "The IS [NOT] NULL expression must be of entity, reference, enumeration or primitive type."
            
        
        
            
            A string like "The left argument of the set expression must be of CollectionType."
            
        
        
            
            A string like "LIKE arguments must be of string type."
            
        
        
            
            A string like "The specified literal has a malformed single quote payload."
            
        
        
            
            A string like "The specified literal has a malformed string literal payload."
            
        
        
            
            A string like "Method invocation is not supported."
            
        
        
            
            A string like "Multiset element types are incompatible."
            
        
        
            
            A string like "A NULL literal cannot be promoted to a CollectionType."
            
        
        
            
            A string like "The ORDER BY sort key(s) type must be order-comparable."
            
        
        
            
            A string like "The left expression must be of numeric or string type."
            
        
        
            
            A string like "The right expression must be of numeric or string type."
            
        
        
            
            A string like "The related end expression must be of reference type."
            
        
        
            
            A string like "The 'from' end of the relationship is ambiguous in this context."
            
        
        
            
            A string like "The 'to' end of the relationship is ambiguous in this context."
            
        
        
            
            A string like "The resulting expression of the query cannot be un-typed NULL."
            
        
        
            
            A string like "The right argument of the set expression must be of CollectionType."
            
        
        
            
            A string like "The ROW constructor cannot have un-typed NULL columns."
            
        
        
            
            A string like "The projection expression type must be equal-comparable when used with DISTINCT."
            
        
        
            
            A string like "The TOP and LIMIT sub-clauses cannot be used together in the same query expression."
            
        
        
            
            A string like "The TOP and SKIP sub-clauses cannot be used together in the same query expression. Use LIMIT instead of TOP."
            
        
        
            
            A string like "The type specification argument must be a constant literal."
            
        
        
            
            A string like "The type argument is not a valid constant literal, or is outside of the expected range."
            
        
        
            
            A string like "The expression type must be EntityType, ComplexType, or ReferenceType"
            
        
        
            
            A string like "INTERNAL ERROR: The group variable must be present in one of the existing scopes."
            
        
        
            
            A string like "INTERNAL ERROR: The argument type for the aggregate function is not valid."
            
        
        
            
            A string like "INTERNAL ERROR: The save point is not valid."
            
        
        
            
            A string like "INTERNAL ERROR: The scope index is not valid."
            
        
        
            
            A string like "INTERNAL ERROR: The parser found an error and cannot continue."
            
        
        
            
            A string like "INTERNAL ERROR: The input stream is not valid."
            
        
        
            
            A string like "INTERNAL ERROR: There was a stack overflow in the query parser."
            
        
        
            
            A string like "INTERNAL ERROR: The abstract syntax tree expression is not a valid command expression type."
            
        
        
            
            A string like "INTERNAL ERROR: The abstract syntax tree expression has an unknown type."
            
        
        
            
            A string like "INTERNAL ERROR: The specified built-in abstract syntax tree expression type is unknown. "
            
        
        
            
            A string like "The specified metadata cannot be used because it is not read-only."
            
        
        
            
            A string like "The current provider does not support any type that is compatible with Edm.Boolean."
            
        
        
            
            A string like "The current provider does not support any type that is compatible with Edm.Int32."
            
        
        
            
            A string like "The current provider does not support any type that is compatible with Edm.String."
            
        
        
            
            A string like "The specified member is not associated with the same MetadataWorkspace or data space as the command tree."
            
        
        
            
            A string like "The specified EntitySet is not valid because its EntityContainer property has a value of null."
            
        
        
            
            A string like "The specified EntitySet is not associated with the same MetadataWorkspace or data model  as the command tree."
            
        
        
            
            A string like "The specified EntityType is not valid because its KeyMembers property has a value of null."
            
        
        
            
            A string like "The specified EntityType is not valid because its KeyMembers collection is empty."
            
        
        
            
            A string like "The specified function is not valid because its ReturnParameter property has a value of null."
            
        
        
            
            A string like "The specified function is not associated with the same MetadataWorkspace or data space as the command tree."
            
        
        
            
            A string like "The specified function parameter is not associated with the same MetadataWorkspace or data model as the command tree."
            
        
        
            
            A string like "The specified type is not associated with the same MetadataWorkspace or data model as the command tree."
            
        
        
            
            A string like "The specified command tree is not valid."
            
        
        
            
            A string like "An empty list is not a valid value for this argument."
            
        
        
            
            A string like "The expression list has an incorrect number of elements."
            
        
        
            
            A string like "The DataSpace is not valid."
            
        
        
            
            A string like "The specified element expressions cannot be contained by the same collection because no common element type can be inferred from their ResultTypes."
            
        
        
            
            A string like "The specified relationship type does not define an end with the specified name"
            
        
        
            
            A string like "The specified relationship ends are not defined by the same relationship type."
            
        
        
            
            A string like "The specified aggregate function is not valid."
            
        
        
            
            A string like "DbExpressionBinding requires an input expression with a collection ResultType."
            
        
        
            
            A string like "DbGroupExpressionBinding requires an input expression with a collection ResultType."
            
        
        
            
            A string like "DbAndExpression requires arguments with a common Boolean type."
            
        
        
            
            A string like "DbApplyExpression input and apply arguments cannot have the same variable name."
            
        
        
            
            A string like "DbArithmeticExpression arguments must have a numeric common type."
            
        
        
            
            A string like "DbCaseExpression requires an equal number of 'When' and 'Then' expressions."
            
        
        
            
            A string like "A valid ResultType could not be inferred from the ResultTypes of the specified 'Then' expressions."
            
        
        
            
            A string like "DbComparisonExpression requires arguments with comparable types."
            
        
        
            
            A string like "The specified value is not an instance of a valid constant type."
            
        
        
            
            A string like "The 'Distinct' operation cannot be applied to the collection ResultType of the specified argument."
            
        
        
            
            A string like "DbDerefExpression requires an argument of a reference type."
            
        
        
            
            A string like "When unwrapSingleProperty is specified the argument expression must have the following ResultType: a CollectionType with a structured element type that declares exactly one property. "
            
        
        
            
            A string like "Function metadata used in DbFunctionExpression cannot have a void return type."
            
        
        
            
            A string like "Function metadata used in DbFunctionExpression must allow composition. Non-composable functions or functions that include command text are not allowed in expressions. Such functions can only be executed independently."
            
        
        
            
            A string like "Function metadata used in DbFunctionExpression cannot include command text."
            
        
        
            
            A string like "DbEntityRefExpression requires an argument of an EntityType."
            
        
        
            
            A string like "DbRefKeyExpression requires an argument of a reference type."
            
        
        
            
            A string like "At least one group key or aggregate is required."
            
        
        
            
            A string like "At most one DbGroupAggregate can be specified in the list of aggregates of a DbGroupByExpression."
            
        
        
            
            A string like "DbCrossJoinExpression requires at least two inputs."
            
        
        
            
            A string like "The argument to DbIsNullExpression cannot have a CollectionType of a ResultType."
            
        
        
            
            A string like "The argument to DbIsNullExpression must refer to a primitive, enumeration or reference type."
            
        
        
            
            A string like "The left and right arguments of a DbJoinExpression cannot have the same variable name."
            
        
        
            
            A string like "Limit must be a DbConstantExpression or a DbParameterReferenceExpression."
            
        
        
            
            A string like "Limit must have an integer ResultType."
            
        
        
            
            A string like "Limit must have a non-negative value."
            
        
        
            
            A string like "A CollectionType is required."
            
        
        
            
            A string like "A collection, entity or row type is required."
            
        
        
            
            A string like "The specified related entity is not compatible with this new instance constructor. The constructed instance is not an instance of the EntityType required by the source end of the related entity."
            
        
        
            
            A string like "DbNotExpression requires an argument with a Boolean type."
            
        
        
            
            A string like "DbOrExpression requires arguments with a common Boolean type."
            
        
        
            
            A string like "DbInExpression requires the same result type for the input expressions."
            
        
        
            
            A string like "An Instance property of type DbExpression is required for an instance property."
            
        
        
            
            A string like "DbRefExpression requires an EntityType from the same hierarchy as the EntityType of the referenced EntitySet."
            
        
        
            
            A string like "The specified target relationship End is not declared by the same relationship type as the specified source relationship End."
            
        
        
            
            A string like "A target relationship End with multiplicity of 'One' or 'ZeroOrOne' is required for this argument."
            
        
        
            
            A string like "The specified target relationship End is the same as the source relationship End."
            
        
        
            
            A string like "The target entity reference expression must have a reference ResultType."
            
        
        
            
            A string like "The specified target entity reference expression is not valid because it does not produce a reference to an entity of the same type or of a subtype of the EntityType referred to by the specified target End."
            
        
        
            
            A string like "Navigating composition relationships is not supported."
            
        
        
            
            A string like "Count must be a DbConstantExpression or a DbParameterReferenceExpression."
            
        
        
            
            A string like "Count must have an integer ResultType."
            
        
        
            
            A string like "Count must have a non-negative value."
            
        
        
            
            A string like "A collation specifier is only valid for a sort key with a string ResultType."
            
        
        
            
            A string like "DbSortClause expressions must have a type that is order comparable."
            
        
        
            
            A string like "AggregateOp encountered outside of GroupBy method."
            
        
        
            
            A string like "Unexpected VarDefListOp"
            
        
        
            
            A string like "Unexpected VarDefOp"
            
        
        
            
            A string like "The CommandBehavior.SequentialAccess property must be specified for this command object."
            
        
        
            
            A string like "The ADO.NET Data Provider you are using does not support canonical command trees."
            
        
        
            
            A string like "The attempted operation is not valid. The data reader is closed."
            
        
        
            
            A string like "The attempted operation is not valid. The nested data reader has been implicitly closed because its parent data reader has been read or closed."
            
        
        
            
            A string like "There was an attempt to read, but no data was present."
            
        
        
            
            A string like "The GetSchemaTable method is not supported."
            
        
        
            
            A string like "The data reader has more than one field. Multiple fields are not valid for EDM primitive or enumeration types."
            
        
        
            
            A string like "The data reader is incompatible with the specified function mapping, and the type of a row could not be determined for the type mapping."
            
        
        
            
            A string like "The nested query does not have the appropriate keys."
            
        
        
            
            A string like "Data"
            
        
        
            
            A string like "Input, output, or bidirectional parameter."
            
        
        
        
            
            A string like "Update"
            
        
        
            
            A string like "When used by a DataAdapter.Update, the source column name that is used to find the DataSetColumn name in the ColumnMappings. This is to copy a value between the parameter and a data row."
            
        
        
            
            A string like "When used by a DataAdapter.Update (UpdateCommand only), the version of the DataRow value that is used to update the data source."
            
        
        
            
            A string like "The Mode of all parameters in the ReturnParameter collection must be set to ParameterMode.ReturnValue."
            
        
        
            
            A string like "Parameters in the Parameters collection must not have mode set to ParameterMode.ReturnValue."
            
        
        
            
            A string like "The EntitySets parameter must not be null for functions that return multiple result sets."
            
        
        
            
            A string like "The number of entity sets should match the number of return parameters."
            
        
        
            
            A string like "The EntityParameter is already contained by another EntityParameterCollection."
            
        
        
            
            A string like "Attempted to remove an EntityParameter that is not contained by this EntityParameterCollection."
            
        
        
            
            A string like "Expansion of |DataDirectory| failed while processing the connection string. Ensure that |DataDirectory| is set to a valid fully-qualified path."
            
        
        
            
            A string like "The DataDirectory substitute is not a string."
            
        
        
            
            A string like "Invalid usage of escape delimiters '[' or ']'."
            
        
        
            
            A string like "The source XmlReader does not contain a schema definition or started at the end of the file."
            
        
        
            
            A string like "The name is missing or not valid."
            
        
        
            
            A string like "Schema must specify a value for the Namespace attribute."
            
        
        
            
            A string like "Default values are allowed only for non-spatial primitive types."
            
        
        
            
            A string like "error"
            
        
        
            
            A string like "warning"
            
        
        
            
            A string like "unknown"
            
        
        
        
            
            A string like "NavigationProperty is not valid. The FromRole and ToRole are the same."
            
        
        
            
            A string like "Documentation content is not valid. The Documentation element can only contain Summary and LongDescription elements."
            
        
        
            
            A string like "All elements in a schema must be contained in the Schema element."
            
        
        
            
            A string like "All properties of the row type returned by a store-defined function must be scalar."
            
        
        
            
            A string like "OnDelete, OnLock, and other such elements can be specified on only one End of an Association."
            
        
        
            
            A string like "Number of Properties in the Dependent and Principal Role in a relationship constraint must be exactly identical."
            
        
        
            
            A string like "Functions and function imports that can be composed must declare a return type."
            
        
        
            
            A string like "Mapping function imports returning entities is not supported."
            
        
        
            
            A string like "Structural type mappings must not be null or empty for function imports returning non-scalar values."
            
        
        
            
            A string like "Invalid return type for composable function."
            
        
        
            
            A string like "Functions that cannot be composed must not declare a return type."
            
        
        
            
            A string like "Functions declaring command text cannot be composed."
            
        
        
            
            A string like "Functions declaring command text cannot also declare a store function name."
            
        
        
            
            A string like "Functions that cannot be composed may not set the aggregate or built-in function attributes."
            
        
        
            
            A string like "The DefiningQuery element is empty. Add the query text to the DefiningQuery element."
            
        
        
            
            A string like "The CommandText element is empty. Add the command text to the CommandText element."
            
        
        
            
            A string like "The Provider Manifest is incorrect."
            
        
        
            
            A string like "Facet declaration requires type attribute declaration."
            
        
        
            
            A string like "Type declaration missing for element."
            
        
        
            
            A string like "RowType element must have at least one property element."
            
        
        
            
            A string like "Type must be declared through attribute or sub-element, but not both."
            
        
        
            
            A string like "All artifacts loaded into an ItemCollection must have the same version. Multiple versions were encountered."
            
        
        
            
            A string like "The specified type cannot be used as the underlying type of an enumeration type."
            
        
        
            
            A string like "Enumeration members have to have unique names."
            
        
        
            
            A string like "The value of the calculated enumeration type member is not valid according to its data type 'http://www.w3.org/2001/XMLSchema:long'."
            
        
        
            
            A string like "Currently, spatial types are only supported when used in CSDL files that have the UseStrongSpatialTypes annotation with a false value on their root Schema element."
            
        
        
            
            A string like "The specified ObjectQuery is not valid for this operation because it is associated with a different ObjectContext."
            
        
        
            
            A string like "Query builder methods are not supported for LINQ to Entities queries. For more information, see the Entity Framework documentation."
            
        
        
            
            A string like "A connection must be specified before the query can be executed."
            
        
        
            
            A string like "The result type of the query could not be determined because the required metadata is missing."
            
        
        
            
            A string like "Parameters cannot be added or removed from the parameter collection, and the parameter collection cannot be cleared after a query has been evaluated or its trace string has been retrieved.  "
            
        
        
            
            A string like "The provider returned null from CreateCommandDefinition."
            
        
        
            
            A string like "The provider did not return a ProviderManifest instance."
            
        
        
            
            A string like "The provider did not return a ProviderManifestToken string."
            
        
        
            
            A string like "The provider did not return a 'DbSpatialServices' instance. In order to use the 'DbGeography' or 'DbGeometry' spatial types the EF provider being used must support spatial types and all prerequisites for the provider must be installed. See http://go.microsoft.com/fwlink/?LinkId=287183 for details."
            
        
        
            
            A string like "No usable spatial provider could be found. In order to use the 'DbGeography' or 'DbGeometry' spatial types the EF provider being used must support spatial types and all prerequisites for the provider must be installed. See http://go.microsoft.com/fwlink/?LinkId=287183 for details."
            
        
        
            
            A string like "This provider does not support the specified command tree. EntityClient should be used to create a command definition from this command tree."
            
        
        
            
            A string like "Because the underlying provider had overridden DbProviderManifest.SupportsEscapingLikeArgument to return true, the DbProviderManifest.EscapeLikeArgument method must also be implemented by the provider."
            
        
        
            
            A string like "The underlying provider returned null when trying to escape the specified string."
            
        
        
            
            A string like "The provider did not create a CommandDefinition."
            
        
        
            
            A string like "CreateDatabaseScript is not supported by the provider."
            
        
        
            
            A string like "CreateDatabase is not supported by the provider."
            
        
        
            
            A string like "DatabaseExists is not supported by the provider."
            
        
        
            
            A string like "DeleteDatabase is not supported by the provider."
            
        
        
            
            A string like "The specified DbGeography value is not compatible with this spatial services implementation."
            
        
        
            
            A string like "The specified DbGeometry value is not compatible with this spatial services implementation."
            
        
        
            
            A string like "The specified provider value is not compatible with this spatial services implementation."
            
        
        
            
            A string like "The WellKnownValue property is intended to support serialization and deserialization and should not be set directly."
            
        
        
            
            A string like "The connection name in the connection string."
            
        
        
            
            A string like "The underlying provider invariant name in the connection string."
            
        
        
            
            A string like "The metadata locations in the connection string."
            
        
        
            
            A string like "The inner connection string in the connection string."
            
        
        
            
            A string like "Context"
            
        
        
            
            A string like "Named ConnectionString"
            
        
        
            
            A string like "Source"
            
        
        
            
            A string like "The result type of the query is neither an EntityType nor a CollectionType with an entity element type. An Include path can only be specified for a query with one of these result types."
            
        
        
            
            A string like "There was an error parsing the Include path. An empty navigation property was found."
            
        
        
            
            A string like "The entity wrapper stored in the proxy does not reference the same proxy."
            
        
        
            
            A string like "All 'EdmMember' instances must be a valid member of the EdmType."
            
        
        
            
            A string like "The Entity Framework was already using a DbConfiguration instance before an attempt was made to add an 'Loaded' event handler. 'Loaded' event handlers can only be added as part of application start up before the Entity Framework is used. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information."
            
        
        
            
            A string like "Sequence contains more than one element"
            
        
        
            
            A string like "The provider for the source IQueryable doesn't implement IDbAsyncQueryProvider. Only providers that implement IDbAsyncQueryProvider can be used for Entity Framework asynchronous operations. For more details see http://go.microsoft.com/fwlink/?LinkId=287068."
            
        
        
            
            A string like "Sequence contains no elements"
            
        
        
            
            A string like "Automatic migrations that affect the location of the migrations history system table (such as default schema changes) are not supported. Please use code-based migrations for operations that affect the location of the migrations history system table."
            
        
        
            
            A string like "Sequence contains no matching element"
            
        
        
            
            A string like "Sequence contains more than one matching element"
            
        
        
            
            A string like "The connection could not be opened because it is broken. The connection must be closed before it can be opened."
            
        
        
            
            A string like "The transaction passed in is not associated with the current connection. Only transactions associated with the current connection may be used."
            
        
        
            
            A string like "The transaction passed in must have a non-null connection. A null connection indicates the transaction has already been completed."
            
        
        
            
            A string like "The connection is already participating in a transaction. The first transaction should be committed or rolled back before attempting to engage the connection in another transaction."
            
        
        
            
            A string like "The connection is already enlisted in a user transaction. The first transaction should be completed before attempting to engage the connection in another transaction."
            
        
        
            
            A string like "A second operation started on this context before a previous asynchronous operation completed. Use 'await' to ensure that any asynchronous operations have completed before calling another method on this context. Any instance members are not guaranteed to be thread safe."
            
        
        
            
            A string like "The entity type of one of the ends of the specified association type does not match the entity type of the corresponding entity set end."
            
        
        
            
            A string like "DbInExpression handling is not implemented. The functionality involving DbInExpression, new in Entity Framework 6, is turned off by default for compatibility with existing provider implementations. It can be enabled by overriding DbProviderManifest.SupportsInExpression and returning true, in which case any command tree expression visitor implemented by the provider must handle the new expression type."
            
        
        
            
            A string like "Invalid scalar property mapping. Both entity model property and store column must be scalar properties."
            
        
        
            
            A string like "Errors Found During Generation:"
            
        
        
            
            A string like "Scaffolding create or alter procedure operations is not supported in down methods."
            
        
        
            
            A string like "The operation could not be suppressed because it has already been executed. 'SuppressExecution' can only be called from an interceptor that runs before the operation is executed."
            
        
        
            
            A string like "Conversion between generic and non-generic DbSet objects is not supported for test doubles."
            
        
        
            
            A string like "An existing EF5 migrations history table was detected but could not be upgraded because a custom history context factory has been configured. To upgrade an existing EF5 database, ensure there is no custom history context factory configured."
            
        
        
            
            A string like "An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded or failed on the database server. See the inner exception and http://go.microsoft.com/fwlink/?LinkId=313468 for more information."
            
        
        
            
            Strongly-typed and parameterized exception factory.
            
        
        
            
            Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead."
            
        
        
            
            Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added."
            
        
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type."
            
        
        
            
            InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
            
        
        
            
            InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property."
            
        
        
            
            InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property."
            
        
        
            
            InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'."
            
        
        
            
            InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty'  VB.Net: 'Function(t) t.MyProperty.MyProperty'."
            
        
        
            
            InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}'  VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'."
            
        
        
            
            InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty'  VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}'  VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'."
            
        
        
        
            
            InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}"
            
        
        
            
            InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}"
            
        
        
            
            InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive or generic, and does not inherit from ComplexObject."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive or generic, and does not inherit from EntityObject."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys."
            
        
        
            
            Core.MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities."
            
        
        
            
            InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys."
            
        
        
            
            InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty."
            
        
        
            
            InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names."
            
        
        
            
            InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name."
            
        
        
            
            InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API."
            
        
        
            
            InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property."
            
        
        
            
            InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property."
            
        
        
            
            InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call."
            
        
        
            
            InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name."
            
        
        
            
            InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax."
            
        
        
            
            InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation."
            
        
        
            
            ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string."
            
        
        
            
            InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set."
            
        
        
            
            InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model."
            
        
        
        
            
            InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method."
            
        
        
            
            InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once."
            
        
        
            
            InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once."
            
        
        
            
            InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used."
            
        
        
            
            InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them."
            
        
        
            
            InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type."
            
        
        
            
            InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types."
            
        
        
            
            InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified."
            
        
        
            
            InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns."
            
        
        
            
            InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported."
            
        
        
            
            InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations."
            
        
        
            
            InvalidOperationException with message like "The abstract type '{0}' has no mapped descendants and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. "
            
        
        
            
            NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. "
            
        
        
            
            InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct."
            
        
        
            
            InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct."
            
        
        
            
            NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties."
            
        
        
            
            InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation."
            
        
        
            
            InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor."
            
        
        
            
            InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor."
            
        
        
        
            
            NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state."
            
        
        
            
            InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model."
            
        
        
        
            
            ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed."
            
        
        
            
            ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created."
            
        
        
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method."
            
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method."
            
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method."
            
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method."
            
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method."
            
        
        
            
            ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property."
            
        
        
            
            ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property.""
            
        
        
            
            ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties.""
            
        
        
            
            ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'."
            
        
        
            
            ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead."
            
        
        
            
            ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'."
            
        
        
            
            InvalidOperationException with message like "{0} cannot be used for entities in the {1} state."
            
        
        
            
            InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'."
            
        
        
            
            InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property."
            
        
        
            
            InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'."
            
        
        
            
            NotSupportedException with message like "The set of property value names is read-only."
            
        
        
            
            ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'."
            
        
        
            
            ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'."
            
        
        
            
            ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'."
            
        
        
            
            ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type."
            
        
        
            
            InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties."
            
        
        
            
            InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties."
            
        
        
            
            InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null."
            
        
        
            
            InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null."
            
        
        
            
            InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)."
            
        
        
            
            InvalidOperationException with message like "Database '{0}' cannot be created because it already exists."
            
        
        
            
            NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility."
            
        
        
            
            NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations."
            
        
        
            
            InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once."
            
        
        
            
            InvalidOperationException with message like "The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe."
            
        
        
            
            InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)."
            
        
        
            
            InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed."
            
        
        
            
            InvalidOperationException with message like "The provider factory returned a null connection."
            
        
        
            
            InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute.""
            
        
        
            
            InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection."
            
        
        
            
            InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested."
            
        
        
            
            InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types."
            
        
        
            
            InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute."
            
        
        
            
            InvalidOperationException with message like "The entity type {0} is not part of the model for the current context."
            
        
        
            
            NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()."
            
        
        
            
            InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file."
            
        
        
            
            InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection."
            
        
        
            
            NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor."
            
        
        
            
            NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used."
            
        
        
            
            InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'."
            
        
        
            
            InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection."
            
        
        
            
            NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file."
            
        
        
            
            NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
            
        
        
            
            NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel."
            
        
        
            
            InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor."
            
        
        
            
            InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method."
            
        
        
            
            InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length."
            
        
        
            
            InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater."
            
        
        
            
            InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file."
            
        
        
            
            InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext."
            
        
        
            
            InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection."
            
        
        
            
            InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection."
            
        
        
            
            InvalidOperationException with message like "The requested operation could not be completed, because a null EntityKey property value was returned by the object."
            
        
        
            
            InvalidOperationException with message like "A connection string must be set on the connection before you attempt this operation."
            
        
        
            
            InvalidOperationException with message like "The connection is not open."
            
        
        
            
            InvalidOperationException with message like "Cannot perform the operation because the adapter does not have a connection."
            
        
        
            
            InvalidOperationException with message like "Cannot perform the update operation because the adapter's connection is not open."
            
        
        
            
            InvalidOperationException with message like "The update operation cannot be performed, because the adapter's connection is not associated with a valid store connection."
            
        
        
            
            Core.MappingException with message like "The type '{0}'('{1}') of the member '{2}' in the conceptual  type '{3}' doesn't match with the type '{4}'('{5}') of the member '{6}' on the object side type '{7}'."
            
        
        
            
            InvalidOperationException with message like "Conflicting changes to the role '{0}' of the relationship '{1}' have been detected."
            
        
        
            
            InvalidOperationException with message like "Attach is not a valid operation when the source object associated with this related end is in an added, deleted, or detached state. Objects loaded using the NoTracking merge option are always detached."
            
        
        
            
            InvalidOperationException with message like "The object at index {0} in the specified collection of objects is null."
            
        
        
            
            InvalidOperationException with message like "The object at index {0} in the specified collection of objects is not attached to the same ObjectContext as source object of this EntityCollection."
            
        
        
            
            InvalidOperationException with message like "The object at index {0} in the specified collection of objects is in an added or deleted state. Relationships cannot be created for objects in this state."
            
        
        
            
            InvalidOperationException with message like "The object being attached to the source object is not attached to the same ObjectContext as the source object."
            
        
        
            
            InvalidOperationException with message like "The object being attached is in an added or deleted state. Relationships cannot be created for objects in this state."
            
        
        
            
            InvalidOperationException with message like "Adding a relationship with an entity which is in the Deleted state is not allowed."
            
        
        
            
            InvalidOperationException with message like "The relationship '{0}' does not match any relationship defined in the conceptual model."
            
        
        
            
            InvalidOperationException with message like "The source query for this EntityCollection or EntityReference cannot be returned when the related object is in either an added state or a detached state and was not originally retrieved using the NoTracking merge option."
            
        
        
            
            InvalidOperationException with message like "The Load method cannot return the {0} when the related object is in a deleted state."
            
        
        
            
            InvalidOperationException with message like "A relationship multiplicity constraint violation occurred: An EntityReference expected at least one related object, but the query returned no related objects from the data store."
            
        
        
            
            InvalidOperationException with message like "A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error."
            
        
        
            
            InvalidOperationException with message like "The EntityKey property cannot be set to EntityNotValidKey, NoEntitySetKey, or a temporary key."
            
        
        
            
            InvalidOperationException with message like "At least one related end in the relationship could not be found."
            
        
        
            
            InvalidOperationException with message like "The {0} could not be loaded because it is not attached to an ObjectContext."
            
        
        
            
            InvalidOperationException with message like "When an object is returned with a NoTracking merge option, Load can only be called when the EntityCollection or EntityReference does not contain objects."
            
        
        
            
            InvalidOperationException with message like "When an object is returned with a NoTracking merge option, Load cannot be called when the IsLoaded property is true."
            
        
        
            
            InvalidOperationException with message like "The object in the '{0}' role cannot be automatically added to the context because it was retrieved using the NoTracking merge option. Explicitly attach the entity to the ObjectContext before defining the relationship."
            
        
        
            
            InvalidOperationException with message like "The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects."
            
        
        
            
            InvalidOperationException with message like "Related objects cannot be loaded using the {0} merge option. Relationships cannot be created when one object was retrieved using a NoTracking merge option and the other object was retrieved using a different merge option."
            
        
        
            
            InvalidOperationException with message like "The relationship cannot be defined because the EntitySet name '{0}.{1}' is not valid for the role '{2}' in association set name '{3}.{4}'."
            
        
        
            
            InvalidOperationException with message like "Requested operation is not allowed when the owner of this RelatedEnd is null. RelatedEnd objects that were created with the default constructor should only be used as a container during serialization."
            
        
        
            
            InvalidOperationException with message like "A referential integrity constraint violation occurred: The property values that define the referential constraints are not consistent between principal and dependent objects in the relationship."
            
        
        
            
            InvalidOperationException with message like "The specified navigation property {0} could not be found."
            
        
        
            
            InvalidOperationException with message like "The attempted operation is not valid. The data reader is closed."
            
        
        
            
            InvalidOperationException with message like "Calling '{0}' when the data reader is closed is not a valid operation."
            
        
        
            
            InvalidOperationException with message like "The attempted operation is not valid. The nested data reader has been implicitly closed because its parent data reader has been read or closed."
            
        
        
            
            InvalidOperationException with message like "There was an attempt to read, but no data was present."
            
        
        
            
            ArgumentException with message like "All 'EdmMember' instances must be a valid member of the EdmType."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'."
            
        
        
            
            InvalidOperationException with message like "Sequence contains more than one element"
            
        
        
            
            InvalidOperationException with message like "The source IQueryable doesn't implement IDbAsyncEnumerable{0}. Only sources that implement IDbAsyncEnumerable can be used for Entity Framework asynchronous operations. For more details see http://go.microsoft.com/fwlink/?LinkId=287068."
            
        
        
            
            InvalidOperationException with message like "The provider for the source IQueryable doesn't implement IDbAsyncQueryProvider. Only providers that implement IDbAsyncQueryProvider can be used for Entity Framework asynchronous operations. For more details see http://go.microsoft.com/fwlink/?LinkId=287068."
            
        
        
            
            InvalidOperationException with message like "Sequence contains no elements"
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "Automatic migrations that affect the location of the migrations history system table (such as default schema changes) are not supported. Please use code-based migrations for operations that affect the location of the migrations history system table."
            
        
        
            
            InvalidOperationException with message like "Sequence contains no matching element"
            
        
        
            
            InvalidOperationException with message like "Sequence contains more than one matching element"
            
        
        
            
            InvalidOperationException with message like "The type '{0}' cannot be used to filter properties. Only scalar types, string, and byte[] are supported."
            
        
        
            
            Migrations.Infrastructure.MigrationsPendingException with message like "Unable to generate an explicit migration because the following explicit migrations are pending: [{0}]. Apply the pending explicit migrations before attempting to generate a new explicit migration."
            
        
        
            
            InvalidOperationException with message like "The base type '{0}' must be mapped to functions because its derived type '{1}' is mapped to functions. When mapping an inheritance hierarchy to functions, ensure that the root type of the hierarchy is also mapped to functions."
            
        
        
            
            ArgumentException with message like "'{0}' is not a valid resource name."
            
        
        
            
            InvalidOperationException with message like "A parameter binding to the property '{0}' was not found on the modification function '{1}'. Ensure that the parameter is valid for this modification operation and that it is not database generated."
            
        
        
            
            InvalidOperationException with message like "The connection could not be opened because it is broken. The connection must be closed before it can be opened."
            
        
        
            
            InvalidOperationException with message like "The current migration SQL generator ({0}) is unable to generate SQL for operations of type '{1}'. Call SetSqlGenerator on your migrations configuration class to use a different SQL generator. To create a custom SQL generator that can handle this type of operation, add a new class that derives from {0} and override Generate(MigrationOperation)."
            
        
        
            
            InvalidOperationException with message like "An original value parameter binding to the property '{0}' was not found on the modification function '{1}'. Ensure that the parameter is a concurrency token."
            
        
        
            
            InvalidOperationException with message like "A result binding for the property '{0}' was not found on the modification function '{1}'. Ensure that the property is database generated."
            
        
        
            
            InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting modification function mapping information."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "Could not apply auto-migration '{0}' because it includes modification function creation operations. When using auto-migrations, modification function creation operations are only supported when migrating to the current model."
            
        
        
            
            Migrations.Infrastructure.MigrationsException with message like "An existing EF5 migrations history table was detected but could not be upgraded because a custom history context factory has been configured. To upgrade an existing EF5 database, ensure there is no custom history context factory configured."
            
        
        
            
            The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method.
            
        
        
            
            The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag.
            
        
        
            
            The exception that is thrown when an invoked method is not supported, or when there is an attempt to
            read, seek, or write to a stream that does not support the invoked functionality.
            
        
        
            
            AutoGenerated resource class. Usage:
            string s = EntityRes.GetString(EntityRes.MyIdenfitier);
            
        
        
            
            Represents a conceptual or store model. This class can be used to access information about the shape of the model 
            and the way the that it has been configured. 
            
        
        
            
            Adds an association type to the model.
            
            The AssociationType instance to be added.
        
        
            
            Adds a complex type to the model.
            
            The ComplexType instance to be added.
        
        
            
            Adds an entity type to the model.
            
            The EntityType instance to be added.
        
        
            
            Adds an enumeration type to the model.
            
            The EnumType instance to be added.
        
        
            
            Adds a function to the model.
            
            The EdmFunction instance to be added.
        
        
            
            Removes an association type from the model.
            
            The AssociationType instance to be removed.
        
        
            
            Removes a complex type from the model.
            
            The ComplexType instance to be removed.
        
        
            
            Removes an entity type from the model.
            
            The EntityType instance to be removed.
        
        
            
            Removes an enumeration type from the model.
            
            The EnumType instance to be removed.
        
        
            
            Removes a function from the model.
            
            The EdmFunction instance to be removed.
        
        
            Gets the built-in type kind for this type.
            
            A  object that represents the built-in type kind for this type.
            
        
        
            
            Gets the data space associated with the model, which indicates whether 
            it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace).
            
        
        
            
            Gets the association types in the model.
            
        
        
            
            Gets the complex types in the model.
            
        
        
            
            Gets the entity types in the model.
            
        
        
            
            Gets the enum types in the model.
            
        
        
            
            Gets the functions in the model.
            
        
        
            
            Gets the container that stores entity and association sets, and function imports.
            
        
        
            Gets the version of the schema for the model.
            The version of the schema for the model.
        
        
            Gets the provider information for this model.
            The provider information for this model.
        
        
            Gets the provider manifest associated with the model.
            The provider manifest associated with the model.
        
        
            Gets the namespace names associated with the model.
            The namespace names associated with the model.
        
        
            Gets the namespace items associated with the model.
            The namespace items associated with the model.
        
        
            Gets the global items associated with the model.
            The global items associated with the model.
        
        
            Gets the containers associated with the model.
            The containers associated with the model.
        
        
            
            An implementation of IDatabaseInitializer that will recreate and optionally re-seed the
            database only if the database does not exist.
            To seed the database, create a derived class and override the Seed method.
            
             The type of the context. 
        
        
            Initializes a new instance of the  class.
        
        
            
            Executes the strategy to initialize the database for the given context.
            
             The context. 
        
        
            
            A method that should be overridden to actually add data to the context for seeding.
            The default implementation does nothing.
            
             The context to seed. 
        
        
            
            An instance of this class is obtained from an  object and can be used
            to manage the actual database backing a DbContext or connection.
            This includes creating, deleting, and checking for the existence of a database.
            Note that deletion and checking for existence of a database can be performed using just a
            connection (i.e. without a full context) by using the static methods of this class.
            
        
        
            
            Creates a Database backed by the given context.  This object can be used to create a database,
            check for database existence, and delete a database.
            
        
        
            
            Enables the user to pass in a database transaction created outside of the  object
            if you want the Entity Framework to execute commands within that external transaction.
            Alternatively, pass in null to clear the framework's knowledge of that transaction.
            
            the external transaction
            Thrown if the transaction is already completed
            
            Thrown if the connection associated with the  object is already enlisted in a
            
            transaction
            
            
            Thrown if the connection associated with the  object is already participating in a transaction
            
            Thrown if the connection associated with the transaction does not match the Entity Framework's connection
        
        
            
            Begins a transaction on the underlying store connection
            
            
            a  object wrapping access to the underlying store's transaction object
            
        
        
            
            Begins a transaction on the underlying store connection using the specified isolation level
            
            
            a  object wrapping access to the underlying store's transaction object
            
        
        
            
            Sets the database initializer to use for the given context type.  The database initializer is called when a
            the given  type is used to access a database for the first time.
            The default strategy for Code First contexts is an instance of .
            
             The type of the context. 
             The initializer to use, or null to disable initialization for the given context type. 
        
        
            
            Runs the the registered  on this context.
            If "force" is set to true, then the initializer is run regardless of whether or not it
            has been run before.  This can be useful if a database is deleted while an app is running
            and needs to be reinitialized.
            If "force" is set to false, then the initializer is only run if it has not already been
            run for this context, model, and connection in this app domain. This method is typically
            used when it is necessary to ensure that the database has been created and seeded
            before starting some operation where doing so lazily will cause issues, such as when the
            operation is part of a transaction.
            
            
            If set to true the initializer is run even if it has already been run.
            
        
        
            
            Checks whether or not the database is compatible with the the current Code First model.
            
            
            Model compatibility currently uses the following rules.
            If the context was created using either the Model First or Database First approach then the
            model is assumed to be compatible with the database and this method returns true.
            For Code First the model is considered compatible if the model is stored in the database
            in the Migrations history table and that model has no differences from the current model as
            determined by Migrations model differ.
            If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead,
            then this is used to check for compatibility.
            
            
            If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found.
            
             True if the model hash in the context and the database match; false otherwise. 
        
        
            
            Creates a new database on the database server for the model defined in the backing context.
            Note that calling this method before the database initialization strategy has run will disable
            executing that strategy.
            
        
        
            
            Creates a new database on the database server for the model defined in the backing context, but only
            if a database with the same name does not already exist on the server.
            
             True if the database did not exist and was created; false otherwise. 
        
        
            
            Checks whether or not the database exists on the server.
            
             True if the database exists; false otherwise. 
        
        
            
            Deletes the database on the database server if it exists, otherwise does nothing.
            Calling this method from outside of an initializer will mark the database as having
            not been initialized. This means that if an attempt is made to use the database again
            after it has been deleted, then any initializer set will run again and, usually, will
            try to create the database again automatically.
            
             True if the database did exist and was deleted; false otherwise. 
        
        
            
            Checks whether or not the database exists on the server.
            The connection to the database is created using the given database name or connection string
            in the same way as is described in the documentation for the  class.
            
             The database name or a connection string to the database. 
             True if the database exists; false otherwise. 
        
        
            
            Deletes the database on the database server if it exists, otherwise does nothing.
            The connection to the database is created using the given database name or connection string
            in the same way as is described in the documentation for the  class.
            
             The database name or a connection string to the database. 
             True if the database did exist and was deleted; false otherwise. 
        
        
            
            Checks whether or not the database exists on the server.
            
             An existing connection to the database. 
             True if the database exists; false otherwise. 
        
        
            
            Deletes the database on the database server if it exists, otherwise does nothing.
            
             An existing connection to the database. 
             True if the database did exist and was deleted; false otherwise. 
        
        
            
            Resets the DefaultConnectionFactory to its initial value.
            Currently, this method is only used by test code.
            
        
        
            
            Performs the operation defined by the given delegate using the given lazy connection, ensuring
            that the lazy connection is disposed after use.
            
             Information used to create a DbConnection. 
             The operation to perform. 
             The return value of the operation. 
        
        
            
            Performs the operation defined by the given delegate against a connection.  The connection
            is either the connection accessed from the context backing this object, or is obtained from
            the connection information passed to one of the static methods.
            
             The connection to use. 
             The operation to perform. 
             The return value of the operation. 
        
        
            
            Returns an empty ObjectContext that can be used to perform delete/exists operations.
            
             The connection for which to create an ObjectContext. 
             The empty context. 
        
        
             
             Creates a raw SQL query that will return elements of the given generic type.
             The type can be any type that has properties that match the names of the columns returned
             from the query, or can be a simple primitive type.  The type does not have to be an
             entity type. The results of this query are never tracked by the context even if the
             type of object returned is an entity type.  Use the 
             method to return entities that are tracked by the context.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The type of object returned by the query. 
              The SQL query string. 
              The parameters to apply to the SQL query string. 
             
             A  object that will execute the query when it is enumerated.
             
        
        
             
             Creates a raw SQL query that will return elements of the given type.
             The type can be any type that has properties that match the names of the columns returned
             from the query, or can be a simple primitive type.  The type does not have to be an
             entity type. The results of this query are never tracked by the context even if the
             type of object returned is an entity type.  Use the 
             method to return entities that are tracked by the context.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The type of object returned by the query. 
              The SQL query string. 
              The parameters to apply to the SQL query string. 
             
             A  object that will execute the query when it is enumerated.
             
        
        
             
             Executes the given DDL/DML command against the database.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
             
             If there isn't an existing local or ambient transaction a new transaction will be used
             to execute the command.
             
              The command string. 
              The parameters to apply to the command string. 
              The result returned by the database after executing the command. 
        
        
             
             Executes the given DDL/DML command against the database.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              Controls the creation of a transaction for this command. 
              The command string. 
              The parameters to apply to the command string. 
              The result returned by the database after executing the command. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Returns the connection being used by this context.  This may cause the
            connection to be created if it does not already exist.
            
            Thrown if the context has been disposed.
        
        
            
            The connection factory to use when creating a  from just
            a database name or a connection string.
            
            
            This is used when just a database name or connection string is given to  or when
            the no database name or connection is given to DbContext in which case the name of
            the context class is passed to this factory in order to generate a DbConnection.
            By default, the  instance to use is read from the application's .config
            file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in
            the config file then  is used. Setting this property in code
            always overrides whatever value is found in the config file.
            
        
        
            
            The actual connection factory that was set, rather than the one that is returned by the resolver,
            which may have come from another source.
            
        
        
            
            Checks whether or not the DefaultConnectionFactory has been set to something other than its default value.
            
        
        
            
            Gets or sets the timeout value, in seconds, for all context operations.
            The default value is null, where null indicates that the default value of the underlying
            provider will be used.
            
            
            The timeout, in seconds, or null to use the provider default.
            
        
        
            
            Set this property to log the SQL generated by the  to the given
            delegate. For example, to log to the console, set this property to .
            
            
            The format of the log text can be changed by creating a new formatter that derives from
             and setting it with .
            For more low-level control over logging/interception see  and
            .
            
        
        
            
            DbModelBuilder is used to map CLR classes to a database schema.
            This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'.
            
            
            DbModelBuilder is typically used to configure a model by overriding
            
            .
            You can also use DbModelBuilder independently of DbContext to build a model and then construct a
             or .
            The recommended approach, however, is to use OnModelCreating in  as
            the workflow is more intuitive and takes care of common tasks, such as caching the created model.
            Types that form your model are registered with DbModelBuilder and optional configuration can be
            performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder
            API.
            When the Build method is called a set of conventions are run to discover the initial model.
            These conventions will automatically discover aspects of the model, such as primary keys, and
            will also process any data annotations that were specified on your classes. Finally
            any configuration that was performed using the DbModelBuilder API is applied.
            Configuration done via the DbModelBuilder API takes precedence over data annotations which
            in turn take precedence over the default conventions.
            
        
        
            
            Initializes a new instance of the  class.
            The process of discovering the initial model will use the set of conventions included
            in the most recent version of the Entity Framework installed on your machine.
            
            
            Upgrading to newer versions of the Entity Framework may cause breaking changes
            in your application because new conventions may cause the initial model to be
            configured differently. There is an alternate constructor that allows a specific
            version of conventions to be specified.
            
        
        
            
            Initializes a new instance of the  class that will use
            a specific set of conventions to discover the initial model.
            
             The version of conventions to be used. 
        
        
            
            Excludes a type from the model. This is used to remove types from the model that were added
            by convention during initial model discovery.
            
             The type to be excluded. 
             The same DbModelBuilder instance so that multiple calls can be chained. 
        
        
            
            Configures the default database schema name. This default database schema name is used
            for database objects that do not have an explicitly configured schema name.
            
             The name of the default database schema. 
        
        
            
            Excludes the specified type(s) from the model. This is used to remove types from the model that were added
            by convention during initial model discovery.
            
             The types to be excluded from the model. 
             The same DbModelBuilder instance so that multiple calls can be chained. 
        
        
            
            Registers an entity type as part of the model and returns an object that can be used to
            configure the entity. This method can be called multiple times for the same entity to
            perform multiple lines of configuration.
            
             The type to be registered or configured. 
             The configuration object for the specified entity type. 
        
        
            
            Registers a type as an entity in the model and returns an object that can be used to
            configure the entity. This method can be called multiple times for the same type to
            perform multiple lines of configuration.
            
             The type to be registered or configured. 
             The configuration object for the specified entity type. 
        
        
            
            Registers a type as a complex type in the model and returns an object that can be used to
            configure the complex type. This method can be called multiple times for the same type to
            perform multiple lines of configuration.
            
             The type to be registered or configured. 
             The configuration object for the specified complex type. 
        
        
            
            Begins configuration of a lightweight convention that applies to all entities in
            the model.
            
             A configuration object for the convention. 
        
        
            
            Begins configuration of a lightweight convention that applies to all entities of
            the specified type in the model. This method does not register entity types as
            part of the model.
            
             The type of the entities that this convention will apply to. 
             A configuration object for the convention. 
        
        
            
            Begins configuration of a lightweight convention that applies to all properties
            in the model.
            
             A configuration object for the convention. 
        
        
            
            Begins configuration of a lightweight convention that applies to all primitive
            properties of the specified type in the model.
            
             The type of the properties that the convention will apply to. 
             A configuration object for the convention. 
            
            The convention will apply to both nullable and non-nullable properties of the
            specified type.
            
        
        
            
            Creates a  based on the configuration performed using this builder.
            The connection is used to determine the database provider being used as this
            affects the database layer of the generated model.
            
             Connection to use to determine provider information. 
             The model that was built. 
        
        
            
            Creates a  based on the configuration performed using this builder.
            Provider information must be specified because this affects the database layer of the generated model.
            For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.)
            
             The database provider that the model will be used with. 
             The model that was built. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Provides access to the settings of this DbModelBuilder that deal with conventions.
            
        
        
            
            Gets the  for this DbModelBuilder.
            The registrar allows derived entity and complex type configurations to be registered with this builder.
            
        
        
            
            A value from this enumeration can be provided directly to the 
            class or can be used in the  applied to
            a class derived from . The value used defines which version of
            the DbContext and DbModelBuilder conventions should be used when building a model from
            code--also known as "Code First".
            
            
            Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available
            when upgrading to a new release of the Entity Framework. However, it may result in an
            application behaving differently with the new release than it did with a previous release.
            This can be avoided by using a specific version of the conventions, but if a version
            other than the latest is set then not all the latest functionality will be available.
            
        
        
            
            Indicates that the latest version of the  and
             conventions should be used.
            
        
        
            
            Indicates that the version of the  and
             conventions shipped with Entity Framework v4.1
            should be used.
            
        
        
            
            Indicates that the version of the  and
             conventions shipped with Entity Framework v5.0
            when targeting .Net Framework 4 should be used.
            
        
        
            
            Indicates that the version of the  and
             conventions shipped with Entity Framework v5.0
            should be used.
            
        
        
            
            Indicates that the version of the  and
             conventions shipped with Entity Framework v6.0
            should be used.
            
        
        
            
            This attribute can be applied to a class derived from  to set which
            version of the DbContext and  conventions should be used when building
            a model from code--also known as "Code First". See the 
            enumeration for details about DbModelBuilder versions.
            
            
            If the attribute is missing from DbContextthen DbContext will always use the latest
            version of the conventions.  This is equivalent to using DbModelBuilderVersion.Latest.
            
        
        
            
            Initializes a new instance of the  class.
            
            
            The  conventions version to use.
            
        
        
            
            Gets the  conventions version.
            
            
            The  conventions version.
            
        
        
            
            A non-generic version of  which can be used when the type of entity
            is not known at build time.
            
        
        
            
            Represents a non-generic LINQ to Entities query against a DbContext.
            
        
        
            
            An internal interface implemented by  and  that allows access to
            the internal query without using reflection.
            
        
        
            
            The underlying internal set.
            
        
        
            
            Internal constructor prevents external classes deriving from DbQuery.
            
        
        
            
            Throws an exception indicating that binding directly to a store query is not supported.
            Instead populate a DbSet with data, for example by using the Load extension method, and
            then bind to local data.  For WPF bind to DbSet.Local.  For Windows Forms bind to
            DbSet.Local.ToBindingList().
            
             Never returns; always throws. 
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             The query results. 
        
        
            
            Specifies the related objects to include in the query results.
            
            
            Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
            OrderLines be included, but also Orders.  When you call the Include method, the query path is only valid on
            the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected.
            Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to
            specify multiple paths for the query.
            
             The dot-separated list of related objects to return in the query results. 
            
            A new DbQuery<T> with the defined query path.
            
        
        
            
            Returns a new query where the entities returned will not be cached in the .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of element for which the query was created. 
             The generic set object. 
        
        
            
            Returns a  representation of the underlying query.
            
             The query string. 
        
        
            
        
        
            
        
        
            
        
        
            
            Returns false.
            
            
            false .
            
        
        
            
            The IQueryable element type.
            
        
        
            
            The IQueryable LINQ Expression.
            
        
        
            
            The IQueryable provider.
            
        
        
            
            Gets the underlying internal query object.
            
             The internal query. 
        
        
            
            The internal query object that is backing this DbQuery
            
        
        
            
            An internal interface implemented by  and  that allows access to
            the internal set without using reflection.
            
        
        
            
            The underlying internal set.
            
        
        
            
            Creates an instance of a  when called from the constructor of a derived
            type that will be used as a test double for DbSets. Methods and properties that will be used by the
            test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where
            the default implementation is a no-op.
            
        
        
            
            Finds an entity with the given primary key values.
            If an entity with the given primary key values exists in the context, then it is
            returned immediately without making a request to the store.  Otherwise, a request
            is made to the store for an entity with the given primary key values and this entity,
            if found, is attached to the context and returned.  If no entity is found in the
            context or the store, then null is returned.
            
            
            The ordering of composite key values is as defined in the EDM, which is in turn as defined in
            the designer, by the Code First fluent API, or by the DataMember attribute.
            
             The values of the primary key for the entity to be found. 
             The entity found, or null. 
            Thrown if multiple entities exist in the context with the primary key values given.
            Thrown if the type of entity is not part of the data model for this context.
            Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
            Thrown if the context has been disposed.
        
        
            
            Attaches the given entity to the context underlying the set.  That is, the entity is placed
            into the context in the Unchanged state, just as if it had been read from the database.
            
             The entity to attach. 
             The entity. 
            
            Attach is used to repopulate a context with an entity that is known to already exist in the database.
            SaveChanges will therefore not attempt to insert an attached entity into the database because
            it is assumed to already be there.
            Note that entities that are already in the context in some other state will have their state set
            to Unchanged.  Attach is a no-op if the entity is already in the context in the Unchanged state.
            
        
        
            
            Adds the given entity to the context underlying the set in the Added state such that it will
            be inserted into the database when SaveChanges is called.
            
             The entity to add. 
             The entity. 
            
            Note that entities that are already in the context in some other state will have their state set
            to Added.  Add is a no-op if the entity is already in the context in the Added state.
            
        
        
            
            Adds the given collection of entities into context underlying the set with each entity being put into
            the Added state such that it will be inserted into the database when SaveChanges is called.
            
            The collection of entities to add.
            
            The collection of entities.
            
            
            Note that if  is set to true (which is
            the default), then DetectChanges will be called once before adding any entities and will not be called
            again. This means that in some situations AddRange may perform significantly better than calling
            Add multiple times would do.
            Note that entities that are already in the context in some other state will have their state set to
            Added.  AddRange is a no-op for entities that are already in the context in the Added state.
            
        
        
            
            Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
            is called.  Note that the entity must exist in the context in some other state before this method
            is called.
            
             The entity to remove. 
             The entity. 
            
            Note that if the entity exists in the context in the Added state, then this method
            will cause it to be detached from the context.  This is because an Added entity is assumed not to
            exist in the database such that trying to delete it does not make sense.
            
        
        
            
            Removes the given collection of entities from the context underlying the set with each entity being put into
            the Deleted state such that it will be deleted from the database when SaveChanges is called.
            
            The collection of entities to delete.
            
            The collection of entities.
            
            
            Note that if  is set to true (which is
            the default), then DetectChanges will be called once before delete any entities and will not be called
            again. This means that in some situations RemoveRange may perform significantly better than calling
            Remove multiple times would do.
            Note that if any entity exists in the context in the Added state, then this method
            will cause it to be detached from the context.  This is because an Added entity is assumed not to
            exist in the database such that trying to delete it does not make sense.
            
        
        
            
            Creates a new instance of an entity for the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The entity instance, which may be a proxy. 
        
        
            
            Creates a new instance of an entity for the type of this set or for a type derived
            from the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The entity instance, which may be a proxy. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity for which the set was created. 
             The generic set object. 
        
        
             
             Creates a raw SQL query that will return entities in this set.  By default, the
             entities returned are tracked by the context; this can be changed by calling
             AsNoTracking on the  returned.
             Note that the entities returned are always of the type for this set and never of
             a derived type.  If the table or tables queried may contain data for other entity
             types, then the SQL query must be written appropriately to ensure that only entities of
             the correct type are returned.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The SQL query string. 
              The parameters to apply to the SQL query string. 
             
             A  object that will execute the query when it is enumerated.
             
        
        
            
        
        
            
        
        
            
        
        
            
            Gets an  that represents a local view of all Added, Unchanged,
            and Modified entities in this set.  This local view will stay in sync as entities are added or
            removed from the context.  Likewise, entities added to or removed from the local view will automatically
            be added to or removed from the context.
            
            
            This property can be used for data binding by populating the set with data, for example by using the Load
            extension method, and then binding to the local data through this property.  For WPF bind to this property
            directly.  For Windows Forms bind to the result of calling ToBindingList on this property
            
             The local view. 
        
        
            
            The internal IQueryable that is backing this DbQuery
            
        
        
            
            Gets the underlying internal set.
            
             The internal set. 
        
        
            
            A DbSet represents the collection of all entities in the context, or that can be queried from the
            database, of a given type.  DbSet objects are created from a DbContext using the DbContext.Set method.
            
            
            Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a
            one-to-one correlation between a type and a set.
            
             The type that defines the set. 
        
        
            
            Represents a LINQ to Entities query against a DbContext.
            
             The type of entity to query for. 
        
        
            
            Creates a new query that will be backed by the given internal query object.
            
             The backing query. 
        
        
            
            Specifies the related objects to include in the query results.
            
            
            Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
            OrderLines be included, but also Orders.  When you call the Include method, the query path is only valid on
            the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected.
            Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to
            specify multiple paths for the query.
            
             The dot-separated list of related objects to return in the query results. 
            
            A new  with the defined query path.
            
        
        
            
            Returns a new query where the entities returned will not be cached in the .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Throws an exception indicating that binding directly to a store query is not supported.
            Instead populate a DbSet with data, for example by using the Load extension method, and
            then bind to local data.  For WPF bind to DbSet.Local.  For Windows Forms bind to
            DbSet.Local.ToBindingList().
            
             Never returns; always throws. 
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             The query results. 
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             The query results. 
        
        
            
            Returns a  representation of the underlying query.
            
             The query string. 
        
        
            
            Returns a new instance of the non-generic  class for this query.
            
             A non-generic version. 
        
        
            
        
        
            
        
        
            
        
        
            
            Returns false.
            
            
            false .
            
        
        
            
            The IQueryable element type.
            
        
        
            
            The IQueryable LINQ Expression.
            
        
        
            
            The IQueryable provider.
            
        
        
            
            The internal query object that is backing this DbQuery
            
        
        
            
            The internal query object that is backing this DbQuery
            
        
        
            
            An  represents the collection of all entities in the context, or that
            can be queried from the database, of a given type.   is a concrete
            implementation of IDbSet.
            
            
             was originally intended to allow creation of test doubles (mocks or
            fakes) for . However, this approach has issues in that adding new members
            to an interface breaks existing code that already implements the interface without the new members.
            Therefore, starting with EF6, no new members will be added to this interface and it is recommended
            that  be used as the base class for test doubles.
            
             The type that defines the set. 
        
        
            
            Finds an entity with the given primary key values.
            If an entity with the given primary key values exists in the context, then it is
            returned immediately without making a request to the store.  Otherwise, a request
            is made to the store for an entity with the given primary key values and this entity,
            if found, is attached to the context and returned.  If no entity is found in the
            context or the store, then null is returned.
            
            
            The ordering of composite key values is as defined in the EDM, which is in turn as defined in
            the designer, by the Code First fluent API, or by the DataMember attribute.
            
             The values of the primary key for the entity to be found. 
             The entity found, or null. 
        
        
            
            Adds the given entity to the context underlying the set in the Added state such that it will
            be inserted into the database when SaveChanges is called.
            
             The entity to add. 
             The entity. 
            
            Note that entities that are already in the context in some other state will have their state set
            to Added.  Add is a no-op if the entity is already in the context in the Added state.
            
        
        
            
            Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
            is called.  Note that the entity must exist in the context in some other state before this method
            is called.
            
             The entity to remove. 
             The entity. 
            
            Note that if the entity exists in the context in the Added state, then this method
            will cause it to be detached from the context.  This is because an Added entity is assumed not to
            exist in the database such that trying to delete it does not make sense.
            
        
        
            
            Attaches the given entity to the context underlying the set.  That is, the entity is placed
            into the context in the Unchanged state, just as if it had been read from the database.
            
             The entity to attach. 
             The entity. 
            
            Attach is used to repopulate a context with an entity that is known to already exist in the database.
            SaveChanges will therefore not attempt to insert an attached entity into the database because
            it is assumed to already be there.
            Note that entities that are already in the context in some other state will have their state set
            to Unchanged.  Attach is a no-op if the entity is already in the context in the Unchanged state.
            
        
        
            
            Creates a new instance of an entity for the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The entity instance, which may be a proxy. 
        
        
            
            Creates a new instance of an entity for the type of this set or for a type derived
            from the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The type of entity to create. 
             The entity instance, which may be a proxy. 
        
        
            
            Gets an  that represents a local view of all Added, Unchanged,
            and Modified entities in this set.  This local view will stay in sync as entities are added or
            removed from the context.  Likewise, entities added to or removed from the local view will automatically
            be added to or removed from the context.
            
            
            This property can be used for data binding by populating the set with data, for example by using the Load
            extension method, and then binding to the local data through this property.  For WPF bind to this property
            directly.  For Windows Forms bind to the result of calling ToBindingList on this property
            
             The local view. 
        
        
            
            Creates a new set that will be backed by the given .
            
             The internal set. 
        
        
            
            Creates an instance of a  when called from the constructor of a derived
            type that will be used as a test double for DbSets. Methods and properties that will be used by the
            test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where
            the default implementation is a no-op.
            
        
        
            
            Finds an entity with the given primary key values.
            If an entity with the given primary key values exists in the context, then it is
            returned immediately without making a request to the store.  Otherwise, a request
            is made to the store for an entity with the given primary key values and this entity,
            if found, is attached to the context and returned.  If no entity is found in the
            context or the store, then null is returned.
            
            
            The ordering of composite key values is as defined in the EDM, which is in turn as defined in
            the designer, by the Code First fluent API, or by the DataMember attribute.
            
             The values of the primary key for the entity to be found. 
             The entity found, or null. 
            Thrown if multiple entities exist in the context with the primary key values given.
            Thrown if the type of entity is not part of the data model for this context.
            Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
            Thrown if the context has been disposed.
        
        
            
        
        
            
        
        
            
            Adds the given collection of entities into context underlying the set with each entity being put into
            the Added state such that it will be inserted into the database when SaveChanges is called.
            
            The collection of entities to add.
            
            The collection of entities.
            
            
            Note that if  is set to true (which is
            the default), then DetectChanges will be called once before adding any entities and will not be called
            again. This means that in some situations AddRange may perform significantly better than calling
            Add multiple times would do.
            Note that entities that are already in the context in some other state will have their state set to
            Added.  AddRange is a no-op for entities that are already in the context in the Added state.
            
        
        
            
        
        
            
            Removes the given collection of entities from the context underlying the set with each entity being put into
            the Deleted state such that it will be deleted from the database when SaveChanges is called.
            
            The collection of entities to delete.
            
            The collection of entities.
            
            
            Note that if  is set to true (which is
            the default), then DetectChanges will be called once before delete any entities and will not be called
            again. This means that in some situations RemoveRange may perform significantly better than calling
            Remove multiple times would do.
            Note that if any entity exists in the context in the Added state, then this method
            will cause it to be detached from the context.  This is because an Added entity is assumed not to
            exist in the database such that trying to delete it does not make sense.
            
        
        
            
        
        
            
        
        
            
            Returns the equivalent non-generic  object.
            
             The non-generic set object. 
        
        
             
             Creates a raw SQL query that will return entities in this set.  By default, the
             entities returned are tracked by the context; this can be changed by calling
             AsNoTracking on the  returned.
             Note that the entities returned are always of the type for this set and never of
             a derived type.  If the table or tables queried may contain data for other entity
             types, then the SQL query must be written appropriately to ensure that only entities of
             the correct type are returned.
            
             As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
             context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
             Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
             context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
             
              The SQL query string. 
              The parameters to apply to the SQL query string. 
             
             A  object that will execute the query when it is enumerated.
             
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the underlying internal set.
            
             The internal set. 
        
        
            
            An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the
            database the first time that a context is used in the app domain.
            To seed the database, create a derived class and override the Seed method.
            
             The type of the context. 
        
        
            Initializes a new instance of the  class.
        
        
            
            Executes the strategy to initialize the database for the given context.
            
             The context. 
            
            
            is
            null
            .
            
        
        
            
            A method that should be overridden to actually add data to the context for seeding.
            The default implementation does nothing.
            
             The context to seed. 
        
        
            
            An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the
            database only if the model has changed since the database was created.
            
            
            Whether or not the model has changed is determined by the 
            method.
            To seed the database create a derived class and override the Seed method.
            
        
        
            Initializes a new instance of the  class.
        
        
            
            Executes the strategy to initialize the database for the given context.
            
             The context. 
            
            
            is
            null
            .
            
        
        
            
            A method that should be overridden to actually add data to the context for seeding.
            The default implementation does nothing.
            
             The context to seed. 
        
        
            
            Returned by the ChangeTracker method of  to provide access to features of
            the context that are related to change tracking of entities.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
        
        
            
            Gets  objects for all the entities tracked by this context.
            
             The entries. 
        
        
            
            Gets  objects for all the entities of the given type
            tracked by this context.
            
             The type of the entity. 
             The entries. 
        
        
            
            Checks if the  is tracking any new, deleted, or changed entities or
            relationships that will be sent to the database if  is called.
            
            
            Functionally, calling this method is equivalent to checking if there are any entities or
            relationships in the Added, Updated, or Deleted state.
            Note that this method calls  unless
             has been set to false.
            
            
            True if underlying  have changes, else false.
            
        
        
            
            Detects changes made to the properties and relationships of POCO entities.  Note that some types of
            entity (such as change tracking proxies and entities that derive from
            )
            report changes automatically and a call to DetectChanges is not normally needed for these types of entities.
            Also note that normally DetectChanges is called automatically by many of the methods of 
            and its related classes such that it is rare that this method will need to be called explicitly.
            However, it may be desirable, usually for performance reasons, to turn off this automatic calling of
            DetectChanges using the AutoDetectChangesEnabled flag from .
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            A non-generic version of the  class.
            
        
        
            
            This is an abstract base class use to represent a scalar or complex property, or a navigation property
            of an entity.  Scalar and complex properties use the derived class ,
            reference navigation properties use the derived class , and collection
            navigation properties use the derived class .
            
        
        
            
            Creates a  from information in the given .
            This method will create an instance of the appropriate subclass depending on the metadata contained
            in the InternalMemberEntry instance.
            
             The internal member entry. 
             The new entry. 
        
        
            
            Validates this property.
            
            
            Collection of  objects. Never null. If the entity is valid the collection will be empty.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity on which the member is declared. 
             The type of the property. 
             The equivalent generic object. 
        
        
            
            Gets the name of the property.
            
             The property name. 
        
        
            
            Gets or sets the current value of this property.
            
             The current value. 
        
        
            
            The  to which this member belongs.
            
             An entry for the entity that owns this member. 
        
        
            
            Gets the  backing this object.
            
             The internal member entry. 
        
        
            
            Creates a  from information in the given .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal collection entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Loads the collection of entities from the database.
            Note that entities that already exist in the context are not overwritten with values from the database.
            
        
        
            
            Returns the query that would be used to load this collection from the database.
            The returned query can be modified using LINQ to perform filtering or operations in the database, such
            as counting the number of entities in the collection in the database without actually loading them.
            
             A query for the collection. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity on which the member is declared. 
             The type of the collection element. 
             The equivalent generic object. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether all entities of this collection have been loaded from the database.
            
            
            Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly
            with one of the Load methods will set the IsLoaded flag to true.
            IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded.
            This can be useful if the application has caused a subset of related entities to be loaded into this collection
            and wants to prevent any other entities from being loaded automatically.
            Note that explict loading using one of the Load methods will load all related entities from the database
            regardless of whether or not IsLoaded is true.
            When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the
            not all related entities are now loaded.
            
            
            true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false.
            
        
        
            
            The  to which this navigation property belongs.
            
             An entry for the entity that owns this navigation property. 
        
        
            
            Gets the  backing this object as an .
            
             The internal member entry. 
        
        
            
            Instances of this class are returned from the Collection method of
             and allow operations such as loading to
            be performed on the an entity's collection navigation properties.
            
             The type of the entity to which this property belongs. 
             The type of the element in the collection of entities. 
        
        
            
            This is an abstract base class use to represent a scalar or complex property, or a navigation property
            of an entity.  Scalar and complex properties use the derived class ,
            reference navigation properties use the derived class , and collection
            navigation properties use the derived class .
            
             The type of the entity to which this property belongs. 
             The type of the property. 
        
        
            
            Creates a  from information in the given
            
            .
            This method will create an instance of the appropriate subclass depending on the metadata contained
            in the InternalMemberEntry instance.
            
             The internal member entry. 
             The new entry. 
        
        
            
            Returns a new instance of the non-generic  class for
            the property represented by this object.
            
             A non-generic version. 
        
        
            
            Validates this property.
            
            
            Collection of  objects. Never null. If the entity is valid the collection will be empty.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
             Gets the name of the property. 
             The name of the property. 
        
        
            
            Gets or sets the current value of this property.
            
             The current value. 
        
        
            
            Gets the underlying .
            
             The internal member entry. 
        
        
            
            The  to which this member belongs.
            
             An entry for the entity that owns this member. 
        
        
            
            Creates a  from information in the given
            
            .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal collection entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Loads the collection of entities from the database.
            Note that entities that already exist in the context are not overwritten with values from the database.
            
        
        
            
            Returns the query that would be used to load this collection from the database.
            The returned query can be modified using LINQ to perform filtering or operations in the database, such
            as counting the number of entities in the collection in the database without actually loading them.
            
             A query for the collection. 
        
        
            
            Returns a new instance of the non-generic  class for
            the navigation property represented by this object.
            
             A non-generic version. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether all entities of this collection have been loaded from the database.
            
            
            Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly
            with one of the Load methods will set the IsLoaded flag to true.
            IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded.
            This can be useful if the application has caused a subset of related entities to be loaded into this collection
            and wants to prevent any other entities from being loaded automatically.
            Note that explict loading using one of the Load methods will load all related entities from the database
            regardless of whether or not IsLoaded is true.
            When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the
            not all related entities are now loaded.
            
            
            true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false.
            
        
        
            
            Gets the underlying  as an .
            
             The internal member entry. 
        
        
            
            The  to which this navigation property belongs.
            
             An entry for the entity that owns this navigation property. 
        
        
            
            An immutable representation of an Entity Data Model (EDM) model that can be used to create an
             or can be passed to the constructor of a .
            For increased performance, instances of this type should be cached and re-used to construct contexts.
            
        
        
            
            For mocking.
            
        
        
            
            Creates a model for the given EDM metadata model.
            
             The EDM metadata model. 
        
        
            
            Creates an instance of ObjectContext or class derived from ObjectContext.  Note that an instance
            of DbContext can be created instead by using the appropriate DbContext constructor.
            If a derived ObjectContext is used, then it must have a public constructor with a single
            EntityConnection parameter.
            The connection passed is used by the ObjectContext created, but is not owned by the context.  The caller
            must dispose of the connection once the context has been disposed.
            
             The type of context to create. 
             An existing connection to a database for use by the context. 
        
        
            
            Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type.
            
        
        
            
            A snapshot of the  that was used to create this compiled model.
            
        
        
            
            The provider info (provider name and manifest token) that was used to create this model.
            
        
        
             Gets the default schema of the model. 
             The default schema of the model. 
        
        
            
            A non-generic version of the  class.
            
        
        
            
            A non-generic version of the  class.
            
        
        
            
            Creates a  from information in the given .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal property entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity on which the member is declared. 
             The type of the property. 
             The equivalent generic object. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the original value of this property.
            
             The original value. 
        
        
            
            Gets or sets the current value of this property.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether the value of this property has been modified since
            it was loaded from the database.
            
            
            Setting this value to false for a modified property will revert the change by setting the
            current value to the original value. If the result is that no properties of the entity are
            marked as modified, then the entity will be marked as Unchanged.
            Setting this value to false for properties of Added, Unchanged, or Deleted entities
            is a no-op.
            
            
            true if this instance is modified; otherwise, false .
            
        
        
            
            The  to which this property belongs.
            
             An entry for the entity that owns this property. 
        
        
            
            The  of the property for which this is a nested property.
            This method will only return a non-null entry for properties of complex objects; it will
            return null for properties of the entity itself.
            
             An entry for the parent complex property, or null if this is an entity property. 
        
        
            
            Gets the  backing this object.
            
             The internal member entry. 
        
        
            
            Creates a  from information in the given
            
            .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal property entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Gets an object that represents a nested property of this property.
            This method can be used for both scalar or complex properties.
            
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested complex property of this property.
            
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity on which the member is declared. 
             The type of the complex property. 
             The equivalent generic object. 
        
        
            
            Instances of this class are returned from the ComplexProperty method of
             and allow access to the state of a complex property.
            
             The type of the entity to which this property belongs. 
             The type of the property. 
        
        
            
            Instances of this class are returned from the Property method of
             and allow access to the state of the scalar
            or complex property.
            
             The type of the entity to which this property belongs. 
             The type of the property. 
        
        
            
            Creates a  from information in the given
            
            .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal property entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Returns a new instance of the non-generic  class for
            the property represented by this object.
            
             A non-generic version. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the original value of this property.
            
             The original value. 
        
        
            
            Gets or sets the current value of this property.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether the value of this property has been modified since
            it was loaded from the database.
            
            
            true if this instance is modified; otherwise, false .
            
        
        
            
            The  to which this property belongs.
            
             An entry for the entity that owns this property. 
        
        
            
            The  of the property for which this is a nested property.
            This method will only return a non-null entry for properties of complex objects; it will
            return null for properties of the entity itself.
            
             An entry for the parent complex property, or null if this is an entity property. 
        
        
            
            Gets the underlying  as an .
            
             The internal member entry. 
        
        
            
            Creates a  from information in the given .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal property entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Returns a new instance of the non-generic  class for
            the property represented by this object.
            
             A non-generic version. 
        
        
            
            Gets an object that represents a nested property of this property.
            This method can be used for both scalar or complex properties.
            
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested property of this property.
            This method can be used for both scalar or complex properties.
            
             The type of the nested property. 
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested property of this property.
            This method can be used for both scalar or complex properties.
            
             The type of the nested property. 
             An expression representing the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested complex property of this property.
            
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested complex property of this property.
            
             The type of the nested property. 
             The name of the nested property. 
             An object representing the nested property. 
        
        
            
            Gets an object that represents a nested complex property of this property.
            
             The type of the nested property. 
             An expression representing the nested property. 
             An object representing the nested property. 
        
        
            
            Describes the origin of the database connection string associated with a .
            
        
        
            
            The connection string was created by convention.
            
        
        
            
            The connection string was read from external configuration.
            
        
        
            
            The connection string was explicitly specified at runtime.
            
        
        
            
            The connection string was overriden by connection information supplied to DbContextInfo.
            
        
        
            
            Returned by the Configuration method of  to provide access to configuration
            options for the context.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets or sets a value indicating whether lazy loading of relationships exposed as
            navigation properties is enabled.  Lazy loading is enabled by default.
            
            
            true if lazy loading is enabled; otherwise, false .
            
        
        
            
            Gets or sets a value indicating whether or not the framework will create instances of
            dynamically generated proxy classes whenever it creates an instance of an entity type.
            Note that even if proxy creation is enabled with this flag, proxy instances will only
            be created for entity types that meet the requirements for being proxied.
            Proxy creation is enabled by default.
            
            
            true if proxy creation is enabled; otherwise, false .
            
        
        
            
            Gets or sets a value indicating whether database null semantics are exhibited when comparing
            two operands, both of which are potentially nullable. The default value is false.
            
            For example (operand1 == operand2) will be translated as:
            
            (operand1 = operand2)
            
            if UseDatabaseNullSemantics is true, respectively
            
            (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL)))
            
            if UseDatabaseNullSemantics is false.
            
            
            true if database null comparison behavior is enabled, otherwise false .
            
        
        
            
            Gets or sets a value indicating whether the 
            method is called automatically by methods of  and related classes.
            The default value is true.
            
            
            true if should be called automatically; otherwise, false.
            
        
        
            
            Gets or sets a value indicating whether tracked entities should be validated automatically when
             is invoked.
            The default value is true.
            
        
        
            
            Provides runtime information about a given  type.
            
        
        
            
            Creates a new instance representing a given  type.
            
            
            The type deriving from .
            
        
        
            
            Creates a new instance representing a given  targeting a specific database.
            
            
            The type deriving from .
            
             Connection information for the database to be used. 
        
        
            
            Creates a new instance representing a given  type. An external list of
            connection strings can be supplied and will be used during connection string resolution in place
            of any connection strings specified in external configuration files.
            
            
            It is preferable to use the constructor that accepts the entire config document instead of using this
            constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config
            to be found in addition to explicitly specified connection strings.
            
            
            The type deriving from .
            
             A collection of connection strings. 
        
        
            
            Creates a new instance representing a given  type. An external config
            object (e.g. app.config or web.config) can be supplied and will be used during connection string
            resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
            
            
            The type deriving from .
            
             An object representing the config file. 
        
        
            
            Creates a new instance representing a given , targeting a specific database.
            An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string
            resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
            
            
            The type deriving from .
            
             An object representing the config file. 
             Connection information for the database to be used. 
        
        
            
            Creates a new instance representing a given  type.  A 
            can be supplied in order to override the default determined provider used when constructing
            the underlying EDM model.
            
            
            The type deriving from .
            
            
            A  specifying the underlying ADO.NET provider to target.
            
        
        
            
            Creates a new instance representing a given  type. An external config
            object (e.g. app.config or web.config) can be supplied and will be used during connection string
            resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
            A  can be supplied in order to override the default determined
            provider used when constructing the underlying EDM model. This can be useful to prevent EF from
            connecting to discover a manifest token.
            
            
            The type deriving from .
            
             An object representing the config file. 
            
            A  specifying the underlying ADO.NET provider to target.
            
        
        
            
            Called internally when a context info is needed for an existing context, which may not be constructable.
            
             The context instance to get info from. 
        
        
            
            If instances of the underlying  type can be created, returns
            a new instance; otherwise returns null.
            
            
            A  instance.
            
        
        
            
            The concrete  type.
            
        
        
            
            Whether or not instances of the underlying  type can be created.
            
        
        
            
            The connection string used by the underlying  type.
            
        
        
            
            The connection string name used by the underlying  type.
            
        
        
            
            The ADO.NET provider name of the connection used by the underlying  type.
            
        
        
            
            The origin of the connection string used by the underlying  type.
            
        
        
            
            An action to be run on the DbModelBuilder after OnModelCreating has been run on the context.
            
        
        
            
            A non-generic version of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Queries the database for copies of the values of the tracked entity as they currently exist in the database.
            Note that changing the values in the returned dictionary will not update the values in the database.
            If the entity is not found in the database then null is returned.
            
             The store values. 
        
        
            
            Reloads the entity from the database overwriting any property values with values from the database.
            The entity will be in the Unchanged state after calling this method.
            
        
        
            
            Gets an object that represents the reference (i.e. non-collection) navigation property from this
            entity to another entity.
            
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the collection navigation property from this
            entity to a collection of related entities.
            
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents a scalar or complex property of this entity.
            
             The name of the property. 
             An object representing the property. 
        
        
            
            Gets an object that represents a complex property of this entity.
            
             The name of the complex property. 
             An object representing the complex property. 
        
        
            
            Gets an object that represents a member of the entity.  The runtime type of the returned object will
            vary depending on what kind of member is asked for.  The currently supported member types and their return
            types are:
            Reference navigation property: .
            Collection navigation property: .
            Primitive/scalar property: .
            Complex property: .
            
             The name of the member. 
             An object representing the member. 
        
        
            
            Returns a new instance of the generic  class for the given
            generic type for the tracked entity represented by this object.
            Note that the type of the tracked entity must be compatible with the generic type or
            an exception will be thrown.
            
             The type of the entity. 
             A generic version. 
        
        
            
            Validates this  instance and returns validation result.
            
            
            Entity validation result. Possibly null if
            
            method is overridden.
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Returns a hash code for this instance.
            
             A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the entity.
            
             The entity. 
        
        
            
            Gets or sets the state of the entity.
            
             The state. 
        
        
            
            Gets the current property values for the tracked entity represented by this object.
            
             The current values. 
        
        
            
            Gets the original property values for the tracked entity represented by this object.
            The original values are usually the entity's property values as they were when last queried from
            the database.
            
             The original values. 
        
        
            
            Gets InternalEntityEntry object for this DbEntityEntry instance.
            
        
        
            
            Instances of this class provide access to information about and control of entities that
            are being tracked by the .  Use the Entity or Entities methods of
            the context to obtain objects of this type.
            
             The type of the entity. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Queries the database for copies of the values of the tracked entity as they currently exist in the database.
            Note that changing the values in the returned dictionary will not update the values in the database.
            If the entity is not found in the database then null is returned.
            
             The store values. 
        
        
            
            Reloads the entity from the database overwriting any property values with values from the database.
            The entity will be in the Unchanged state after calling this method.
            
        
        
            
            Gets an object that represents the reference (i.e. non-collection) navigation property from this
            entity to another entity.
            
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the reference (i.e. non-collection) navigation property from this
            entity to another entity.
            
             The type of the property. 
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the reference (i.e. non-collection) navigation property from this
            entity to another entity.
            
             The type of the property. 
             An expression representing the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the collection navigation property from this
            entity to a collection of related entities.
            
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the collection navigation property from this
            entity to a collection of related entities.
            
             The type of elements in the collection. 
             The name of the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents the collection navigation property from this
            entity to a collection of related entities.
            
             The type of elements in the collection. 
             An expression representing the navigation property. 
             An object representing the navigation property. 
        
        
            
            Gets an object that represents a scalar or complex property of this entity.
            
             The name of the property. 
             An object representing the property. 
        
        
            
            Gets an object that represents a scalar or complex property of this entity.
            
             The type of the property. 
             The name of the property. 
             An object representing the property. 
        
        
            
            Gets an object that represents a scalar or complex property of this entity.
            
             The type of the property. 
             An expression representing the property. 
             An object representing the property. 
        
        
            
            Gets an object that represents a complex property of this entity.
            
             The name of the complex property. 
             An object representing the complex property. 
        
        
            
            Gets an object that represents a complex property of this entity.
            
             The type of the complex property. 
             The name of the complex property. 
             An object representing the complex property. 
        
        
            
            Gets an object that represents a complex property of this entity.
            
             The type of the complex property. 
             An expression representing the complex property. 
             An object representing the complex property. 
        
        
            
            Gets an object that represents a member of the entity.  The runtime type of the returned object will
            vary depending on what kind of member is asked for.  The currently supported member types and their return
            types are:
            Reference navigation property: .
            Collection navigation property: .
            Primitive/scalar property: .
            Complex property: .
            
             The name of the member. 
             An object representing the member. 
        
        
            
            Gets an object that represents a member of the entity.  The runtime type of the returned object will
            vary depending on what kind of member is asked for.  The currently supported member types and their return
            types are:
            Reference navigation property: .
            Collection navigation property: .
            Primitive/scalar property: .
            Complex property: .
            
             The type of the member. 
             The name of the member. 
             An object representing the member. 
        
        
            
            Returns a new instance of the non-generic  class for
            the tracked entity represented by this object.
            
             A non-generic version. 
        
        
            
            Validates this  instance and returns validation result.
            
            
            Entity validation result. Possibly null if
            
            method is overridden.
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Returns a hash code for this instance.
            
             A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the entity.
            
             The entity. 
        
        
            
            Gets or sets the state of the entity.
            
             The state. 
        
        
            
            Gets the current property values for the tracked entity represented by this object.
            
             The current values. 
        
        
            
            Gets the original property values for the tracked entity represented by this object.
            The original values are usually the entity's property values as they were when last queried from
            the database.
            
             The original values. 
        
        
            
            Represents an Entity Data Model (EDM) created by the .
            The Compile method can be used to go from this EDM representation to a 
            which is a compiled snapshot of the model suitable for caching and creation of
             or  instances.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            For test purpose only.
            
        
        
            
            Creates a  for this mode which is a compiled snapshot
            suitable for caching and creation of  instances.
            
             The compiled model. 
        
        
            
            Gets the provider information.
            
        
        
            
            Gets the provider manifest.
            
        
        
            
            A snapshot of the  that was used to create this compiled model.
            
        
        
            
            A collection of all the properties for an underlying entity or complex object.
            
            
            An instance of this class can be converted to an instance of the generic class
            using the Cast method.
            Complex properties in the underlying entity or complex object are represented in
            the property values as nested instances of this class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal dictionary. 
        
        
            
            Creates an object of the underlying type for this dictionary and hydrates it with property
            values from this dictionary.
            
             The properties of this dictionary copied into a new object. 
        
        
            
            Sets the values of this dictionary by reading values out of the given object.
            The given object can be of any type.  Any property on the object with a name that
            matches a property name in the dictionary and can be read will be read.  Other
            properties will be ignored.  This allows, for example, copying of properties from
            simple Data Transfer Objects (DTOs).
            
             The object to read values from. 
        
        
            
            Creates a new dictionary containing copies of all the properties in this dictionary.
            Changes made to the new dictionary will not be reflected in this dictionary and vice versa.
            
             A clone of this dictionary. 
        
        
            
            Sets the values of this dictionary by reading values from another dictionary.
            The other dictionary must be based on the same type as this dictionary, or a type derived
            from the type for this dictionary.
            
             The dictionary to read values from. 
        
        
            
            Gets the value of the property just like using the indexed property getter but
            typed to the type of the generic parameter.  This is useful especially with
            nested dictionaries to avoid writing expressions with lots of casts.
            
             The type of the property. 
             Name of the property. 
             The value of the property. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Gets the set of names of all properties in this dictionary as a read-only set.
            
             The property names. 
        
        
            
            Gets or sets the value of the property with the specified property name.
            The value may be a nested instance of this class.
            
             The property name. 
             The value of the property. 
        
        
            
            Gets the internal dictionary.
            
             The internal dictionary. 
        
        
            
            Groups a pair of strings that identify a provider and server version together into a single object.
            
            
            Instances of this class act as the key for resolving a  for a specific
            provider from a . This is typically used when registering spatial services
            in  or when the spatial services specific to a provider is
            resolved by an implementation of .
            
        
        
            
            Creates a new object for a given provider invariant name and manifest token.
            
            
            A string that identifies that provider. For example, the SQL Server
            provider uses the string "System.Data.SqlCient".
            
            
            A string that identifies that version of the database server being used. For example, the SQL Server
            provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty.
            The manifest token is sometimes referred to as a version hint.
            
        
        
            
        
        
            
        
        
            
            A string that identifies that provider. For example, the SQL Server
            provider uses the string "System.Data.SqlCient".
            
        
        
            
            A string that identifies that version of the database server being used. For example, the SQL Server
            provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty.
            
        
        
            
            A non-generic version of the  class.
            
        
        
            
            Creates a  from information in the given .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal reference entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Loads the entity from the database.
            Note that if the entity already exists in the context, then it will not overwritten with values from the database.
            
        
        
            
            Returns the query that would be used to load this entity from the database.
            The returned query can be modified using LINQ to perform filtering or operations in the database.
            
             A query for the entity. 
        
        
            
            Returns the equivalent generic  object.
            
             The type of entity on which the member is declared. 
             The type of the property. 
             The equivalent generic object. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether the entity has been loaded from the database.
            
            
            Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly
            with one of the Load methods will set the IsLoaded flag to true.
            IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded.
            Note that explict loading using one of the Load methods will load the related entity from the database
            regardless of whether or not IsLoaded is true.
            When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is
            no longer loaded.
            
            
            true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false.
            
        
        
            
            The  to which this navigation property belongs.
            
             An entry for the entity that owns this navigation property. 
        
        
            
            Gets the  backing this object as an .
            
             The internal member entry. 
        
        
            
            Instances of this class are returned from the Reference method of
             and allow operations such as loading to
            be performed on the an entity's reference navigation properties.
            
             The type of the entity to which this property belongs. 
             The type of the property. 
        
        
            
            Creates a  from information in the given
            
            .
            Use this method in preference to the constructor since it may potentially create a subclass depending on
            the type of member represented by the InternalCollectionEntry instance.
            
             The internal reference entry. 
             The new entry. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
        
        
            
            Loads the entity from the database.
            Note that if the entity already exists in the context, then it will not overwritten with values from the database.
            
        
        
            
            Returns the query that would be used to load this entity from the database.
            The returned query can be modified using LINQ to perform filtering or operations in the database.
            
             A query for the entity. 
        
        
            
            Returns a new instance of the non-generic  class for
            the navigation property represented by this object.
            
             A non-generic version. 
        
        
            
            Gets the property name.
            
             The property name. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether the entity has been loaded from the database.
            
            
            Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly
            with one of the Load methods will set the IsLoaded flag to true.
            IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded.
            Note that explict loading using one of the Load methods will load the related entity from the database
            regardless of whether or not IsLoaded is true.
            When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is
            no longer loaded.
            
            
            true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false.
            
        
        
            
            Gets the underlying  as an .
            
             The internal member entry. 
        
        
            
            The  to which this navigation property belongs.
            
             An entry for the entity that owns this navigation property. 
        
        
            
            Exception thrown by  when it was expected that SaveChanges for an entity would
            result in a database update but in fact no rows in the database were affected.  This usually indicates
            that the database has been concurrently updated such that a concurrency token that was expected to match
            did not actually match.
            Note that state entries referenced by this exception are not serialized due to security and accesses to
            the state entries after serialization will return null.
            
        
        
            
            Exception thrown by  when the saving of changes to the database fails.
            Note that state entries referenced by this exception are not serialized due to security and accesses to the
            state entries after serialization will return null.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
             The inner exception. 
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
             The inner exception. 
        
        
            
            Subscribes the SerializeObjectState event.
            
        
        
            
            Gets  objects that represents the entities that could not
            be saved to the database.
            
             The entries representing the entities that could not be saved. 
        
        
            
            Holds exception state that will be serialized when the exception is serialized.
            
        
        
            
            Completes the deserialization.
            
             The deserialized object. 
        
        
            
            Gets or sets a value indicating whether the exception involved independent associations.
            
        
        
            
            Initializes a new instance of the  class.
            
             The context. 
             The inner exception. 
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
             The inner exception. 
        
        
            
            Represents an entity used to store metadata about an EDM in the database.
            
        
        
            
            Attempts to get the model hash calculated by Code First for the given context.
            This method will return null if the context is not being used in Code First mode.
            
             The context. 
             The hash string. 
        
        
            
            Gets or sets the ID of the metadata entity, which is currently always 1.
            
             The id. 
        
        
            
            Gets or sets the model hash which is used to check whether the model has
            changed since the database was created from it.
            
             The model hash. 
        
        
            
            Contains methods used to access the Entity Data Model created by Code First in the EDMX form.
            These methods are typically used for debugging when there is a need to look at the model that
            Code First creates internally.
            
        
        
            
            Uses Code First with the given context and writes the resulting Entity Data Model to the given
            writer in EDMX form.  This method can only be used with context instances that use Code First
            and create the model internally.  The method cannot be used for contexts created using Database
            First or Model First, for contexts created using a pre-existing , or
            for contexts created using a pre-existing .
            
             The context. 
             The writer. 
        
        
            
            Writes the Entity Data Model represented by the given  to the
            given writer in EDMX form.
            
             An object representing the EDM. 
             The writer. 
        
        
            
            A factory for creating derived  instances. Implement this
            interface to enable design-time services for context types that do not have a
            public default constructor.
            At design-time, derived  instances can be created in order to enable specific
            design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation
            for derived  types that do not have a public, default constructor, implement
            this interface. Design-time services will auto-discover implementations of this interface that are in the
            same assembly as the derived  type.
            
        
        
            
            Creates a new instance of a derived  type.
            
             An instance of TContext 
        
        
            
            This  convention causes DbModelBuilder to include metadata about the model
            when it builds the model. When  creates a model by convention it will
            add this convention to the list of those used by the DbModelBuilder.  This will then result in
            model metadata being written to the database if the DbContext is used to create the database.
            This can then be used as a quick check to see if the model has changed since the last time it was
            used against the database.
            This convention can be removed from the  conventions by overriding
            the OnModelCreating method on a derived DbContext class.
            
        
        
            
            Adds metadata to the given model configuration.
            
             The model configuration. 
        
        
            
            This  convention uses the name of the derived
             class as the container for the conceptual model built by
            Code First.
            
        
        
            
            Initializes a new instance of the  class.
            
             The model container name. 
        
        
            
            Applies the convention to the given model.
            
             The container to apply the convention to. 
             The model. 
        
        
            
            This  convention uses the namespace of the derived
             class as the namespace of the conceptual model built by
            Code First.
            
        
        
            
            Initializes a new instance of the  class.
            
             The model namespace. 
        
        
            
            Instances of this class are used internally to create constant expressions for 
            that are inserted into the expression tree to  replace references to 
            and .
            
             The type of the element. 
        
        
            
            Private constructor called by the Create factory method.
            
             The query. 
        
        
            
            Factory method called by CreateDelegate to create an instance of this class.
            
             The query, which must be a generic object of the expected type. 
             A new instance. 
        
        
            
            The public property expected in the LINQ expression tree.
            
             The query. 
        
        
            
            Instances of this class are used to create DbConnection objects for
            SQL Server Compact Edition based on a given database name or connection string.
            
            
            It is necessary to provide the provider invariant name of the SQL Server Compact
            Edition to use when creating an instance of this class.  This is because different
            versions of SQL Server Compact Editions use different invariant names.
            An instance of this class can be set on the  class to
            cause all DbContexts created with no connection information or just a database
            name or connection string to use SQL Server Compact Edition by default.
            This class is immutable since multiple threads may access instances simultaneously
            when creating connections.
            
        
        
            
            Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString
            properties.
            
             The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. 
        
        
            
            Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties.
            
             The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. 
             The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location. 
             The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called. 
        
        
            
            Creates a connection for SQL Server Compact Edition based on the given database name or connection string.
            If the given string contains an '=' character then it is treated as a full connection string,
            otherwise it is treated as a database name only.
            
             The database name or connection string. 
             An initialized DbConnection. 
        
        
            
            The path to prepend to the database name that will form the file name used by
            SQL Server Compact Edition when it creates or reads the database file.
            The default value is "|DataDirectory|", which means the file will be placed
            in the designated data directory.
            
        
        
            
            The connection string to use for options to the database other than the 'Data Source'.
            The Data Source will be prepended to this string based on the database name when
            CreateConnection is called.
            The default is the empty string, which means no other options will be used.
            
        
        
            
            The provider invariant name that specifies the version of SQL Server Compact Edition
            that should be used.
            
        
        
            
            Instances of this class are used to create DbConnection objects for
            SQL Server based on a given database name or connection string. By default, the connection is
            made to '.\SQLEXPRESS'.  This can be changed by changing the base connection
            string when constructing a factory instance.
            
            
            An instance of this class can be set on the  class to
            cause all DbContexts created with no connection information or just a database
            name or connection string to use SQL Server by default.
            This class is immutable since multiple threads may access instances simultaneously
            when creating connections.
            
        
        
            
            Creates a new connection factory with a default BaseConnectionString property of
            'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'.
            
        
        
            
            Creates a new connection factory with the given BaseConnectionString property.
            
             The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called. 
        
        
            
            Creates a connection for SQL Server based on the given database name or connection string.
            If the given string contains an '=' character then it is treated as a full connection string,
            otherwise it is treated as a database name only.
            
             The database name or connection string. 
             An initialized DbConnection. 
        
        
            
            Remove hard dependency on DbProviderFactories.
            
        
        
            
            The connection string to use for options to the database other than the 'Initial Catalog'.
            The 'Initial Catalog' will  be prepended to this string based on the database name when
            CreateConnection is called.
            The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'.
            
        
        
            
            This attribute can be applied to either an entire derived  class or to
            individual  or  properties on that class.  When applied
            any discovered  or  properties will still be included
            in the model but will not be automatically initialized.
            
        
        
            
            Thrown when a context is generated from the  templates in Database First or Model
            First mode and is then used in Code First mode.
            
            
            Code generated using the T4 templates provided for Database First and Model First use may not work
            correctly if used in Code First mode. To use these classes with Code First please add any additional
            configuration using attributes or the DbModelBuilder API and then remove the code that throws this
            exception.
            
        
        
            
            Initializes a new instance of the  class.
            
        
        
            
            Initializes a new instance of the  class.
            
             The object that holds the serialized object data. 
             The contextual information about the source or destination. 
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
        
        
            
            Initializes a new instance of the  class.
            
             The message. 
             The inner exception. 
        
        
            
            Implements ICachedMetadataWorkspace for a Code First model.
            
        
        
            
            Represents an object that holds a cached copy of a MetadataWorkspace and optionally the
            assemblies containing entity types to use with that workspace.
            
        
        
            
            Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist.
            If the workspace is not compatible with the provider manifest obtained from the given
            connection then an exception is thrown.
            
             The connection to use to create or check SSDL provider info. 
             The workspace. 
        
        
            
            The list of assemblies that contain entity types for this workspace, which may be empty, but
            will never be null.
            
        
        
            
            The default container name for code first is the container name that is set from the DbModelBuilder
            
        
        
            
            The provider info used to construct the workspace.
            
        
        
            
            Builds and stores the workspace based on the given code first configuration.
            
             The code first EDM model. 
        
        
            
            Gets the .
            If the workspace is not compatible with the provider manifest obtained from the given
            connection then an exception is thrown.
            
             The connection to use to create or check SSDL provider info. 
             The workspace. 
        
        
            
            The default container name for code first is the container name that is set from the DbModelBuilder
            
        
        
            
            The list of assemblies that contain entity types for this workspace, which may be empty, but
            will never be null.
            
        
        
            
            The provider info used to construct the workspace.
            
        
        
            
            The methods here are called from multiple places with an ObjectContext that may have
            been created in a variety of ways and ensure that the same code is run regardless of
            how the context was created.
            
        
        
            
            Used a delegate to do the actual creation once an ObjectContext has been obtained.
            This is factored in this way so that we do the same thing regardless of how we get to
            having an ObjectContext.
            Note however that a context obtained from only a connection will have no model and so
            will result in an empty database.
            
        
        
            
            Used a delegate to do the actual existence check once an ObjectContext has been obtained.
            This is factored in this way so that we do the same thing regardless of how we get to
            having an ObjectContext.
            
        
        
            
            Used a delegate to do the actual check/delete once an ObjectContext has been obtained.
            This is factored in this way so that we do the same thing regardless of how we get to
            having an ObjectContext.
            
        
        
            
            Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
            
        
        
            
            Creates a new pair of the given set of entity types and DbSet initializer delegate.
            
        
        
            
            The entity types part of the pair.
            
        
        
            
            The DbSet properties initializer part of the pair.
            
        
        
            
            Static helper methods only.
            
        
        
            
            Given two key values that may or may not be byte arrays, this method determines
            whether or not they are equal.  For non-binary key values, this is equivalent
            to Object.Equals.  For binary keys, it is by comparison of every byte in the
            arrays.
            
        
        
            
            Given two property values this method determines whether the scalar property values are equal
            and whether the complex property values are the same.
            
        
        
            
            Provides a standard helper method for quoting identifiers
            
             Identifier to be quoted. Does not validate that this identifier is valid. 
             Quoted string 
        
        
            
            Checks the given string which might be a database name or a connection string and determines
            whether it should be treated as a name or connection string.  Currently, the test is simply
            whether or not the string contains an '=' character--if it does, then it should be treated
            as a connection string.
            
             The name or connection string. 
            
            true if the string should be treated as a connection string; false if it should be treated as a name.
            
        
        
            
            Determines whether the given string should be treated as a database name directly (it contains no '='),
            is in the form name=foo, or is some other connection string.  If it is a direct name or has name=, then
            the name is extracted and the method returns true.
            
             The name or connection string. 
             The name. 
             True if a name is found; false otherwise. 
        
        
            
            Determines whether the given string is a full EF connection string with provider, provider connection string,
            and metadata parts, or is is instead some other form of connection string.
            
             The name or connection string. 
            
            true if the given string is an EF connection string; otherwise, false .
            
        
        
            
            Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference,
            etc methods on  and
             classes.
            
             The type of the entity. 
             The type of the property. 
             The property. 
             Name of the method. 
             Name of the param. 
             The property name. 
        
        
            
            Called recursively to parse an expression tree representing a property path such
            as can be passed to Include or the Reference/Collection/Property methods of .
            This involves parsing simple property accesses like o => o.Products as well as calls to Select like
            o => o.Products.Select(p => p.OrderLines).
            
             The expression to parse. 
             The expression parsed into an include path, or null if the expression did not match. 
             True if matching succeeded; false if the expression could not be parsed. 
        
        
            
            Gets a cached dictionary mapping property names to property types for all the properties
            in the given type.
            
        
        
            
            Gets a dictionary of compiled property setter delegates for the underlying types.
            The dictionary is cached for the type in the app domain.
            
        
        
            
            Used by the property setter delegates to throw for attempts to set null onto
            non-nullable properties or otherwise go ahead and set the property.
            
        
        
            
            Gets a dictionary of compiled property getter delegates for the underlying types.
            The dictionary is cached for the type in the app domain.
            
        
        
            
            Creates a new  with the NoTracking merge option applied.
            The query object passed in is not changed.
            
             The query. 
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            The query object passed in is not changed.
            
             The query. 
             A new query with AsStreaming applied. 
        
        
            
            Converts  to 
            
             Name of the property being validated with ValidationAttributes. Null for type-level validation. 
            
            ValidationResults instances to be converted to  instances.
            
            
            An  created based on the  .
            
            
             class contains a property with names of properties the error applies to.
            On the other hand each  applies at most to a single property. As a result for
            each name in ValidationResult.MemberNames one  will be created (with some
            exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames).
            
        
        
            
            Calculates a "path" to a property. For primitive properties on an entity type it is just the
            name of the property. Otherwise it is a dot separated list of names of the property and all
            its ancestor properties starting from the entity.
            
             Property for which to calculate the path. 
             Dot separated path to the property. 
        
        
            
            Gets names of the property and its ancestor properties as enumerable walking "bottom-up".
            
             Property for which to get the segments. 
             Names of the property and its ancestor properties. 
        
        
            
            Gets an  type for the given element type.
            
             Type of the element. 
             The collection type. 
        
        
            
            Creates a database name given a type derived from DbContext.  This handles nested and
            generic classes.  No attempt is made to ensure that the name is not too long since this
            is provider specific.  If a too long name is generated then the provider will throw and
            the user must correct by specifying their own name in the DbContext constructor.
            
             Type of the context. 
             The database name to use. 
        
        
            
            A local (in-memory) view of the entities in a DbSet.
            This view contains Added entities and does not contain Deleted entities.  The view extends
            from  and hooks up events between the collection and the
            state manager to keep the view in sync.
            
             The type of the entity. 
        
        
            
            Initializes a new instance of the  class for entities
            of the given generic type in the given internal context.
            
             The internal context. 
        
        
            
            Called by the  base class when the collection changes.
            This method looks at the change made to the collection and reflects those changes in the
            state manager.
            
            
            The  instance containing the event data.
            
        
        
            
            Handles events from the state manager for entities entering, leaving, or being marked as deleted.
            The local view is kept in sync with these changes.
            
             The sender. 
            
            The  instance containing the event data.
            
        
        
            
            Clears the items by calling remove on each item such that we get Remove events that
            can be tracked back to the state manager, rather than a single Reset event that we
            cannot deal with.
            
        
        
            
            Adds a contains check to the base implementation of InsertItem since we can't support
            duplicate entities in the set.
            
             The index at which to insert. 
             The item to insert. 
        
        
            
            Determines whether an entity is in the set.
            
            
            true if  is found in the set; otherwise, false.
            
             The entity to locate in the set. The value can be null.
        
        
            
            Removes the first occurrence of a specific entity object from the set.
            
            
            true if  is successfully removed; otherwise, false.
            This method also returns false if  was not found in the set.
            
             The entity to remove from the set. The value can be null.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Returns a cached binding list implementation backed by this ObservableCollection.
            
             The binding list. 
        
        
            
            Service used to search for instance properties on a DbContext class that can
            be assigned a DbSet instance.  Also, if the the property has a public setter,
            then a delegate is compiled to set the property to a new instance of DbSet.
            All of this information is cached per app domain.
            
        
        
            
            Creates a set discovery service for the given derived context.
            
        
        
            
            Processes the given context type to determine the DbSet or IDbSet
            properties and collect root entity types from those properties.  Also, delegates are
            created to initialize any of these properties that have public setters.
            If the type has been processed previously in the app domain, then all this information
            is returned from a cache.
            
             A dictionary of potential entity type to the list of the names of the properties that used the type. 
        
        
            
            Calls the public setter on any property found to initialize it to a new instance of DbSet.
            
        
        
            
            Registers the entities and their entity set name hints with the given .
            
             The model builder. 
        
        
            
            Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise
            returns true.
            
        
        
            
            Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type.
            
             The type to check. 
             The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. 
        
        
            
            Given a type that might be an IDbSet\IObjectSet, determine if the type implements IDbSet<>\IObjectSet<>, and if
            so return the element type of the IDbSet\IObjectSet.  Currently, if the collection implements IDbSet<>\IObjectSet<>
            multiple times with different types, then we will return false since this is not supported.
            
             The type to check. 
             The element type of the IDbSet\IObjectSet, or null if the type does not match. 
        
        
            
            A EagerInternalConnection object wraps an already existing DbConnection object.
            
        
        
            
            InternalConnection objects manage DbConnections.
            Two concrete base classes of this abstract interface exist:
            and .
            
        
        
            
            IInternalConnection objects manage DbConnections.
            Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection.
            
        
        
            
            Creates an  from metadata in the connection.  This method must
            only be called if ConnectionHasModel returns true.
            
             The newly created context. 
        
        
            
            Returns the underlying DbConnection.
            
        
        
            
            Returns a key consisting of the connection type and connection string.
            If this is an EntityConnection then the metadata path is included in the key returned.
            
        
        
            
            Gets a value indicating whether the connection is an EF connection which therefore contains
            metadata specifying the model, or instead is a store connection, in which case it contains no
            model info.
            
            
            true if the connection contains model info; otherwise, false .
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries
            and connection strins.
            
        
        
            
            Gets or sets the provider to be used when creating the underlying connection.
            
        
        
            
            Gets the name of the underlying connection string.
            
        
        
            
            Gets the original connection string.
            
        
        
            
            Creates an  from metadata in the connection.  This method must
            only be called if ConnectionHasModel returns true.
            
             The newly created context. 
        
        
            
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            
        
        
            
            Called after the connection is initialized for the first time.
            
        
        
            
            Returns the underlying DbConnection.
            
        
        
            
            Returns a key consisting of the connection type and connection string.
            If this is an EntityConnection then the metadata path is included in the key returned.
            
        
        
            
            Gets a value indicating whether the connection is an EF connection which therefore contains
            metadata specifying the model, or instead is a store connection, in which case it contains no
            model info.
            
            
            true if the connection contains model info; otherwise, false .
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries
            and connection strins.
            
        
        
            
            Gets or sets the provider to be used when creating the underlying connection.
            
        
        
            
            Gets the name of the underlying connection string.
            
        
        
            
            Gets the original connection string.
            
        
        
            
            Gets or sets the underlying  object.  No initialization is done when the
            connection is obtained, and it can also be set to null.
            
             The underlying connection. 
        
        
            
            Creates a new EagerInternalConnection that wraps an existing DbConnection.
            
             An existing connection. 
            
            If set to true then the underlying connection should be disposed when this object is disposed.
            
        
        
            
            Dispose the existing connection is the original caller has specified that it should be disposed
            by the framework.
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            An  is an  where the 
            instance that it wraps is set immediately at construction time rather than being created lazily. In this case
            the internal context may or may not own the  instance but will only dispose it
            if it does own it.
            
        
        
            
            An  underlies every instance of  and wraps an
             instance.
            The  also acts to expose necessary information to other parts of the design in a
            controlled manner without adding a lot of internal methods and properties to the 
            class itself.
            Two concrete classes derive from this abstract class -  and
            .
            
        
        
            
            Returns the underlying  without causing the underlying database to be created
            or the database initialization strategy to be executed.
            This is used to get a context that can then be used for database creation/initialization.
            
        
        
            
            Returns the underlying  without causing the underlying database to be created
            or the database initialization strategy to be executed.
            This is used to get a context that can then be used for database creation/initialization.
            
        
        
            
            Creates a new temporary  based on the same metadata and connection as the real
             and sets it as the context to use DisposeTempObjectContext is called.
            This allows this internal context and its DbContext to be used for transient operations
            such as initializing and seeding the database, after which it can be thrown away.
            This isolates the real  from any changes made and and saves performed.
            
        
        
            
            If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context
            and returns this internal context and its DbContext to using the real ObjectContext.
            
        
        
            
            Called by methods of  to create a database either using the Migrations pipeline
            if possible and the core provider otherwise.
            
             The context to use for core provider calls. 
        
        
            
            Internal implementation of .
            
             True if the model hash in the context and the database match; false otherwise. 
        
        
            
            Checks whether the given model (an EDMX document) matches the current model.
            
        
        
            
            Queries the database for a model hash and returns it if found or returns null if the table
            or the row doesn't exist in the database.
            
             The model hash, or null if not found. 
        
        
            
            Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns
            null if the database does not contain a model.
            
        
        
            
            Saves the model hash from the context to the database.
            
        
        
            
            Performs the initialization action that may result in a  and
            handle the exception to provide more meaning to the user.
            
             The action. 
        
        
            
            Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager.
            This is a virtual method on this class so that it can be mocked.
            
             The event handler. 
        
        
            
            Checks whether or not the given object is in the context in any state other than Deleted.
            This is a virtual method on this class so that it can be mocked.
            
             The entity. 
            
            true if the entity is in the context and not deleted; otherwise false .
            
        
        
            
            Saves all changes made in this context to the underlying database.
            
             The number of objects written to the underlying database. 
        
        
            
            Initializes this instance, which means both the context is initialized and the underlying
            database is initialized.
            
        
        
            
            Initializes the underlying ObjectContext but does not cause the database to be initialized.
            
        
        
            
            Marks the database as having not been initialized. This is called when the app calls Database.Delete so
            that the database if the app attempts to then use the database again it will be re-initialized automatically.
            
        
        
            
            Runs the  unless it has already been run or there
            is no initializer for this context type in which case this method does nothing.
            
        
        
            
            Marks the database as having been initialized without actually running the
            
            .
            
        
        
            
            Runs the  if one has been set for this context type.
            Calling this method will always cause the initializer to run even if the database is marked
            as initialized.
            
        
        
            
            Disposes the context. Override the DisposeContext method to perform
            additional work when disposing.
            
        
        
            
            Performs additional work to dispose a context.
            
        
        
            
            Calls DetectChanges on the underlying  if AutoDetectChangesEnabled is
            true or if force is set to true.
            
            
            if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled.
            
        
        
            
            Returns the DbSet instance for the given entity type.
            This property is virtual and returns  to that it can be mocked.
            
             The entity type for which a set should be returned. 
             A set for the given entity type. 
        
        
            
            Returns the non-generic  instance for the given entity type.
            This property is virtual and returns  to that it can be mocked.
            
             The entity type for which a set should be returned. 
             A set for the given entity type. 
        
        
            
            Creates an internal set using an app domain cached delegate.
            
             Type of the entity. 
             The set. 
        
        
            
            Returns the entity set and the base type for that entity set for the given type.
            This method does o-space loading if required and throws if the type is not in the model.
            
             The entity type to lookup. 
             The entity set and base type pair. 
        
        
            
            Returns the entity set and the base type for that entity set for the given type if that
            type is mapped in the model, otherwise returns null.
            This method does o-space loading if required.
            
             The entity type to lookup. 
             The entity set and base type pair, or null if not found. 
        
        
            
            Checks whether or not the given entity type is mapped in the model.
            
             The entity type to lookup. 
             True if the type is mapped as an entity; false otherwise. 
        
        
            
            Gets the local entities of the type specified from the state manager.  That is, all
            Added, Modified, and Unchanged entities of the given type.
            
             The type of entity to get. 
             The entities. 
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the
            database backing this context. The results are not materialized as entities or tracked.
            
             The type of the element. 
             The SQL. 
             Whether the query is streaming or buffering. 
             The parameters. 
             The query results. 
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the
            database backing this context. The results are not materialized as entities or tracked.
            
             Type of the element. 
             The SQL. 
             Whether the query is streaming or buffering. 
             The parameters. 
             The query results. 
        
        
            
            Calls the generic ExecuteSqlQuery but with a non-generic return type so that it
            has the correct signature to be used with CreateDelegate above.
            
        
        
            
            Executes the given SQL command against the database backing this context.
            
             Controls the creation of a transaction for this command. 
             The SQL. 
             The parameters. 
             The return value from the database. 
        
        
            
            Gets the underlying  for the given entity, or returns null if the entity isn't tracked by this context.
            This method is virtual so that it can be mocked.
            
             The entity. 
             The state entry or null. 
        
        
            
            Gets the underlying  objects for all entities tracked by
            this context.
            This method is virtual so that it can be mocked.
            
             State entries for all tracked entities. 
        
        
            
            Gets the underlying  objects for all entities of the given
            type tracked by this context.
            This method is virtual so that it can be mocked.
            
             The type of the entity. 
             State entries for all tracked entities of the given type. 
        
        
            
            Helper method that gets the underlying  objects for all entities that
            match the given predicate.
            
        
        
            
            Wraps the given  in either a  or
            a  depending on the actual exception type and the state
            entries involved.
            
             The update exception. 
             A new exception wrapping the given exception. 
        
        
            
            Uses the underlying context to create an entity such that if the context is configured
            to create proxies and the entity is suitable then a proxy instance will be returned.
            This method is virtual so that it can be mocked.
            
             The type of the entity. 
             The new entity instance. 
        
        
            
            Uses the underlying context to create an entity such that if the context is configured
            to create proxies and the entity is suitable then a proxy instance will be returned.
            This method is virtual so that it can be mocked.
            
             The type of entity to create. 
             The new entity instance. 
        
        
            
            This method is used by CreateDelegate to transform the CreateObject method with return type TEntity
            into a method with return type object which matches the required type of the delegate.
            
        
        
            
            Replaces the connection that will be used by this context.
            The connection can only be changed before the context is initialized.
            
             The new connection. 
        
        
            
            Throws if the context has been disposed.
            
        
        
            
            Checks whether or not the internal cache of types to entity sets has been initialized,
            and initializes it if necessary.
            
        
        
            
            Forces all DbSets to be initialized, which in turn causes o-space loading to happen
            for any entity type for which we have a DbSet. This includes all DbSets that were
            discovered on the user's DbContext type.
            
        
        
            
            Performs o-space loading for the type and returns false if the type is not in the model.
            
        
        
            
            Performs o-space loading for the type and throws if the type is not in the model.
            
             Type of the entity. 
        
        
            
            Returns true if the given entity type does not have EdmEntityTypeAttribute but is in
            an assembly that has EdmSchemaAttribute.  This indicates mixing of POCO and EOCO in the
            same assembly, which is something that we don't support.
            
        
        
            
            Determines whether or not the given clrType is mapped to a complex type.  Assumes o-space loading has happened.
            
        
        
            
            Updates the cache of types to entity sets either for the first time or after potentially
            doing some o-space loading.
            
        
        
            
            The public context instance that owns this internal context.
            
        
        
            
            Returns the underlying .
            
        
        
            
            Gets the temp object context, or null if none has been set.
            
             The temp object context. 
        
        
            
            The compiled model created from the Code First pipeline, or null if Code First was
            not used to create this context.
            Causes the Code First pipeline to be run to create the model if it has not already been
            created.
            
        
        
            
            Set to true when a database initializer is performing some actions, such as creating or deleting
            a database, or seeding the database.
            
        
        
            
            Gets the default database initializer to use for this context if no other has been registered.
            For code first this property returns a  instance.
            For database/model first, this property returns null.
            
             The default initializer. 
        
        
            
            Gets or sets a value indicating whether lazy loading is enabled.
            
        
        
            
            Gets or sets a value indicating whether proxy creation is enabled.
            
        
        
            
            Gets or sets a value indicating whether database null comparison behavior is enabled.
            
        
        
            
            Gets or sets a value indicating whether DetectChanges is called automatically in the API.
            
        
        
            
            Gets or sets a value indicating whether to validate entities when  is called.
            
        
        
            
            True if the context has been disposed.
            
        
        
            
            The connection underlying this context.  Accessing this property does not cause the context
            to be initialized, only its connection.
            
        
        
            
            The connection string as originally applied to the context. This is used to perform operations
            that need the connection string in a non-mutated form, such as with security info still intact.
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries,
            database intializers and connection strings.
            
        
        
            
            Gets or sets the provider details to be used when building the EDM model.
            
        
        
            
            Gets the name of the underlying connection string.
            
        
        
            
            Gets the provider name being used either using a cached value or getting it from
            the DbConnection in use.
            
        
        
            
            Gets or sets a custom OnModelCreating action.
            
        
        
            
            Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations
            against the database.
            Note that this virtual property can be mocked to help with unit testing.
            
        
        
            
            Gets  instance used to create validators and validation contexts.
            This property is virtual to allow mocking.
            
        
        
            
            This is the default context key that is used by database initializers if no Migrations
            configuration is found.
            
        
        
            
            This is either the  or if a Migrations configuration is
            discovered then it is the context key from the discovered configuration.
            
        
        
            
            For mocking.
            
        
        
            
            Constructs an  for an already existing .
            
            
            The owner  .
            
            
            The existing  .
            
        
        
            
            Returns the underlying  without causing the underlying database to be created
            or the database initialization strategy to be executed.
            This is used to get a context that can then be used for database creation/initialization.
            
        
        
            
            Does nothing, since the  already exists.
            
        
        
            
            Does nothing since the database is always considered initialized if the  was created
            from an existing .
            
        
        
            
            Does nothing since the database is always considered initialized if the  was created
            from an existing .
            
        
        
            
            Does nothing since the database is always considered initialized if the  was created
            from an existing .
            
        
        
            
            Disposes the context. The underlying  is also disposed if it is owned.
            
        
        
            
        
        
            
            Returns the underlying .
            
        
        
            
            The  actually being used, which may be the
            temp context for initialization or the real context.
            
        
        
            
            Gets the default database initializer to use for this context if no other has been registered.
            For code first this property returns a  instance.
            For database/model first, this property returns null.
            
             The default initializer. 
        
        
            
            The connection underlying this context.
            
        
        
            
            The connection string as originally applied to the context. This is used to perform operations
            that need the connection string in a non-mutated form, such as with security info still intact.
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets or sets a value indicating whether lazy loading is enabled.  This is just a wrapper
            over the same flag in the underlying .
            
        
        
            
            Gets or sets a value indicating whether proxy creation is enabled.  This is just a wrapper
            over the same flag in the underlying ObjectContext.
            
        
        
            
            Gets or sets a value indicating whether C# null comparison behavior is enabled.  This is just a wrapper
            over the same flag in the underlying ObjectContext.
            
        
        
            
            An implementation of  that represents a clone of another
            dictionary.  That is, all the property values have been been copied into this dictionary.
            
        
        
            
            The internal class used to implement .
            This internal class allows for a clean internal factoring without compromising the public API.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context with which the entity of complex object is associated. 
             The type of the entity or complex object. 
            
            If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object.
            
        
        
            
            Implemented by subclasses to get the dictionary item for a given property name.
            Checking that the name is valid should happen before this method is called such
            that subclasses do not need to perform the check.
            
             Name of the property. 
             An item for the given name. 
        
        
            
            Creates an object of the underlying type for this dictionary and hydrates it with property
            values from this dictionary.
            
             The properties of this dictionary copied into a new object. 
        
        
            
            Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which
            case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.)
            In either case, app domain cached compiled delegates are used to do the creation.
            
        
        
            
            Sets the values of this dictionary by reading values out of the given object.
            The given object must be of the type that this dictionary is based on.
            
             The object to read values from. 
        
        
            
            Creates a new dictionary containing copies of all the properties in this dictionary.
            Changes made to the new dictionary will not be reflected in this dictionary and vice versa.
            
             A clone of this dictionary. 
        
        
            
            Sets the values of this dictionary by reading values from another dictionary.
            The other dictionary must be based on the same type as this dictionary, or a type derived
            from the type for this dictionary.
            
             The dictionary to read values from. 
        
        
            
            Gets the dictionary item for the property with the given name.
            This method checks that the given name is valid.
            
             The property name. 
             The item. 
        
        
            
            Sets the value of the property only if it is different from the current value and is not
            an invalid attempt to set a complex property.
            
        
        
            
            Gets the set of names of all properties in this dictionary as a read-only set.
            
             The property names. 
        
        
            
            Gets or sets the value of the property with the specified property name.
            The value may be a nested instance of this class.
            
             The property name. 
             The value of the property. 
        
        
            
            Gets the entity type of complex type that this dictionary is based on.
            
             The type of the object underlying this dictionary. 
        
        
            
            Gets the internal context with which the underlying entity or complex type is associated.
            
             The internal context. 
        
        
            
            Gets a value indicating whether the object for this dictionary is an entity or a complex object.
            
            
            true if this this is a dictionary for an entity; false if it is a dictionary for a complex object.
            
        
        
            
            Initializes a new instance of the  class by copying
            values from the given dictionary.
            
             The dictionary to clone. 
             If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. 
        
        
            
            Gets the dictionary item for a given property name.
            
             Name of the property. 
             An item for the given name. 
        
        
            
            Gets the set of names of all properties in this dictionary as a read-only set.
            
             The property names. 
        
        
            
            An implementation of  for an item in a .
            
        
        
            
            Represents an item in an  representing a property name/value.
            
        
        
            
            Gets or sets the value of the property represented by this item.
            
             The value. 
        
        
            
            Gets the name of the property.
            
             The name. 
        
        
            
            Gets a value indicating whether this item represents a complex property.
            
            
            true If this instance represents a complex property; otherwise, false .
            
        
        
            
            Gets the type of the underlying property.
            
             The property type. 
        
        
            
            Initializes a new instance of the  class.
            
             The name. 
             The value. 
             The type. 
            
            If set to true this item represents a complex property.
            
        
        
            
            Gets or sets the value of the property represented by this item.
            
             The value. 
        
        
            
            Gets the name of the property.
            
             The name. 
        
        
            
            Gets a value indicating whether this item represents a complex property.
            
            
            true If this instance represents a complex property; otherwise, false .
            
        
        
            
            Gets the type of the underlying property.
            
             The property type. 
        
        
            
            An implementation of  that is based on an existing
             instance.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
             The type. 
             The data record. 
            
            If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object.
            
        
        
            
            Gets the dictionary item for a given property name.
            
             Name of the property. 
             An item for the given name. 
        
        
            
            Gets the set of names of all properties in this dictionary as a read-only set.
            
             The property names. 
        
        
            
            An implementation of  for an item in a .
            
        
        
            
            Initializes a new instance of the  class.
            
             The data record. 
             The ordinal. 
             The value. 
        
        
            
            Gets or sets the value of the property represented by this item.
            
             The value. 
        
        
            
            Gets the name of the property.
            
             The name. 
        
        
            
            Gets a value indicating whether this item represents a complex property.
            
            
            true If this instance represents a complex property; otherwise, false .
            
        
        
            
            Gets the type of the underlying property.
            
             The property type. 
        
        
            
            This is version of an internal interface that already exists in System.Data.Entity that
            is implemented by .  Using this interface allows state
            entries to be mocked for unit testing.  The plan is to remove this version of the
            interface and use the one in System.Data.Entity once we roll into the framework.
            Note that some members may need to be added to the interface in the framework when
            we combine the two.
            
        
        
            
            The internal class used to implement  and
            .
            This internal class contains all the common implementation between the generic and non-generic
            entry classes and also allows for a clean internal factoring without compromising the public API.
            
        
        
            
            Base class for  and 
            containing common code for collection and reference navigation property entries.
            
        
        
            
            Base class for all internal entries that represent different kinds of properties.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal entity entry. 
             The member metadata. 
        
        
            
            Validates this property.
            
             A sequence of validation errors for this property. Empty if no errors. Never null. 
        
        
            
            Creates a new non-generic  backed by this internal entry.
            The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry.
            
             The new entry. 
        
        
            
            Creates a new generic  backed by this internal entry.
            The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry.
            
             The type of the entity. 
             The type of the property. 
             The new entry. 
        
        
            
            Gets the property name.
            The property is virtual to allow mocking.
            
             The property name. 
        
        
            
            Gets or sets the current value of the navigation property.
            
             The current value. 
        
        
            
            Gets the internal entity entry property belongs to.
            This property is virtual to allow mocking.
            
             The internal entity entry. 
        
        
            
            Gets the entry metadata.
            
             The entry metadata. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entity entry. 
             The navigation metadata. 
        
        
            
            Calls Load on the underlying .
            
        
        
            
            Uses CreateSourceQuery on the underlying  to create a query for this
            navigation property.
            
        
        
            
            Gets the navigation property value from the  object.
            
             The entity. 
             The navigation property value. 
        
        
            
            Validates that the owning entity entry is associated with an underlying
            
            and
            is not just wrapping a non-attached entity.
            If the entity is not detached, then the RelatedEnd for this navigation property is obtained.
            
        
        
            
            Calls IsLoaded on the underlying .
            
        
        
            
            Gets the related end, which will be null if the entity is not being tracked.
            
             The related end. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references or the collection of references
            for a collection property.
            This property is virtual so that it can be mocked.
            
             The current value. 
        
        
            
            Gets a delegate that can be used to get the value of the property directly from the entity.
            Returns null if the property does not have an accessible getter.
            
             The getter delegate, or null. 
        
        
            
            Gets a delegate that can be used to set the value of the property directly on the entity.
            Returns null if the property does not have an accessible setter.
            
             The setter delegate, or null. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entity entry. 
             The navigation metadata. 
        
        
            
            Gets the navigation property value from the  object.
            Since for a collection the related end is an , it means
            that the internal representation of the navigation property is just the related end.
            
             The entity. 
             The navigation property value. 
        
        
            
            Creates a new non-generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The new entry. 
        
        
            
            Creates a new generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The type of the entity. 
             The type of the property. 
             The new entry. 
        
        
            
            Creates a new generic  backed by this internal entry.
            The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry.
            
             The type of the entity. 
             The type of the element. 
             The new entry. 
        
        
            
            Creates a  object for the given entity type
            and collection element type.
            
             The type of the entity. 
             The type of the property. 
             Type of the element. 
             The set. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references or the collection of references
            for a collection property.
            
             The current value. 
        
        
            
            The internal class used to implement 
            and .
            This internal class contains all the common implementation between the generic and non-generic
            entry classes and also allows for a clean internal factoring without compromising the public API.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
             The state entry. 
        
        
            
            Initializes a new instance of the  class for an
            entity which may or may not be attached to the context.
            
             The internal context. 
             The entity. 
        
        
            
            Queries the database for copies of the values of the tracked entity as they currently exist in the database.
            
             The store values. 
        
        
            
            Appends a query for the properties in the entity to the given string builder that is being used to
            build the eSQL query.  This method may be called recursively to query for all the sub-properties of
            a complex property.
            
             The query builder. 
             The qualifier with which to prefix each property name. 
             The dictionary that acts as a template for the properties to query. 
        
        
            
            Validates that a dictionary can be obtained for the state of the entity represented by this entry.
            
             The method name being used to request a dictionary. 
             The state that is invalid for the request being processed. 
        
        
            
            Calls Refresh with StoreWins on the underlying state entry.
            
        
        
            
            Gets an internal object representing a reference navigation property.
            This method is virtual to allow mocking.
            
             The navigation property. 
             The type of entity requested, which may be 'object' or null if any type can be accepted. 
             The entry. 
        
        
            
            Gets an internal object representing a collection navigation property.
            This method is virtual to allow mocking.
            
             The navigation property. 
             The type of entity requested, which may be 'object' or null f any type can be accepted. 
             The entry. 
        
        
            
            Gets an internal object representing a navigation, scalar, or complex property.
            This method is virtual to allow mocking.
            
             Name of the property. 
             The type of entity requested, which may be 'object' if any type can be accepted. 
             The entry. 
        
        
            
            Gets an internal object representing a scalar or complex property.
            This method is virtual to allow mocking.
            
             The property. 
             The type of object requested, which may be null or 'object' if any type can be accepted. 
            
            if set to true then the found property must be a complex property.
            
             The entry. 
        
        
            
            Gets an internal object representing a scalar or complex property.
            The property may be a nested property on the given .
            
             The parent property entry, or null if this is a property directly on the entity. 
             Name of the property. 
             The type of object requested, which may be null or 'object' if any type can be accepted. 
            
            if set to true then the found property must be a complex property.
            
             The entry. 
        
        
            
            Gets an internal object representing a scalar or complex property.
            The property may be a nested property on the given .
            
             The parent property entry, or null if this is a property directly on the entity. 
             Name of the property. 
             The property split out into its parts. 
             The type of object requested, which may be null or 'object' if any type can be accepted. 
            
            if set to true then the found property must be a complex property.
            
             The entry. 
        
        
            
            Checks that the given property name is a navigation property and is either a reference property or
            collection property according to the value of requireCollection.
            
        
        
            
            Gets metadata for the given property if that property is a navigation property or returns null
            if it is not a navigation property.
            
             Name of the property. 
             Navigation property metadata or null. 
        
        
            
            Gets the type of entity or entities at the target end of the given navigation property.
            
             The navigation property. 
             The CLR type of the entity or entities at the other end. 
        
        
            
            Gets the related end for the navigation property with the given name.
            
             The navigation property. 
        
        
            
            Uses EDM metadata to validate that the property name exists in the model and represents a scalar or
            complex property or exists in the CLR type.
            This method is public and virtual so that it can be mocked.
            
             The property name. 
             The type on which the property is declared. 
             The type of object requested, which may be 'object' if any type can be accepted. 
             Metadata for the property. 
        
        
            
            Splits the given property name into parts delimited by dots.
            
             Name of the property. 
             The parts of the name. 
        
        
            
            Validates that this entry is associated with an underlying  and
            is not just wrapping a non-attached entity.
            
        
        
            
            Validates entity represented by this entity entry.
            This method is virtual to allow mocking.
            
             User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. 
            
             containing validation result. Never null.
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Determines whether the specified  is equal to this instance.
            Two  instances are considered equal if they are both entries for
            the same entity on the same .
            
            
            The  to compare with this instance.
            
            
            true if the specified  is equal to this instance; otherwise, false .
            
        
        
            
            Returns a hash code for this instance.
            
             A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
        
        
            
            Gets the tracked entity.
            This property is virtual to allow mocking.
            
             The entity. 
        
        
            
            Gets or sets the state of the entity.
            
             The state. 
        
        
            
            Gets the current property values for the tracked entity represented by this object.
            This property is virtual to allow mocking.
            
             The current values. 
        
        
            
            Gets the original property values for the tracked entity represented by this object.
            The original values are usually the entity's property values as they were when last queried from
            the database.
            This property is virtual to allow mocking.
            
             The original values. 
        
        
            
            Checks whether or not this entry is associated with an underlying  or
            is just wrapping a non-attached entity.
            
        
        
            
            Gets the type of the entity being tracked.
            
             The type of the entity. 
        
        
            
            Gets the c-space entity type for this entity from the EDM.
            
        
        
            
            Gets the underlying object state entry.
            
        
        
            
            Gets the internal context.
            
             The internal context. 
        
        
            
            A concrete implementation of  used for properties of entities.
            
        
        
            
            The internal class used to implement  and
            .
            This internal class contains all the common implementation between the generic and non-generic
            entry classes and also allows for a clean internal factoring without compromising the public API.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
             The property info. 
        
        
            
            Creates a delegate that will get the value of this property.
            
             The delegate. 
        
        
            
            Creates a delegate that will set the value of this property.
            
             The delegate. 
        
        
            
            Returns true if the property of the entity that this property is ultimately part
            of is set as modified.  If this is a property of an entity, then this method returns
            true if the property is modified.  If this is a property of a complex object, then
            this method returns true if the top-level complex property on the entity is modified.
            
             True if the entity property is modified. 
        
        
            
            Sets the property of the entity that this property is ultimately part of to modified.
            If this is a property of an entity, then this method marks it as modified.
            If this is a property of a complex object, then this method marks the top-level
            complex property as modified.
            
        
        
            
            Rejects changes to this property.
            If this is a property of a complex object, then this method rejects changes to the top-level
            complex property.
            
        
        
            
            Walks the tree from a property of a complex property back up to the top-level
            complex property and then checks whether or not DetectChanges still considers
            the complex property to be modified. If it does not, then the complex property
            is marked as Unchanged.
            
        
        
            
            Throws if the user attempts to set a complex property to null.
            
             The value. 
        
        
            
            Sets the given value directly onto the underlying entity object.
            
             The value. 
             True if the property had a setter that we could attempt to call; false if no setter was available. 
        
        
            
            Sets the property value, potentially by setting individual nested values for a complex
            property.
            
             
             The value. 
        
        
            
            Gets an internal object representing a scalar or complex property of this property,
            which must be a mapped complex property.
            This method is virtual to allow mocking.
            
             The property. 
             The type of object requested, which may be null or 'object' if any type can be accepted. 
            
            if set to true then the found property must be a complex property.
            
             The entry. 
        
        
            
            Validates that the owning entity entry is associated with an underlying
            
            and
            is not just wrapping a non-attached entity.
            
        
        
            
            Creates a new non-generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The new entry. 
        
        
            
            Creates a new generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The type of the entity. 
             The type of the property. 
             The new entry. 
        
        
            
            Returns parent property, or null if this is a property on the top-level entity.
            
        
        
            
            Gets the current values of the parent entity or complex property.
            That is, the current values that contains the value for this property.
            
             The parent current values. 
        
        
            
            Gets the original values of the parent entity or complex property.
            That is, the original values that contains the value for this property.
            
             The parent original values. 
        
        
            
            A delegate that reads the value of this property.
            May be null if there is no way to set the value due to missing accessors on the type.
            
        
        
            
            A delegate that sets the value of this property.
            May be null if there is no way to set the value due to missing accessors on the type.
            
        
        
            
            Gets or sets the original value.
            Note that complex properties are returned as objects, not property values.
            
        
        
            
            Gets or sets the current value.
            Note that complex properties are returned as objects, not property values.
            Also, for complex properties, the object returned is the actual complex object from the entity
            and setting the complex object causes the actual object passed to be set onto the entity.
            
             The current value. 
        
        
            
            Gets or sets a value indicating whether this property is modified.
            
        
        
            
            Gets the property metadata.
            
             The property metadata. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal entry. 
             The property info. 
        
        
            
            Creates a delegate that will get the value of this property.
            
             The delegate. 
        
        
            
            Creates a delegate that will set the value of this property.
            
             The delegate. 
        
        
            
            Returns true if the property of the entity that this property is ultimately part
            of is set as modified.  Since this is a property of an entity this method returns
            true if the property is modified.
            
             True if the entity property is modified. 
        
        
            
            Sets the property of the entity that this property is ultimately part of to modified.
            Since this is a property of an entity this method marks it as modified.
            
        
        
            
            Rejects changes to this property.
            
        
        
            
            Walks the tree from a property of a complex property back up to the top-level
            complex property and then checks whether or not DetectChanges still considers
            the complex property to be modified. If it does not, then the complex property
            is marked as Unchanged.
            
        
        
            
            Returns parent property, or null if this is a property on the top-level entity.
            
        
        
            
            Gets the current values of the parent entity.
            That is, the current values that contains the value for this property.
            
             The parent current values. 
        
        
            
            Gets the original values of the parent entity.
            That is, the original values that contains the value for this property.
            
             The parent original values. 
        
        
            
            A concrete implementation of  used for properties of complex objects.
            
        
        
            
            Initializes a new instance of the  class.
            
             The parent property entry. 
             The property metadata. 
        
        
            
            Creates a delegate that will get the value of this property.
            
             The delegate. 
        
        
            
            Creates a delegate that will set the value of this property.
            
             The delegate. 
        
        
            
            Returns true if the property of the entity that this property is ultimately part
            of is set as modified.  Since this is a property of a complex object
            this method returns true if the top-level complex property on the entity is modified.
            
             True if the entity property is modified. 
        
        
            
            Sets the property of the entity that this property is ultimately part of to modified.
            Since this is a property of a complex object this method marks the top-level
            complex property as modified.
            
        
        
            
            Rejects changes to this property.
            Since this is a property of a complex object this method rejects changes to the top-level
            complex property.
            
        
        
            
            Walks the tree from a property of a complex property back up to the top-level
            complex property and then checks whether or not DetectChanges still considers
            the complex property to be modified. If it does not, then the complex property
            is marked as Unchanged.
            
        
        
            
            Returns parent property, or null if this is a property on the top-level entity.
            
        
        
            
            Gets the current values of the parent complex property.
            That is, the current values that contains the value for this property.
            
             The parent current values. 
        
        
            
            Gets the original values of the parent complex property.
            That is, the original values that contains the value for this property.
            
             The parent original values. 
        
        
            
            The internal class used to implement ,
            and .
            This internal class contains all the common implementation between the generic and non-generic
            entry classes and also allows for a clean internal factoring without compromising the public API.
            
        
        
            
            Initializes a new instance of the  class.
            
             The internal entity entry. 
             The navigation metadata. 
        
        
            
            Gets the navigation property value from the  object.
            For reference navigation properties, this means getting the value from the
             object.
            
             The entity. 
             The navigation property value. 
        
        
            
            Sets the navigation property value onto the  object.
            For reference navigation properties, this means setting the value onto the
             object.
            
             The value. 
        
        
            
            Sets the given value on the given  which must be an
            .
            This method is setup in such a way that it can easily be used by CreateDelegate without any
            dynamic code generation needed.
            
             The type of the related entity. 
             The entity reference. 
             The value. 
        
        
            
            Creates a new non-generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The new entry. 
        
        
            
            Creates a new generic  backed by this internal entry.
            The runtime type of the DbMemberEntry created will be  or a subtype of it.
            
             The type of the entity. 
             The type of the property. 
             The new entry. 
        
        
            
            Gets or sets the current value of the navigation property.  The current value is
            the entity that the navigation property references or the collection of references
            for a collection property.
            
             The current value. 
        
        
            
            Contains metadata about a member of an entity type or complex type.
            
        
        
            
            Initializes a new instance of the  class.
            
             The type that the property is declared on. 
             Type of the property. 
             The property name. 
        
        
            
            Creates a new  the runtime type of which will be
            determined by the metadata.
            
             The entity entry to which the member belongs. 
             The parent property entry if the new entry is nested, otherwise null. 
             The new entry. 
        
        
            
            Gets the type of the member for which this is metadata.
            
             The type of the member entry. 
        
        
            
            Gets the name of the property.
            
             The name. 
        
        
            
            Gets the type of the entity or complex object that on which the member is declared.
            
             The type that the member is declared on. 
        
        
            
            Gets the type of element for the property, which for non-collection properties
            is the same as the MemberType and which for collection properties is the type
            of element contained in the collection.
            
             The type of the element. 
        
        
            
            Gets the type of the member, which for collection properties is the type
            of the collection rather than the type in the collection.
            
             The type of the member. 
        
        
            
            The types of member entries supported.
            
        
        
            
            Initializes a new instance of the  class.
            
             The type that the property is declared on. 
             Type of the property. 
             The property name. 
            
            if set to true this is a collection nav prop.
            
        
        
            
            Creates a new  the runtime type of which will be
            determined by the metadata.
            
             The entity entry to which the member belongs. 
             The parent property entry which will always be null for navigation entries. 
             The new entry. 
        
        
            
            Gets the type of the member for which this is metadata.
            
             The type of the member entry. 
        
        
            
            Gets the type of the member, which for collection properties is the type
            of the collection rather than the type in the collection.
            
             The type of the member. 
        
        
            
            Contains metadata for a property of a complex object or entity.
            
        
        
            
            Initializes a new instance of the  class.
            
             The type that the property is declared on. 
             Type of the property. 
             The property name. 
            
            if set to true the property is mapped in the EDM.
            
            
            if set to true the property is a complex property.
            
        
        
            
            Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM)
            and that it is a complex or scalar property rather than a nav property and then returns metadata about
            the property.
            
             The internal context. 
             The type that the property is declared on. 
             The type of property requested, which may be 'object' if any type can be accepted. 
             Name of the property. 
             Metadata about the property, or null if the property does not exist or is a navigation property. 
        
        
            
            Creates a new  the runtime type of which will be
            determined by the metadata.
            
             The entity entry to which the member belongs. 
             The parent property entry if the new entry is nested, otherwise null. 
             The new entry. 
        
        
            
            Gets a value indicating whether this is a complex property.
            That is, not whether or not this is a property on a complex object, but rather if the
            property itself is a complex property.
            
            
            true if this instance is complex; otherwise, false .
            
        
        
            
            Gets the type of the member for which this is metadata.
            
             The type of the member entry. 
        
        
            
            Gets a value indicating whether this instance is mapped in the EDM.
            
            
            true if this instance is mapped; otherwise, false .
            
        
        
            
            Gets the type of the member, which for collection properties is the type
            of the collection rather than the type in the collection.
            
             The type of the member. 
        
        
            
            An implementation of  that wraps an existing set but makes
            it read-only.
            
        
        
            
            Initializes a new instance of the  class wrapped around
            another existing set.
            
             The existing set. 
        
        
            
            This is a temporary adapter class that wraps an  and
            presents it as an .  This class will be removed once
            we roll into the System.Data.Entity assembly.  See 
            for more details.
            
        
        
            
            Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
            
        
        
            
            Creates a new pair of the given EntitySet and BaseType.
            
        
        
            
            The EntitySet part of the pair.
            
        
        
            
            The BaseType part of the pair.
            
        
        
            
            Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names.
            
        
        
            
            Creates a new pair of the given database initializer delegate and a flag
            indicating whether or not it is locked.
            
        
        
            
            The initializer delegate.
            
        
        
            
            A flag indicating whether or not the initializer is locked and should not be changed.
            
        
        
            
            Represents a raw SQL query against the context for any type where the results are never
            associated with an entity set and are never tracked.
            
        
        
            
            Represents a raw SQL query against the context that may be for entities in an entity set
            or for some other non-entity element type.
            
        
        
            
            Initializes a new instance of the  class.
            
             The SQL. 
             Whether the query is streaming or buffering. 
             The parameters. 
        
        
            
            If the query is tracking entities, then this method returns a new query that will
            not track entities.
            
             A no-tracking query. 
        
        
            
            If the query is buffering, then this method returns a new query that will stream
            the results instead.
            
             A streaming query. 
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the database.
            
             The query results. 
        
        
            
            Returns a  that contains the SQL string that was set
            when the query was created.  The parameters are not included.
            
            
            A  that represents this instance.
            
        
        
            
            Gets the SQL query string,
            
             The SQL query. 
        
        
            
            Get the query streaming behavior.
            
            
            true if the query is streaming;
            false if the query is buffering
            
        
        
            
            Gets the parameters.
            
             The parameters. 
        
        
            
            Initializes a new instance of the  class.
            
             The internal context. 
             Type of the element. 
             The SQL. 
             Whether the query is streaming or buffering. 
             The parameters. 
        
        
            
            Returns this query since it can never be a tracking query.
            
             This instance. 
        
        
            
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the
            database backing this context. The results are not materialized as entities or tracked.
            
             The query results. 
        
        
            
            Represents a raw SQL query against the context for entities in an entity set.
            
        
        
            
            Initializes a new instance of the  class.
            
             The set. 
             The SQL. 
            
            If set to true then the entities will not be tracked.
            
             Whether the query is streaming or buffering. 
             The parameters. 
        
        
            
        
        
            
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the database
            materializing entities into the entity set that backs this set.
            
             The query results. 
        
        
            
            Gets a value indicating whether this instance is set to track entities or not.
            
            
            true if this instance is no-tracking; otherwise, false .
            
        
        
            
            A LazyInternalConnection object manages information that can be used to create a DbConnection object and
            is responsible for creating that object and disposing it.
            
        
        
            
            Creates a new LazyInternalConnection using convention to calculate the connection.
            The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed.
            
             Either the database name or a connection string. 
        
        
            
            Creates a new LazyInternalConnection targeting a specific database.
            The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed.
            
             The connection to target. 
        
        
            
            Creates an  from metadata in the connection.  This method must
            only be called if ConnectionHasModel returns true.
            
             The newly created context. 
        
        
            
            Disposes the underlying DbConnection.
            Note that dispose actually puts the LazyInternalConnection back to its initial state such that
            it can be used again.
            
        
        
            
            Creates the underlying  (which may actually be an )
            if it does not already exist.
            
        
        
            
            Searches the app.config/web.config file for a connection that matches the given name.
            The connection might be a store connection or an EF connection.
            
             The connection name. 
             
             True if a connection from the app.config file was found and used. 
        
        
            
            Attempts to locate a connection entry in the configuration based on the supplied context name.
            
             The name to search for. 
             The configuration to search in. 
             Connection string if found, otherwise null. 
        
        
            
            Initializes the connection based on a connection string.
            
             The settings to initialize from. 
        
        
            
            Returns the underlying DbConnection, creating it first if it does not already exist.
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets the name of the underlying connection string.
            
        
        
            
            Returns a key consisting of the connection type and connection string.
            If this is an EntityConnection then the metadata path is included in the key returned.
            
        
        
            
        
        
            
            Gets a value indicating whether the connection is an EF connection which therefore contains
            metadata specifying the model, or instead is a store connection, in which case it contains no
            model info.
            
            
            true if connection contain model info; otherwise, false .
            
        
        
            
            Gets a value indicating if the lazy connection has been initialized.
            
        
        
            
            A  is a concrete  type that will lazily create the
            underlying  when needed. The  created is owned by the
            internal context and will be disposed when the internal context is disposed.
            
        
        
            
            Constructs a  for the given  owner that will be initialized
            on first use.
            
            
            The owner  .
            
             Responsible for creating a connection lazily when the context is used for the first time. 
             The model, or null if it will be created by convention 
        
        
            
            Returns the underlying  without causing the underlying database to be created
            or the database initialization strategy to be executed.
            This is used to get a context that can then be used for database creation/initialization.
            
        
        
            
            Saves all changes made in this context to the underlying database, but only if the
            context has been initialized. If the context has not been initialized, then this
            method does nothing because there is nothing to do; in particular, it does not
            cause the context to be initialized.
            
             The number of objects written to the underlying database. 
        
        
            
            Disposes the context. The underlying  is also disposed.
            The connection to the database ( object) is also disposed if it was created by
            the context, otherwise it is not disposed.
            
        
        
            
        
        
            
            Initializes the underlying .
            
        
        
            
            Creates an immutable, cacheable representation of the model defined by this builder.
            This model can be used to create an  or can be passed to a 
            constructor to create a  for this model.
            
        
        
            
            Creates and configures the  instance that will be used to build the
            .
            
             The builder. 
        
        
            
            Marks the database as having not been initialized. This is called when the app calls Database.Delete so
            that the database if the app attempts to then use the database again it will be re-initialized automatically.
            
        
        
            
            Marks the database as having been initialized without actually running the
            
            .
            
        
        
            
            Runs the  unless it has already been run or there
            is no initializer for this context type in which case this method does nothing.
            
        
        
            
            Performs some action (which may do nothing) in such a way that it is guaranteed only to be run
            once for the model and connection in this app domain, unless it fails by throwing an exception,
            in which case it will be re-tried next time the context is initialized.
            
             The action. 
        
        
            
            Returns the underlying .
            
        
        
            
            The compiled model created from the Code First pipeline, or null if Code First was
            not used to create this context.
            Causes the Code First pipeline to be run to create the model if it has not already been
            created.
            
        
        
            
            The  actually being used, which may be the
            temp context for initialization or the real context.
            
        
        
            
            The connection underlying this context.  Accessing this property does not cause the context
            to be initialized, only its connection.
            
        
        
            
            The connection string as originally applied to the context. This is used to perform operations
            that need the connection string in a non-mutated form, such as with security info still intact.
            
        
        
            
            Returns the origin of the underlying connection string.
            
        
        
            
            Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries
            and connection strings.
            
        
        
            
            Gets the name of the underlying connection string.
            
        
        
            
            Gets or sets the provider details to be used when building the EDM model.
            
        
        
            
        
        
            
            Gets or sets a custom OnModelCreating action.
            
        
        
            
            Gets the default database initializer to use for this context if no other has been registered.
            For code first this property returns a  instance.
            For database/model first, this property returns null.
            
             The default initializer. 
        
        
            
            Gets or sets a value indicating whether lazy loading is enabled.
            If the underlying  exists, then this property acts as a wrapper over the flag stored there.
            If the underlying  has not been created yet, then we store the value given so we can later
            use it when we create the .  This allows the flag to be changed, for example in
            a DbContext constructor, without it causing the  to be created.
            
        
        
            
            Gets or sets a value indicating whether proxy creation is enabled.
            If the underlying ObjectContext exists, then this property acts as a wrapper over the flag stored there.
            If the underlying ObjectContext has not been created yet, then we store the value given so we can later
            use it when we create the ObjectContext.  This allows the flag to be changed, for example in
            a DbContext constructor, without it causing the ObjectContext to be created.
            
        
        
            
            Gets or sets a value indicating whether database null comparison behavior is enabled.
            If the underlying ObjectContext exists, then this property acts as a wrapper over the flag stored there.
            If the underlying ObjectContext has not been created yet, then we store the value given so we can later
            use it when we create the ObjectContext.  This allows the flag to be changed, for example in
            a DbContext constructor, without it causing the ObjectContext to be created.
            
        
        
            
            A wrapping query provider that performs expression transformation and then delegates
            to the  provider.  The  objects returned
            are always instances of . This provider is associated with
            generic  objects.
            
        
        
            
            Creates a provider that wraps the given provider.
            
             
             The provider to wrap. 
        
        
            
            Performs expression replacement and then delegates to the wrapped provider before wrapping
            the returned  as a .
            
        
        
            
            Performs expression replacement and then delegates to the wrapped provider before wrapping
            the returned  as a  where T is determined
            from the element type of the ObjectQuery.
            
        
        
            
            By default, calls the same method on the wrapped provider.
            
        
        
            
            By default, calls the same method on the wrapped provider.
            
        
        
            
            Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of
            the given ObjectQuery.
            
        
        
            
            Performs expression replacement and then delegates to the wrapped provider to create an
            .
            
        
        
            
            Wraps the given  as a  where T is determined
            from the element type of the ObjectQuery.
            
        
        
            
            Gets the internal context.
            
             The internal context. 
        
        
            
            A LINQ expression visitor that finds  uses with equivalent
             instances.
            
        
        
            
            Replaces calls to DbContext.Set() with an expression for the equivalent .
            
             The node to replace. 
             A new node, which may have had the replacement made. 
        
        
            
            Replaces a  or  property with a constant expression
            for the underlying .
            
             The node to replace. 
             A new node, which may have had the replacement made. 
        
        
            
            Gets a  value from the given member, or returns null
            if the member doesn't contain a DbContext instance.
            
             The expression for the object for the member, which may be null for a static member. 
             The member. 
             The context or null. 
        
        
            
            Gets the  instance from the given instance or static member, returning null
            if the member does not contain a DbContext instance.
            
             The member. 
             The value of the object to get the instance from, or null if the member is static. 
             The context instance or null. 
        
        
            
            Takes a  or  and creates an expression
            for the underlying .
            
        
        
            
            Takes a  or  and extracts the underlying .
            
        
        
            
            A non-generic interface implemented by  that allows operations on
            any query object without knowing the type to which it applies.
            
        
        
            
            An interface implemented by .
            
             The type of the element. 
        
        
            
            A non-generic interface implemented by  that allows operations on
            any set object without knowing the type to which it applies.
            
        
        
            
            An interface implemented by .
            
        
        
            
            An instance of this internal class is created whenever an instance of the public 
            class is needed. This allows the public surface to be non-generic, while the runtime type created
            still implements .
            
             The type of the element. 
        
        
            
            Creates a new query that will be backed by the given internal query object.
            
             The backing query. 
        
        
            
        
        
            
        
        
            
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             An enumerator for the query 
        
        
            
        
        
            
            An instance of this internal class is created whenever an instance of the public 
            class is needed. This allows the public surface to be non-generic, while the runtime type created
            still implements .
            
             The type of the entity. 
        
        
            
            Creates a new set that will be backed by the given internal set.
            
             The internal set. 
        
        
            
            Creates an instance of this class.  This method is used with CreateDelegate to cache a delegate
            that can create a generic instance without calling MakeGenericType every time.
            
             
             The internal set to wrap, or null if a new internal set should be created. 
             The set. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Returns an  which when enumerated will execute the backing query against the database.
            
             The query results. 
        
        
            
        
        
            
        
        
            
        
        
            
            An InternalQuery underlies every instance of DbSet and DbQuery.  It acts to lazily initialize a InternalContext as well
            as an ObjectQuery and EntitySet the first time that it is used.  The InternalQuery also acts to expose necessary
            information to other parts of the design in a controlled manner without adding a lot of internal methods and
            properties to the DbSet and DbQuery classes themselves.
            
             The type of entity to query for. 
        
        
            
            Creates a new query that will be backed by the given InternalContext.
            
             The backing context. 
        
        
            
            Creates a new internal query based on the information in an existing query together with
            a new underlying ObjectQuery.
            
        
        
            
            Resets the query to its uninitialized state so that it will be re-lazy initialized the next
            time it is used.  This allows the ObjectContext backing a DbContext to be switched out.
            
        
        
            
            Updates the underlying ObjectQuery with the given include path.
            
             The include path. 
             A new query containing the defined include path. 
        
        
            
            Returns a new query where the entities returned will not be cached in the .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects
            so that the query can be used.
            
        
        
            
            Returns a  representation of the underlying query, equivalent
            to ToTraceString on ObjectQuery.
            
             The query string. 
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             The query results. 
        
        
            
            Returns an  which when enumerated will execute the query against the database.
            
             The query results. 
        
        
            
            The underlying InternalContext.
            
        
        
            
            The underlying ObjectQuery.
            
        
        
            
            The underlying ObjectQuery.
            
        
        
            
            The LINQ query expression.
            
        
        
            
            The LINQ query provider for the underlying .
            
        
        
            
            The IQueryable element type.
            
        
        
            
            Creates a new set that will be backed by the given InternalContext.
            
             The backing context. 
        
        
            
            Resets the set to its uninitialized state so that it will be re-lazy initialized the next
            time it is used.  This allows the ObjectContext backing a DbContext to be switched out.
            
        
        
            
            Finds an entity with the given primary key values.
            If an entity with the given primary key values exists in the context, then it is
            returned immediately without making a request to the store.  Otherwise, a request
            is made to the store for an entity with the given primary key values and this entity,
            if found, is attached to the context and returned.  If no entity is found in the
            context or the store, then null is returned.
            
            
            The ordering of composite key values is as defined in the EDM, which is in turn as defined in
            the designer, by the Code First fluent API, or by the DataMember attribute.
            
             The values of the primary key for the entity to be found. 
             The entity found, or null. 
            Thrown if multiple entities exist in the context with the primary key values given.
            Thrown if the type of entity is not part of the data model for this context.
            Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
            Thrown if the context has been disposed.
        
        
            
            Finds an entity in the state manager with the given primary key values, or returns null
            if no such entity can be found.  This includes looking for Added entities with the given
            key values.
            
        
        
            
            Finds an entity in the store with the given primary key values, or returns null
            if no such entity can be found.  This code is adapted from TryGetObjectByKey to
            include type checking in the query.
            
        
        
            
            Attaches the given entity to the context underlying the set.  That is, the entity is placed
            into the context in the Unchanged state, just as if it had been read from the database.
            
            
            Attach is used to repopulate a context with an entity that is known to already exist in the database.
            SaveChanges will therefore not attempt to insert an attached entity into the database because
            it is assumed to already be there.
            Note that entities that are already in the context in some other state will have their state set
            to Unchanged.  Attach is a no-op if the entity is already in the context in the Unchanged state.
            This method is virtual so that it can be mocked.
            
             The entity to attach. 
        
        
            
            Adds the given entity to the context underlying the set in the Added state such that it will
            be inserted into the database when SaveChanges is called.
            
            
            Note that entities that are already in the context in some other state will have their state set
            to Added.  Add is a no-op if the entity is already in the context in the Added state.
            This method is virtual so that it can be mocked.
            
             The entity to add. 
        
        
            
            Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
            is called.  Note that the entity must exist in the context in some other state before this method
            is called.
            
            
            Note that if the entity exists in the context in the Added state, then this method
            will cause it to be detached from the context.  This is because an Added entity is assumed not to
            exist in the database such that trying to delete it does not make sense.
            This method is virtual so that it can be mocked.
            
             The entity to remove. 
        
        
            
            This method checks whether an entity is already in the context.  If it is, then the state
            is changed to the new state given.  If it isn't, then the action delegate is executed to
            either Add or Attach the entity.
            
             A delegate to Add or Attach the entity. 
             The new state to give the entity if it is already in the context. 
             The entity. 
             Name of the method. 
        
        
            
            Creates a new instance of an entity for the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The entity instance, which may be a proxy. 
        
        
            
            Creates a new instance of an entity for the type of this set or for a type derived
            from the type of this set.
            Note that this instance is NOT added or attached to the set.
            The instance returned will be a proxy if the underlying context is configured to create
            proxies and the entity type meets the requirements for creating a proxy.
            
             The type of entity to create. 
             The entity instance, which may be a proxy. 
        
        
            
            Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects
            so that the query can be used.
            This method is virtual so that it can be mocked.
            
        
        
            
            Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects
            so that o-space loading has happened and the query can be used. This method doesn't throw if the type
            for the set is not mapped.
            
        
        
            
            Creates an underlying  for this set.
            
            
            if set to true then the query is set to be no-tracking.
            
             The query. 
        
        
            
            Returns a  representation of the underlying query, equivalent
            to ToTraceString on ObjectQuery.
            
             The query string. 
        
        
            
            Updates the underlying ObjectQuery with the given include path.
            
             The include path. 
             A new query containing the defined include path. 
        
        
            
            Returns a new query where the entities returned will not be cached in the .
            
             A new query with NoTracking applied. 
        
        
            
            Returns a new query that will stream the results instead of buffering.
            
             A new query with AsStreaming applied. 
        
        
            
            Returns an  which when enumerated will execute the given SQL query against the database
            materializing entities into the entity set that backs this set.
            
             The SQL query. 
            
            If true then the entities are not tracked, otherwise they are.
            
             Whether the query is streaming or buffering. 
             The parameters. 
             The query results. 
        
        
            
            Returns an  which when enumerated will execute the backing query against the database.
            
             The query results. 
        
        
            
            Gets the ObservableCollection representing the local view for the set based on this query.
            
        
        
            
            The underlying ObjectQuery.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The underlying EntitySet name.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The underlying EntitySet name, quoted for ESQL.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The underlying EntitySet.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The base type for the underlying entity set.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The underlying InternalContext.  Accessing this property will trigger lazy initialization of the query.
            
        
        
            
            The LINQ query expression.
            
        
        
            
            The LINQ query provider for the underlying .
            
        
        
            
            A wrapping query provider that performs expression transformation and then delegates
            to the  provider.  The  objects returned
            are instances of  when the generic CreateQuery method is
            used and are instances of  when the non-generic CreateQuery method
            is used.  This provider is associated with non-generic  objects.
            
        
        
            
            Creates a provider that wraps the given provider.
            
             
             The provider to wrap. 
        
        
            
            Performs expression replacement and then delegates to the wrapped provider before wrapping
            the returned  as a .
            
        
        
            
            Delegates to the wrapped provider except returns instances of .
            
        
        
            
            Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of
            the given ObjectQuery.
            
        
        
            
            Extends  to create a sortable binding list that stays in
            sync with an underlying .  That is, when items are added
            or removed from the binding list, they are added or removed from the ObservableCollecion, and
            vice-versa.
            
             The list element type. 
        
        
            
            An extended BindingList implementation that implements sorting.
            This class was adapted from the LINQ to SQL class of the same name.
            
             The element type. 
        
        
            
            Initializes a new instance of the  class with the
            the given underlying list.  Note that sorting is dependent on having an actual 
            rather than some other ICollection implementation.
            
             The list. 
        
        
            
            Applies sorting to the list.
            
             The property to sort by. 
             The sort direction. 
        
        
            
            Stops sorting.
            
        
        
            
            Gets a value indicating whether this list is sorted.
            
            
            true if this instance is sorted; otherwise, false .
            
        
        
            
            Gets the sort direction.
            
             The sort direction. 
        
        
            
            Gets the sort property being used to sort.
            
             The sort property. 
        
        
            
            Returns true indicating that this list supports sorting.
            
            
            true .
            
        
        
            
            Implements comparing for the  implementation.
            
        
        
            
            Initializes a new instance of the  class
            for sorting the list.
            
             The property to sort by. 
             The sort direction. 
        
        
            
            Compares two instances of items in the list.
            
             The left item to compare. 
             The right item to compare. 
        
        
            
            Determines whether this instance can sort for the specified type.
            
             The type. 
            
            true if this instance can sort for the specified type; otherwise, false .
            
        
        
            
            Determines whether this instance can sort for the specified type using IComparable.
            
             The type. 
            
            true if this instance can sort for the specified type; otherwise, false .
            
        
        
            
            Determines whether this instance can sort for the specified type using ToString.
            
             The type. 
            
            true if this instance can sort for the specified type; otherwise, false .
            
        
        
            
            Initializes a new instance of a binding list backed by the given 
            
             The obervable collection. 
        
        
            
            Creates a new item to be added to the binding list.
            
             The new item. 
        
        
            
            Cancels adding of a new item that was started with AddNew.
            
             Index of the item. 
        
        
            
            Removes all items from the binding list and underlying ObservableCollection.
            
        
        
            
            Ends the process of adding a new item that was started with AddNew.
            
             Index of the item. 
        
        
            
            Inserts the item into the binding list at the given index.
            
             The index. 
             The item. 
        
        
            
            Removes the item at the specified index.
            
             The index. 
        
        
            
            Sets the item into the list at the given position.
            
             The index to insert at. 
             The item. 
        
        
            
            Event handler to update the binding list when the underlying observable collection changes.
            
             The sender. 
             Data indicating how the collection has changed. 
        
        
            
            Adds the item to the underlying observable collection.
            
             The item. 
        
        
            
            Removes the item from the underlying from observable collection.
            
             The item. 
        
        
            
            Adapted from  to allow the initializer to take an input object and
            to do one-time initialization that only has side-effects and doesn't return a value.
            
             The type of the input. 
        
        
            
            Initializes a new instance of the  class.
            
             The action. 
        
        
            
            Performs the action unless it has already been successfully performed before.
            
             The input to the action; ignored if the action has already succeeded. 
        
        
            
            Adapted from  to allow the initializer to take an input object and
            to retry initialization if it has previously failed.
            
            
            This class can only be used to initialize reference types that will not be null when
            initialized.
            
             The type of the input. 
             The type of the result. 
        
        
            
            Initializes a new instance of the  class.
            
             The value factory. 
        
        
            
            Gets the value, possibly by running the initializer if it has not been run before or
            if all previous times it ran resulted in exceptions.
            
             The input to the initializer; ignored if initialization has already succeeded. 
             The initialized object. 
        
        
            
            Validates a property of a given EDM complex type.
            
            
            This is a composite validator for a complex property of an entity.
            
        
        
            
            Validates a property of a given EDM property type.
            
            
            This is a composite validator for a property of an entity or a complex type.
            
        
        
            
            Simple validators for the corresponding property.
            
        
        
            
            Name of the property the validator was created for.
            
        
        
            
            Creates an instance of  for a given EDM property.
            
             The EDM property name. 
             Validators used to validate the given property. 
        
        
            
            Validates a property.
            
             Validation context. Never null. 
             Property to validate. Never null. 
            
            Validation errors as  . Empty if no errors. Never null.
            
        
        
            
            Simple validators for the corresponding property.
            
        
        
            
            Gets the name of the property the validator was created for.
            
        
        
            
            The complex type validator.
            
        
        
            
            Creates an instance of  for a given complex property.
            
             The complex property name. 
             Validators used to validate the given property. 
             Complex type validator. 
        
        
            
            Validates a complex property.
            
             Validation context. Never null. 
             Property to validate. Never null. 
            
            Validation errors as  . Empty if no errors. Never null.
            
        
        
            
            Validator used to validate a property of a given EDM ComplexType.
            
            
            This is a composite validator.
            
        
        
            
            Validator used to validate an entity of a given EDM Type.
            
            
            This is a composite validator for an EDM Type.
            
        
        
            
            Creates an instance  for a given EDM type.
            
             Property validators. 
             Type level validators. 
        
        
            
            Validates an instance.
            
             Entity validation context. Must not be null. 
             The entry for the complex property. Null if validating an entity. 
            
             instance. Never null.
            
            
            Protected so it doesn't appear on EntityValidator.
            
        
        
            
            Validates type properties. Any validation errors will be added to 
            collection.
            
             Validation context. Must not be null. 
             The entry for the complex property. Null if validating an entity. 
             Collection of validation errors. Any validation errors will be added to it. 
            
            Note that  will be modified by this method. Errors should be only added,
            never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
            and a merge of validation error lists per entity.
            
        
        
            
            Returns a validator for a child property.
            
             Name of the child property for which to return a validator. 
             Validator for a child property. Possibly null if there are no validators for requested property. 
        
        
            
            Creates an instance  for a given EDM complex type.
            
             Property validators. 
             Type level validators. 
        
        
            
            Validates an instance.
            
             Entity validation context. Must not be null. 
             The entry for the complex property. Null if validating an entity. 
            
             instance. Never null.
            
        
        
            
            Validates type properties. Any validation errors will be added to 
            collection.
            
             Validation context. Must not be null. 
             The entry for the complex property. Null if validating an entity. 
             Collection of validation errors. Any validation errors will be added to it. 
            
            Note that  will be modified by this method. Errors should be only added,
            never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
            and a merge of validation error lists per entity.
            
        
        
            
            Contains information needed to validate an entity or its properties.
            
        
        
            
            The entity being validated or the entity that owns the property being validated.
            
        
        
            
            Initializes a new instance of EntityValidationContext class.
            
             The entity being validated or the entity that owns the property being validated. 
             External context needed for validation. 
        
        
            
            External context needed for validation.
            
        
        
            
            Gets the entity being validated or the entity that owns the property being validated.
            
        
        
            
            Validator used to validate an entity of a given EDM EntityType.
            
            
            This is a top level, composite validator. This is also an entry point to getting an entity
            validated as validation of an entity is always started by calling Validate method on this type.
            
        
        
            
            Creates an instance  for a given EDM entity type.
            
             Property validators. 
             Entity type level validators. 
        
        
            
            Validates an entity.
            
             Entity validation context. Must not be null. 
            
             instance. Never null.
            
        
        
            
            Validates type properties. Any validation errors will be added to 
            collection.
            
             Validation context. Must not be null. 
             The entry for the complex property. Null if validating an entity. 
             Collection of validation errors. Any validation errors will be added to it. 
            
            Note that  will be modified by this method. Errors should be only added,
            never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations
            and a merge of validation error lists per entity.
            
        
        
            
            Builds validators based on s specified on entity CLR types and properties
            as well as based on presence of  implementation on entity and complex
            type CLR types. It's not sealed and not static for mocking purposes.
            
        
        
            
            Builds an  for the given .
            
             The entity entry to build the validator for. 
            
             for the given  . Possibly null if no validation has been specified for this entity type.
            
        
        
            
            Builds the validator for a given  and the corresponding
            .
            
             The CLR type that corresponds to the EDM complex type. 
             The EDM complex type that type level validation is built for. 
            
            A  for the given complex type. May be null if no validation specified.
            
        
        
            
            Extracted method from BuildEntityValidator and BuildComplexTypeValidator
            
        
        
            
            Build validators for the  and the corresponding 
            or .
            
             Properties to build validators for. 
             Non-navigation EDM properties. 
             Navigation EDM properties. 
             A list of validators. Possibly empty, never null. 
        
        
            
            Builds a  for the given  and the corresponding
            . If the property is a complex type, type level validators will be built here as
            well.
            
             The CLR property to build the validator for. 
             The EDM property to build the validator for. 
            
             for the given  . Possibly null if no validation has been specified for this property.
            
        
        
            
            Builds a  for the given transient .
            
             The CLR property to build the validator for. 
            
             for the given  . Possibly null if no validation has been specified for this property.
            
        
        
            
            Builds s for given  that derive from
            .
            
             Attributes used to build validators. 
            
            A list of  s built from  . Possibly empty, never null.
            
        
        
            
            Returns all non-static non-indexed CLR properties from the .
            
            
            The CLR  to get the properties from.
            
             A collection of CLR properties. Possibly empty, never null. 
        
        
            
            Builds validators based on the facets of :
            * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute
            * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute.
            However the validator isn't added if .IsMaxLength has been set to true.
            
             The CLR property to build the facet validators for. 
             The property for which facet validators will be created 
             A collection of validators. 
        
        
            
            Abstracts simple validators used to validate entities and properties.
            
        
        
            
            Validates an entity or a property.
            
             Validation context. Never null. 
             Property to validate. Can be null for type level validation. 
            
            Validation error as  . Empty if no errors. Never null.
            
        
        
            
            Validates entities or complex types implementing IValidatableObject interface.
            
        
        
            
            Display attribute used to specify the display name for an entity or complex property.
            
        
        
            
            Validates an entity or a complex type implementing IValidatableObject interface.
            This method is virtual to allow mocking.
            
             Validation context. Never null. 
             Property to validate. Null if this is the entity that will be validated. Never null if this is the complex type that will be validated. 
            
            Validation error as  . Empty if no errors. Never null.
            
            
            Note that  is used to figure out what needs to be validated. If it not null the complex
            type will be validated otherwise the entity will be validated.
            Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate
            anything and will not return any errors. The reason for this is that Validation is supposed to validate using
            information the user provided and not some additional implicit rules. (ObjectContext will throw for operations
            that involve null complex properties).
            
        
        
            
            Validates a property, complex property or an entity using validation attributes the property
            or the complex/entity type is decorated with.
            
            
            Note that this class is used for validating primitive properties using attributes declared on the property
            (property level validation) and complex properties and entities using attributes declared on the type
            (type level validation).
            
        
        
            
            Display attribute used to specify the display name for a property or entity.
            
        
        
            
            Validation attribute used to validate a property or an entity.
            
        
        
            
            Creates an instance of  class.
            
             Validation attribute used to validate a property or an entity. 
        
        
            
            Validates a property or an entity.
            
             Validation context. Never null. 
             Property to validate. Null for entity validation. Not null for property validation. 
            
            Validation errors as  . Empty if no errors, never null.
            
        
        
            
            Used to cache and retrieve generated validators and to create context for validating entities or properties.
            
        
        
            
            Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type
            it will be associated with a null validator.
            
        
        
            
            Initializes a new instance of  class.
            
        
        
            
            Returns a validator to validate .
            
             Entity the validator is requested for. 
            
             to validate  . Possibly null if no validation has been specified for the entity.
            
        
        
            
            Returns a validator to validate .
            
             
             Navigation property the validator is requested for. 
            
            Validator to validate  . Possibly null if no validation has been specified for the requested property.
            
        
        
            
            Gets a validator for the .
            
             Entity validator. 
             Property to get a validator for. 
            
            Validator to validate  . Possibly null if there is no validation for the
            
            .
            
            
            For complex properties this method walks up the type hierarchy to get to the entity level and then goes down
            and gets a validator for the child property that is an ancestor of the property to validate. If a validator
            returned for an ancestor is null it means that there is no validation defined beneath and the method just
            propagates (and eventually returns) null.
            
        
        
            
            Creates  for .
            
             Entity entry for which a validation context needs to be created. 
             User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. 
            
            An instance of  class.
            
            
        
        
            
            A wrapper around EntityKey that allows key/values pairs that have null values to
            be used.  This allows Added entities with null key values to be searched for in
            the ObjectStateManager.
            
        
        
            The key name/key value pairs, where some key values may be null
        
        
            
            Creates a new WrappedEntityKey instance.
            
             The entity set that the key belongs to. 
             The fully qualified name of the given entity set. 
             The key values, which may be null or contain null values. 
             The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. 
        
        
            
            True if any of the key values are null, which means that the EntityKey will also be null.
            
        
        
            
            An actual EntityKey, or null if any of the key values are null.
            
        
        
            
            The key name/key value pairs of the key, in which some of the key values may be null.
            
        
        
            
            Allows configuration to be performed for an complex type in a model.
            A ComplexTypeConfiguration can be obtained via the ComplexType method on
             or a custom type derived from ComplexTypeConfiguration
            can be registered via the Configurations property on .
            
             The complex type to be configured. 
        
        
            
            Allows configuration to be performed for a type in a model.
            
             The type to be configured. 
        
        
            
            Configures a  property that is defined on this type.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is defined on this type.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Initializes a new instance of ComplexTypeConfiguration
            
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The type of the property to be ignored. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Identifies configurations that can be used when implementing
            .
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows derived configuration classes for entities and complex types to be registered with a
            .
            
            
            Derived configuration classes are created by deriving from 
            or  and using a type to be included in the model as the generic
            parameter.
            Configuration can be performed without creating derived configuration classes via the Entity and ComplexType
            methods on .
            
        
        
            
            Discovers all types that inherit from  or
             in the given assembly and adds an instance
            of each discovered type to this registrar.
            
            
            Note that only types that are abstract or generic type definitions are skipped. Every
            type that is discovered and added must provide a parameterless constructor.
            
            The assembly containing model configurations to add.
            The same ConfigurationRegistrar instance so that multiple calls can be chained.
        
        
            
            Adds an  to the .
            Only one  can be added for each type in a model.
            
             The entity type being configured. 
             The entity type configuration to be added. 
             The same ConfigurationRegistrar instance so that multiple calls can be chained. 
        
        
            
            Adds an  to the .
            Only one  can be added for each type in a model.
            
             The complex type being configured. 
             The complex type configuration to be added 
             The same ConfigurationRegistrar instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows the conventions used by a  instance to be customized.
            The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace.
            
        
        
            
            Enables one or more conventions for the .
            
             The conventions to be enabled. 
        
        
            
            Enables a convention for the .
            
             The type of the convention to be enabled. 
        
        
            
            Enables a convention for the . This convention
            will run after the one specified.
            
             The type of the convention after which the enabled one will run. 
             The convention to enable. 
        
        
            
            Enables a configuration convention for the . This convention
            will run before the one specified.
            
             The type of the convention before which the enabled one will run. 
             The convention to enable. 
        
        
            
            Disables one or more conventions for the .
            
             The conventions to be disabled. 
        
        
            
            Disables a convention for the .
            The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace.
            
             The type of the convention to be disabled. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Configures the table and column mapping for an entity type or a sub-set of properties from an entity type.
            This configuration functionality is available via the Code First Fluent API, see .
            
             The entity type to be mapped. 
        
        
            Initializes a new instance of the  class.
        
        
            
            Configures the properties that will be included in this mapping fragment.
            If this method is not called then all properties that have not yet been
            included in a mapping fragment will be configured.
            
             An anonymous type including the properties to be mapped. 
             A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             The type of the property being configured. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Configures a  property that is included in this mapping fragment.
            
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to configure the property. 
        
        
            
            Re-maps all properties inherited from base types.
            When configuring a derived type to be mapped to a separate table this will cause all properties to
            be included in the table rather than just the non-inherited properties. This is known as
            Table per Concrete Type (TPC) mapping.
            
        
        
            
            Configures the table name to be mapped to.
            
             Name of the table. 
        
        
            
            Configures the table name and schema to be mapped to.
            
             Name of the table. 
             Schema of the table. 
        
        
            
            Configures the discriminator column used to differentiate between types in an inheritance hierarchy.
            
             The name of the discriminator column. 
             A configuration object to further configure the discriminator column and values. 
        
        
            
            Configures the discriminator condition used to differentiate between types in an inheritance hierarchy.
            
             The type of the property being used to discriminate between types. 
             A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object to further configure the discriminator condition. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Moves a foreign key constraint from oldTable to newTable and updates column references
            
        
        
            
            Move any FK constraints that are now completely in newTable and used to refer to oldColumn
            
        
        
            
            Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see . 
            
        
        
            
            Configures a primitive column from an entity type.
            
        
        
            Configures the primitive column to be optional.
            The same  instance so that multiple calls can be chained.
        
        
            Configures the primitive column to be required.
            The same  instance so that multiple calls can be chained.
        
        
            Configures the data type of the primitive column used to store the property.
            The same  instance so that multiple calls can be chained.
            The name of the database provider specific data type.
        
        
            Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key.
            The same  instance so that multiple calls can be chained.
            The order that this column should appear in the database table.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            Configures the column to allow the maximum length supported by the database provider.
            The same  instance so that multiple calls can be chained.
        
        
            Configures the column to have the specified maximum length.
            The same  instance so that multiple calls can be chained.
            The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column.
        
        
            Configures the column to be fixed length.
            The same  instance so that multiple calls can be chained.
        
        
            Configures the column to be variable length.
            The same  instance so that multiple calls can be chained.
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the condition to require a value in the property.
            Rows that do not have a value assigned to column that this property is stored in are
            assumed to be of the base type of this entity type.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Populate the table mapping structure
            
        
        
            
            Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations
            when no base types share the the association set mapping's table
            
        
        
            
            Makes sure only the required property mappings are present
            
        
        
            
            Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping
            
        
        
            
            Configures a database column used to store a string values.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the column to allow the maximum length supported by the database provider.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to have the specified maximum length.
            
            
            The maximum length for the property. Setting 'null' will result in a default length being used for the column.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the column to be fixed length.
            Use HasMaxLength to set the length that the property is fixed to.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the column to be variable length.
            Columns are variable length by default.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the column to be optional.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the column to be required.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column.
            
             Name of the database provider specific data type. 
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column.
            
             The order that this column should appear in the database table. 
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the column to support Unicode string content.
            
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the column supports Unicode string content.
            
             Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same StringColumnConfiguration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures a discriminator column used to differentiate between types in an inheritance hierarchy.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the discriminator value used to identify the entity type being
            configured from other types in the inheritance hierarchy.
            
             Type of the discriminator value. 
             The value to be used to identify the entity type. 
             A configuration object to configure the column used to store discriminator values. 
        
        
            
            Configures the discriminator value used to identify the entity type being
            configured from other types in the inheritance hierarchy.
            
             Type of the discriminator value. 
             The value to be used to identify the entity type. 
             A configuration object to configure the column used to store discriminator values. 
        
        
            
            Configures the discriminator value used to identify the entity type being
            configured from other types in the inheritance hierarchy.
            
             The value to be used to identify the entity type. 
             A configuration object to configure the column used to store discriminator values. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Allows configuration to be performed for a model.
            
        
        
            
            Registers an entity type as part of the model and returns an object that can
            be used to configure the entity. This method can be called multiple times
            for the same entity to perform multiple configurations.
            
             The type to be registered or configured. 
             The configuration object for the specified entity type. 
            
            Types registered as an entity type may later be changed to a complex type by
            the .
            
        
        
            
            Registers a type as a complex type in the model and returns an object that
            can be used to configure the complex type. This method can be called
            multiple times for the same type to perform multiple configurations.
            
             The type to be registered or configured. 
             The configuration object for the specified entity type. 
        
        
            
            Excludes a type from the model.
            
             The type to be excluded. 
        
        
            
            Gets a value indicating whether the specified type has been configured as a
            complex type in the model.
            
             The type to test. 
             True if the type is a complex type; false otherwise. 
        
        
            
            Gets a value indicating whether the specified type has been excluded from
            the model.
            
             The type to test. 
             True if the type is excluded; false otherwise. 
        
        
            Gets the properties that have been configured in this model for a given type.
            The properties that have been configured in this model.
            The type to get configured properties for.
        
        
            Gets a value indicating whether the specified property is excluded from the model.
            true if the property  is excluded; otherwise, false.
            The type that the property belongs to.
            The property to be checked.
        
        
            
            Initializes configurations in the ModelConfiguration so that configuration data
            is in a single place
            
        
        
            
            Gets a collection of types that have been configured in this model including
            entity types, complex types, and ignored types.
            
        
        
            
            Gets or sets the default schema name.
            
        
        
            
            Gets or sets the default model namespace.
            
        
        
            
            Used to configure a constraint on a navigation property.
            
        
        
            
            Gets a value indicating whether the constraint has been fully specified
            using the Code First Fluent API.
            
        
        
            
            Used to configure a foreign key constraint on a navigation property.
            
        
        
            
            Initializes a new instance of the ForeignKeyConstraintConfiguration class.
            
        
        
            
            Configures the foreign key property(s) for this end of the navigation property.
            
             The property to be used as the foreign key. If the foreign key is made up of multiple properties, call this method once for each of them. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures a many relationship from an entity type.
            
             The entity type that the relationship originates from. 
             The entity type that the relationship targets. 
        
        
            
            Configures the relationship to be many:many with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be many:many without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be many:required with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be many:required without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be many:optional with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be many:optional without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Configures an optional relationship from an entity type.
            
             The entity type that the relationship originates from. 
             The entity type that the relationship targets. 
        
        
            
            Configures the relationship to be optional:many with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:many without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:required with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:required without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
            The entity type being configured will be the dependent and contain a foreign key to the principal.
            The entity type that the relationship targets will be the principal in the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
            The entity type being configured will be the dependent and contain a foreign key to the principal.
            The entity type that the relationship targets will be the principal in the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
            The entity type being configured will be the principal in the relationship.
            The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
            
             A lambda expression representing the navigation property on the other end of the relationship. 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
            The entity type being configured will be the principal in the relationship.
            The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Configures an required relationship from an entity type.
            
             The entity type that the relationship originates from. 
             The entity type that the relationship targets. 
        
        
            
            Configures the relationship to be required:many with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:many without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:optional with a navigation property on the other side of the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:optional without a navigation property on the other side of the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:required with a navigation property on the other side of the relationship.
            The entity type being configured will be the dependent and contain a foreign key to the principal.
            The entity type that the relationship targets will be the principal in the relationship.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:required without a navigation property on the other side of the relationship.
            The entity type being configured will be the dependent and contain a foreign key to the principal.
            The entity type that the relationship targets will be the principal in the relationship.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:required with a navigation property on the other side of the relationship.
            The entity type being configured will be the principal in the relationship.
            The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
            
             An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures the relationship to be required:required without a navigation property on the other side of the relationship.
            The entity type being configured will be the principal in the relationship.
            The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
            
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Used to configure an independent constraint on a navigation property.
            
        
        
            
            Gets the Singleton instance of the IndependentConstraintConfiguration class.
            
        
        
            
            Used to configure a navigation property.
            
        
        
            
            Base class for configuring a property on an entity type or complex type.
            
        
        
            
            Gets or sets the action to take when a delete operation is attempted.
            
        
        
            
            Gets or sets the multiplicity of this end of the navigation property.
            
        
        
            
            Gets or sets the constraint associated with the navigation property.
            
            
            This property uses  for
            foreign key constraints and 
            for independent constraints.
            
        
        
            
            True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known
            
        
        
            
            Base class for performing configuration of a relationship.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures a relationship that can support cascade on delete functionality.
            
        
        
            Initializes a new instance of the  class.
        
        
            
            Configures cascade delete to be on for the relationship.
            
        
        
            
            Configures whether or not cascade delete is on for the relationship.
            
             Value indicating if cascade delete is on or not. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Configures a relationship that can support foreign key properties that are exposed in the object model.
            This configuration functionality is available via the Code First Fluent API, see .
            
             The dependent entity type. 
        
        
            
            Configures a relationship that can only support foreign key properties that are not exposed in the object model.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the relationship to use foreign key property(s) that are not exposed in the object model.
            The column(s) and table can be customized by specifying a configuration action.
            If an empty configuration action is specified then column name(s) will be generated by convention.
            If foreign key properties are exposed in the object model then use the HasForeignKey method.
            Not all relationships support exposing foreign key properties in the object model.
            
             Action that configures the foreign key column(s) and table. 
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures the relationship to use foreign key property(s) that are exposed in the object model.
            If the foreign key property(s) are not exposed in the object model then use the Map method.
            
             The type of the key. 
             A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the principal entity type. 
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the name of the column(s) for the foreign key.
            
             The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. 
             The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the table name that the foreign key column(s) reside in.
            The table that is specified must already be mapped for the entity type.
            If you want the foreign key(s) to reside in their own table then use the Map method
            on  to perform
            entity splitting to create the table with just the primary key property. Foreign keys can
            then be added to the table via this method.
            
             Name of the table. 
             The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the table name and schema that the foreign key column(s) reside in.
            The table that is specified must already be mapped for the entity type.
            If you want the foreign key(s) to reside in their own table then use the Map method
            on  to perform
            entity splitting to create the table with just the primary key property. Foreign keys can
            then be added to the table via this method.
            
             Name of the table. 
             Schema of the table. 
             The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Configures the table and column mapping of a many:many relationship.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the join table name for the relationship.
            
             Name of the table. 
             The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the join table name and schema for the relationship.
            
             Name of the table. 
             Schema of the table. 
             The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the column(s) for the left foreign key.
            The left foreign key points to the parent entity of the navigation property specified in the HasMany call.
            
             The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. 
             The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the column(s) for the right foreign key.
            The right foreign key points to the parent entity of the the navigation property specified in the WithMany call.
            
             The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the the primary key properties were configured for the target entity type. 
             The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. 
        
        
            
        
        
            Determines whether the specified object is equal to the current object.
            true if the specified object is equal to the current object; otherwise, false.
            The object to compare with the current object.
        
        
            
        
        
            
        
        
            
        
        
            
            Configures a many:many relationship.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the foreign key column(s) and table used to store the relationship.
            
             Action that configures the foreign key column(s) and table. 
        
        
            
            Configures stored procedures to be used for modifying this relationship.
            The default conventions for procedure and parameter names will be used.
            
            The same  instance so that multiple calls can be chained.
        
        
             
            Configures stored procedures to be used for modifying this relationship. 
            
            
            Configuration to override the default conventions for procedure and parameter names.
            
            The same  instance so that multiple calls can be chained.
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Used to configure a  property of an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Used to configure a property with length facets for an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Used to configure a primitive property of an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
            
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
            
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. 
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the parameter used in stored procedures for this property.
            
            Name of the parameter.
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
             The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
        
        
            
        
        
            
        
        
            
            Gets the  of the current instance.
            
            The exact runtime type of the current instance.
        
        
            
            Configures the property to allow the maximum length supported by the database provider.
            
             The same LengthPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to have the specified maximum length.
            
             The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. 
             The same LengthPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be fixed length.
            Use HasMaxLength to set the length that the property is fixed to.
            
             The same LengthPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be variable length.
            Properties are variable length by default.
            
             The same LengthPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to allow the maximum length supported by the database provider.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to have the specified maximum length.
            
             The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be fixed length.
            Use HasMaxLength to set the length that the property is fixed to.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be variable length.
             properties are variable length by default.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
             properties are optional by default.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be a row version in the database.
            The actual data type will vary depending on the database provider being used.
            Setting the property to be a row version will automatically configure it to be an
            optimistic concurrency token.
            
             The same BinaryPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Used to configure a  property of an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
            
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
             properties are required by default.
            
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the precision of the property.
            If the database provider does not support precision for the data type of the column then the value is ignored.
            
             Precision of the property. 
             The same DateTimePropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Used to configure a  property of an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
            
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
             properties are required by default.
            
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the precision and scale of the property.
            
             The precision of the property. 
             The scale of the property. 
             The same DecimalPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Used to configure a  property of an entity type or complex type.
            This configuration functionality is available via the Code First Fluent API, see .
            
        
        
            
            Configures the property to allow the maximum length supported by the database provider.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to have the specified maximum length.
            
             The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be fixed length.
            Use HasMaxLength to set the length that the property is fixed to.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be variable length.
             properties are variable length by default.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be optional.
            The database column used to store this property will be nullable.
             properties are optional by default.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be required.
            The database column used to store this property will be non-nullable.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures how values for the property are generated by the database.
            
             The pattern used to generate values for the property in the database. Setting 'null' will remove the database generated pattern facet from the property. Setting 'null' will cause the same runtime behavior as specifying 'None'. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to be used as an optimistic concurrency token.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property is to be used as an optimistic concurrency token.
            
             Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the name of the database column used to store the property.
            
             The name of the column. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the data type of the database column used to store the property.
            
             Name of the database provider specific data type. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the order of the database column used to store the property.
            This method is also used to specify key ordering when an entity type has a composite key.
            
             The order that this column should appear in the database table. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the property to support Unicode string content.
            
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures whether or not the property supports Unicode string content.
            
             Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'. 
             The same StringPropertyConfiguration instance so that multiple calls can be chained. 
        
        
            
            Used to configure a  property of an entity type or
            complex type.
            
        
        
            
            Used to configure a property with length facets for an entity type or
            complex type.
            
        
        
            
            Used to configure a primitive property of an entity type or complex type.
            
        
        
            
            Initializes a new instance of the PrimitivePropertyConfiguration class.
            
        
        
            
            Initializes a new instance of the  
            class with the same settings as another configuration.
            
            The configuration to copy settings from.
        
        
            Gets a value that indicates whether the provided model is compatible with the current model provider.
            true if the provided model is compatible with the current model provider; otherwise, false.
            The original property expression that specifies the member and instance.
            The property to compare.
            The error message.
            The type of the property.
            The type of the configuration to look for.
        
        
            Gets a value that indicates whether the provided model is compatible with the current model provider.
            true if the provided model is compatible with the current model provider; otherwise, false.
            The property expression.
            The property to compare.
            The error message.
            The type of the configuration to look for.
        
        
            Gets a value that indicates whether the provided model is compatible with the current model provider.
            true if the provided model is compatible with the current model provider; otherwise, false.
            The configuration property.
            The property to compare
            The type property.
        
        
            Gets a value that indicates whether the provided model is compatible with the current model provider.
            true if the provided model is compatible with the current model provider; otherwise, false.
            The configuration property.
            The property to compare.
        
        
            
            Gets a value indicating whether the property is optional.
            
        
        
            
            Gets or sets the concurrency mode to use for the property.
            
        
        
            
            Gets or sets the pattern used to generate values in the database for the
            property.
            
        
        
            
            Gets or sets the type of the database column used to store the property.
            
        
        
            
            Gets or sets the name of the database column used to store the property.
            
        
        
            Gets or sets the name of the parameter used in stored procedures for this property.
            The name of the parameter used in stored procedures for this property.
        
        
            
            Gets or sets the order of the database column used to store the property.
            
        
        
            
            Initializes a new instance of the LengthPropertyConfiguration class.
            
        
        
            
            Initializes a new instance of the  
            class with the same settings as another configuration.
            
            The configuration to copy settings from.
        
        
            
            Gets or sets a value indicating whether the property is fixed length.
            
        
        
            
            Gets or sets the maximum length of the property.
            
        
        
            
            Gets or sets a value indicating whether the property allows the maximum
            length supported by the database provider.
            
        
        
            
            Initializes a new instance of the BinaryPropertyConfiguration class.
            
        
        
            
            Gets or sets a value indicating whether the property is a row version in the
            database.
            
        
        
            
            Used to configure a  property of an entity type or
            complex type.
            
        
        
            
            Initializes a new instance of the DateTimePropertyConfiguration class.
            
        
        
            
            Gets or sets the precision of the property.
            
        
        
            
            Used to configure a  property of an entity type or
            complex type.
            
        
        
            
            Initializes a new instance of the DecimalPropertyConfiguration class.
            
        
        
            
            Gets or sets the precision of the property.
            
        
        
            
            Gets or sets the scale of the property.
            
        
        
            
            Indicates what parts of a configuration are overridable.
            
        
        
            
            Nothing in the configuration is overridable.
            
        
        
            
            The configuration values related to C-Space are overridable.
            
        
        
            
            The configuration values only related to S-Space are overridable.
            
        
        
            
            Used to configure a  property of an entity type or
            complex type.
            
        
        
            
            Initializes a new instance of the StringPropertyConfiguration class.
            
        
        
            
            Gets or sets a value indicating whether the property supports Unicode string
            content.
            
        
        
            
            Allows configuration to be performed for a complex type in a model.
            
        
        
            
            Allows configuration to be performed for a type in a model.
            
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The property to be configured. 
        
        
            
            Allows configuration to be performed for an entity type in a model.
            
        
        
            
            Configures the primary key property(s) for this entity type.
            
             The property to be used as the primary key. If the primary key is made up of multiple properties, call this method once for each of them. 
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
             The database schema of the table. 
        
        
            
            Gets a value indicating whether the name of the table has been configured.
            
        
        
            
            True if this configuration can be replaced in the model configuration, false otherwise
            This is only set to true for configurations that are registered automatically via the DbContext
            
        
        
            
            Gets or sets the entity set name to be used for this entity type.
            
        
        
            
            Gets the name of the table that this entity type is mapped to.
            
        
        
            
            Gets the database schema of the table that this entity type is mapped to.
            
        
        
            
            Convention to process instances of  found on properties in the model
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on foreign key properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on navigation properties in the model.
            
        
        
            
            Convention to process instances of  found on primitive properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on properties in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on types in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on types in the model.
            
        
        
            
        
        
            
            Convention to process instances of  found on types in the model.
            
        
        
            
        
        
            
            Convention to detect navigation properties to be inverses of each other when only one pair
            of navigation properties exists between the related types.
            
        
        
            
        
        
            
            Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties.
            
        
        
            
        
        
            
            Convention to add a cascade delete to the join table from both tables involved in a many to many relationship.
            
        
        
            
            Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties
            
        
        
            
            Convention to set the table name to be a pluralized version of the entity type name.
            
        
        
            
        
        
            
            Convention to set precision to 18 and scale to 2 for decimal properties.
            
        
        
            
            Initializes a new instance of  with the default precision and scale.
            
        
        
            
            Initializes a new instance of  with the specified precision and scale.
            
             Precision 
             Scale 
        
        
            
        
        
            
            Convention to move primary key properties to appear first.
            
        
        
            
        
        
            
            Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property.
            
        
        
            
        
        
            
            Base class for conventions that discover foreign key properties.
            
        
        
            
            When overriden returns true if  should be part of the foreign key.
            
             The association type being configured. 
             The dependent end. 
             The candidate property on the dependent end. 
             The principal end entity type. 
             A key property on the principal end that is a candidate target for the foreign key. 
            true if dependentProperty should be a part of the foreign key; otherwise, false.
        
        
            
        
        
            
            Returns true if the convention supports pairs of entity types that have multiple associations defined between them.
            
        
        
            
            Convention to process instances of  found on navigation properties in the model.
            
        
        
            
        
        
            
            Convention to detect primary key properties.
            Recognized naming patterns in order of precedence are:
            1. 'Id'
            2. [type name]Id
            Primary key detection is case insensitive.
            
        
        
            
            Base class for conventions that discover primary key properties.
            
        
        
            
        
        
            
            When overriden returns the subset of properties that will be part of the primary key.
            
             The entity type. 
             The primitive types of the entities
             The properties that should be part of the primary key. 
        
        
            
        
        
            
            Convention to discover foreign key properties whose names are a combination
            of the dependent navigation property name and the principal type primary key property name(s).
            
        
        
            
        
        
            
        
        
            
            Convention to enable cascade delete for any required relationships.
            
        
        
            
        
        
            
            Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship.
            
        
        
            
        
        
            
            Convention to set the entity set name to be a pluralized version of the entity type name.
            
        
        
            
        
        
            
            Convention to discover foreign key properties whose names match the principal type primary key property name(s).
            
        
        
            
        
        
            
            Convention to set a maximum length for properties whose type supports length facets. The default value is 128.
            
        
        
            
            Initializes a new instance of  with the default length.
            
        
        
            
            Initializes a new instance of  with the specified length.
            
        
        
            
        
        
            
        
        
            
        
        
            
            Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider.
            
        
        
            
        
        
            
        
        
            
            Convention to configure integer primary keys to be identity.
            
        
        
            
        
        
            
            Checks for the PK property being an FK in a different table. A PK which is also an FK but
            in the same table is used for table splitting and can still be an identity column because
            the update pipeline is only inserting into one column of one table.
            
        
        
            
            Convention to discover foreign key properties whose names are a combination
            of the principal type name and the principal type primary key property name(s).
            
        
        
            
        
        
            
            This class provide service for both the singularization and pluralization, it takes the word pairs
            in the ctor following the rules that the first one is singular and the second one is plural.
            
        
        
            
            Attempt to determine the principal and dependent ends of this association.
            The following table illustrates the solution space.
            Source | Target || Prin  | Dep   |
            -------|--------||-------|-------|
            1      | 1      || -     | -     |
            1      | 0..1   || Sr    | Ta    |
            1      | *      || Sr    | Ta    |
            0..1   | 1      || Ta    | Sr    |
            0..1   | 0..1   || -     | -     |
            0..1   | *      || Sr    | Ta    |
            *      | 1      || Ta    | Sr    |
            *      | 0..1   || Ta    | Sr    |
            *      | *      || -     | -     |
            
        
        
            
            Allows configuration to be performed for an entity type in a model.
            An EntityTypeConfiguration can be obtained via the Entity method on
             or a custom type derived from EntityTypeConfiguration
            can be registered via the Configurations property on .
            
        
        
            
            Initializes a new instance of EntityTypeConfiguration
            
        
        
            
            Configures the primary key property(s) for this entity type.
            
             The type of the key. 
             A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 } 
             The same EntityTypeConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures the entity set name to be used for this entity type.
            The entity set name can only be configured for the base type in each set.
            
             The name of the entity set. 
             The same EntityTypeConfiguration instance so that multiple calls can be chained. 
        
        
            
            Excludes a property from the model so that it will not be mapped to the database.
            
             The type of the property to be ignored. 
             A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
        
        
            
            Configures the table name that this entity type is mapped to.
            
             The name of the table. 
             The database schema of the table. 
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            The default conventions for procedure and parameter names will be used.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Configures this type to use stored procedures for insert, update and delete.
            
            
            Configuration to override the default conventions for procedure and parameter names.
            
             The same configuration instance so that multiple calls can be chained. 
        
        
            
            Allows advanced configuration related to how this entity type is mapped to the database schema.
            By default, any configuration will also apply to any type derived from this entity type.
            Derived types can be configured via the overload of Map that configures a derived type or
            by using an EntityTypeConfiguration for the derived type.
            The properties of an entity can be split between multiple tables using multiple Map calls.
            Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
            
            
            An action that performs configuration against an
            
            .
            
             The same EntityTypeConfiguration instance so that multiple calls can be chained. 
        
        
            
            Allows advanced configuration related to how a derived entity type is mapped to the database schema.
            Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
            
             The derived entity type to be configured. 
            
            An action that performs configuration against an
            
            .
            
             The same EntityTypeConfiguration instance so that multiple calls can be chained. 
        
        
            
            Configures an optional relationship from this entity type.
            Instances of the entity type will be able to be saved to the database without this relationship being specified.
            The foreign key in the database will be nullable.
            
             The type of the entity at the other end of the relationship. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures a required relationship from this entity type.
            Instances of the entity type will not be able to be saved to the database unless this relationship is specified.
            The foreign key in the database will be non-nullable.
            
             The type of the entity at the other end of the relationship. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
            Configures a many relationship from this entity type.
            
             The type of the entity at the other end of the relationship. 
             A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty 
             A configuration object that can be used to further configure the relationship. 
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Handles mapping from a CLR property to an EDM assocation and nav. prop.
            
        
        
            
            Exception thrown by  during model creation when an invalid model is generated.
            
        
        
            
            Initializes a new instance of ModelValidationException
            
        
        
            
            Initializes a new instance of ModelValidationException
            
             The exception message. 
        
        
            
            Initializes a new instance of ModelValidationException
            
             The exception message. 
             The inner exception. 
        
        
            Initializes a new instance of  class serialization info and streaming context.
            The serialization info.
            The streaming context.
        
        
            
            Determine if the given type type implements the given generic interface or derives from the given generic type,
            and if so return the element type of the collection. If the type implements the generic interface several times
            null will be returned.
            
             The type to examine. 
             The generic type to be queried for. 
             
            null if  isn't implemented or implemented multiple times,
            otherwise the generic argument.
            
        
        
            
            Determine if the given type type implements the given generic interface or derives from the given generic type,
            and if so return the concrete types implemented.
            
             The type to examine. 
             The generic type to be queried for. 
             
            The generic types constructed from  and implemented by .
            
        
        
            
            Returns true if a variable of this type can be assigned a null value
            
             True if a reference type or a nullable value type, false otherwise 
        
        
            
            Exception thrown from  when validating entities fails.
            
        
        
            
            Initializes a new instance of DbEntityValidationException.
            
        
        
            
            Initializes a new instance of DbEntityValidationException.
            
             The exception message. 
        
        
            
            Initializes a new instance of DbEntityValidationException.
            
             The exception message. 
             Validation results. 
        
        
            
            Initializes a new instance of DbEntityValidationException.
            
             The exception message. 
             The inner exception. 
        
        
            
            Initializes a new instance of DbEntityValidationException.
            
             The exception message. 
             Validation results. 
             The inner exception. 
        
        
            
            Subscribes the SerializeObjectState event.
            
        
        
            
            Validation results.
            
        
        
            
            Holds exception state that will be serialized when the exception is serialized.
            
        
        
            
            Validation results.
            
        
        
            
            Completes the deserialization.
            
             The deserialized object. 
        
        
            
            Validation results.
            
        
        
            
            Represents validation results for single entity.
            
        
        
            
            Entity entry the results applies to. Never null.
            
        
        
            
            List of  instances. Never null. Can be empty meaning the entity is valid.
            
        
        
            
            Creates an instance of  class.
            
             Entity entry the results applies to. Never null. 
            
            List of  instances. Never null. Can be empty meaning the entity is valid.
            
        
        
            
            Creates an instance of  class.
            
             Entity entry the results applies to. Never null. 
            
            List of  instances. Never null. Can be empty meaning the entity is valid.
            
        
        
            
            Gets an instance of  the results applies to.
            
        
        
            
            Gets validation errors. Never null.
            
        
        
            
            Gets an indicator if the entity is valid.
            
        
        
            
            Exception thrown from  when an exception is thrown from the validation
            code.
            
        
        
            
            Initializes a new instance of DbUnexpectedValidationException.
            
        
        
            
            Initializes a new instance of DbUnexpectedValidationException.
            
             The exception message. 
        
        
            
            Initializes a new instance of DbUnexpectedValidationException.
            
             The exception message. 
             The inner exception. 
        
        
            
            Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and
            context.
            
             The serialization info. 
             The streaming context. 
        
        
            
            Validation error. Can be either entity or property level validation error.
            
        
        
            
            Name of the invalid property. Can be null (e.g. for entity level validations).
            
        
        
            
            Validation error message.
            
        
        
            
            Creates an instance of .
            
             Name of the invalid property. Can be null. 
             Validation error message. Can be null. 
        
        
            
            Gets name of the invalid property.
            
        
        
            
            Gets validation error message.