/// <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); }