Ejemplo n.º 1
0
        /// <summary>
        /// Gets the provider manifest for given provider manifest token.
        /// </summary>
        /// <param name="manifestToken">The provider manifest token.</param>
        /// <returns><see cref="DbProviderManifest"/> for a given token.</returns>
        protected override System.Data.Entity.Core.Common.DbProviderManifest GetDbProviderManifest(string manifestToken)
        {
            string providerInvariantName;
            string realToken;

            // check if the name of the wrapped provider is specified in the token
            int p = manifestToken.IndexOf(';');

            if (p < 0)
            {
                // wrapped provider is not in the token - use default one
                realToken             = manifestToken;
                providerInvariantName = this.DefaultWrappedProviderName;
            }
            else
            {
                // extract provider name from the token
                providerInvariantName = manifestToken.Substring(0, p);
                realToken             = manifestToken.Substring(p + 1);
            }

            // retrieve wrapped provider manifest
            System.Data.Entity.Core.Common.DbProviderServices services = GetProviderServicesByName(providerInvariantName);
            System.Data.Entity.Core.Common.DbProviderManifest wrappedProviderManifest = services.GetProviderManifest(realToken);
            System.Data.Entity.Core.Common.DbProviderManifest wrapperManifest         = this.CreateProviderManifest(providerInvariantName, wrappedProviderManifest);

            return(wrapperManifest);
        }