Code:
                         / Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Common / DbProviderServices.cs / 3 / DbProviderServices.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
//  
// 
// @owner  [....], [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.Common
{ 
    using System.Collections.Generic;
    using System.Data.Common.CommandTrees;
    using System.Data.Metadata.Edm; 
    using System.Xml;
    using System.Reflection; 
    using System.IO; 
    using System.Data.Entity;
    using System.Diagnostics; 
    /// 
    /// The factory for building command definitions; use the type of this object
    /// as the argument to the IServiceProvider.GetService method on the provider 
    /// factory;
    ///   
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] 
    abstract public class DbProviderServices
    { 
        /// 
        /// Create a Command Definition object given a command tree.
        ///  
        /// command tree for the statement 
        /// an exectable command definition object 
        ///  
        /// This method simply delegates to the provider's implementation of CreateDbCommandDefinition. 
        ///  
        public DbCommandDefinition CreateCommandDefinition(DbCommandTree commandTree) 
        {
            EntityUtil.CheckArgumentNull(commandTree, "commandTree");
            StoreItemCollection storeMetadata = (StoreItemCollection)commandTree.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
            Debug.Assert(storeMetadata.StoreProviderManifest != null, "StoreItemCollection has null StoreProviderManifest?"); 
            return CreateDbCommandDefinition(storeMetadata.StoreProviderManifest, commandTree); 
        } 
        ///  
        /// Create a Command Definition object, given the provider manifest and command tree
        ///  
        /// provider manifest previously retrieved from the store provider
        /// command tree for the statement 
        /// an exectable command definition object 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] 
        protected abstract DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree); 
        ///  
        /// Create a DbCommand object given a command tree.
        ///  
        /// command tree for the statement
        /// a command object  
        internal virtual DbCommand CreateCommand(DbCommandTree commandTree) {
            DbCommandDefinition commandDefinition = CreateCommandDefinition(commandTree); 
            DbCommand command = commandDefinition.CreateCommand(); 
            return command;
        } 
        /// 
        /// 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  
        public virtual DbCommandDefinition CreateCommandDefinition(DbCommand prototype) {
            return DbCommandDefinition.CreateCommandDefinition(prototype);
        }
 
        /// 
        /// Retrieve the provider manifest token based on the specified connection. 
        ///   
        /// The connection for which the provider manifest token should be retrieved.
        ///  
        /// The provider manifest token that describes the specified connection, as determined by the provider.
        ///  
        /// 
        /// This method simply delegates to the provider's implementation of GetDbProviderManifestToken. 
        ///  
        public string GetProviderManifestToken(DbConnection connection) { 
            try 
            {
                string providerManifestToken = GetDbProviderManifestToken(connection); 
                if (providerManifestToken == null)
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifestToken);
                } 
                return providerManifestToken;
            } 
            catch (ProviderIncompatibleException) 
            {
                throw; 
            }
            catch (Exception e)
            {
                if (EntityUtil.IsCatchableExceptionType(e)) 
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifestToken, e); 
                } 
                throw;
            } 
        }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
        protected abstract string GetDbProviderManifestToken(DbConnection connection); 
        public DbProviderManifest GetProviderManifest(string manifestToken) { 
            try 
            {
                DbProviderManifest providerManifest = GetDbProviderManifest(manifestToken); 
                if (providerManifest == null)
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifest);
                } 
                return providerManifest; 
            } 
            catch (ProviderIncompatibleException)
            { 
                throw;
            }
            catch (Exception e)
            { 
                if (EntityUtil.IsCatchableExceptionType(e)) {
                    throw EntityUtil.ProviderIncompatible(System.Data.Entity.Strings.ProviderDidNotReturnAProviderManifest, e); 
                } 
                throw;
            } 
        }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
        protected abstract DbProviderManifest GetDbProviderManifest(string manifestToken); 
        ///  
        /// Create an instance of DbProviderServices based on the supplied DbConnection 
        ///  
        /// The DbConnection to use 
        /// An instance of DbProviderServices 
        public static DbProviderServices GetProviderServices(DbConnection connection) {
            return GetProviderServices(GetProviderFactory(connection));
        } 
        internal static DbProviderFactory GetProviderFactory(string providerInvariantName) 
        { 
            EntityUtil.CheckArgumentNull(providerInvariantName, "providerInvariantName");
            DbProviderFactory factory; 
            try
            {
                factory = DbProviderFactories.GetFactory(providerInvariantName);
            } 
            catch (ArgumentException e)
            { 
                throw EntityUtil.Argument(Strings.EntityClient_InvalidStoreProvider, e); 
            }
            return factory; 
        }
        internal static DbProviderFactory GetProviderFactory(DbConnection connection)
        { 
            EntityUtil.CheckArgumentNull(connection, "connection");
            DbProviderFactory factory = connection.ProviderFactory; 
            if (factory == null) 
            {
                throw EntityUtil.ProviderIncompatible( 
                    System.Data.Entity.Strings.EntityClient_ReturnedNullOnProviderMethod(
                        "get_ProviderFactory",
                        connection.GetType().ToString()));
            } 
            return factory;
        } 
 
        internal static DbProviderServices GetProviderServices(DbProviderFactory factory) {
            EntityUtil.CheckArgumentNull(factory, "factory"); 
            IServiceProvider serviceProvider = factory as IServiceProvider;
            if (serviceProvider == null) {
                throw EntityUtil.ProviderIncompatible(System.Data.Entity.Strings.EntityClient_DoesNotImplementIServiceProvider( 
                    factory.GetType().ToString()));
            } 
 
            DbProviderServices providerServices = serviceProvider.GetService(typeof(DbProviderServices)) as DbProviderServices;
            if (providerServices == null) { 
                throw EntityUtil.ProviderIncompatible(
                    System.Data.Entity.Strings.EntityClient_ReturnedNullOnProviderMethod(
                        "GetService",
                        factory.GetType().ToString())); 
            }
 
            return providerServices; 
        }
 
        /// 
        /// Return an XML reader which represents the CSDL description
        ///  
        /// An XmlReader that represents the CSDL description  
        internal static XmlReader GetConceptualSchemaDescription() {
            return DbProviderServices.GetXmlResource("System.Data.Resources.DbProviderServices.ConceptualSchemaDefinition.csdl"); 
        } 
        internal static XmlReader GetXmlResource(string resourceName) { 
            Assembly executingAssembly = Assembly.GetExecutingAssembly();
            Stream stream = executingAssembly.GetManifestResourceStream(resourceName);
            return XmlReader.Create(stream, null, resourceName);
        } 
    }
 
} 
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
//  
// 
// @owner  [....], [....]
//----------------------------------------------------------------------------- 
 
namespace System.Data.Common
{ 
    using System.Collections.Generic;
    using System.Data.Common.CommandTrees;
    using System.Data.Metadata.Edm; 
    using System.Xml;
    using System.Reflection; 
    using System.IO; 
    using System.Data.Entity;
    using System.Diagnostics; 
    /// 
    /// The factory for building command definitions; use the type of this object
    /// as the argument to the IServiceProvider.GetService method on the provider 
    /// factory;
    ///   
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] 
    abstract public class DbProviderServices
    { 
        /// 
        /// Create a Command Definition object given a command tree.
        ///  
        /// command tree for the statement 
        /// an exectable command definition object 
        ///  
        /// This method simply delegates to the provider's implementation of CreateDbCommandDefinition. 
        ///  
        public DbCommandDefinition CreateCommandDefinition(DbCommandTree commandTree) 
        {
            EntityUtil.CheckArgumentNull(commandTree, "commandTree");
            StoreItemCollection storeMetadata = (StoreItemCollection)commandTree.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
            Debug.Assert(storeMetadata.StoreProviderManifest != null, "StoreItemCollection has null StoreProviderManifest?"); 
            return CreateDbCommandDefinition(storeMetadata.StoreProviderManifest, commandTree); 
        } 
        ///  
        /// Create a Command Definition object, given the provider manifest and command tree
        ///  
        /// provider manifest previously retrieved from the store provider
        /// command tree for the statement 
        /// an exectable command definition object 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")] 
        protected abstract DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree); 
        ///  
        /// Create a DbCommand object given a command tree.
        ///  
        /// command tree for the statement
        /// a command object  
        internal virtual DbCommand CreateCommand(DbCommandTree commandTree) {
            DbCommandDefinition commandDefinition = CreateCommandDefinition(commandTree); 
            DbCommand command = commandDefinition.CreateCommand(); 
            return command;
        } 
        /// 
        /// 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  
        public virtual DbCommandDefinition CreateCommandDefinition(DbCommand prototype) {
            return DbCommandDefinition.CreateCommandDefinition(prototype);
        }
 
        /// 
        /// Retrieve the provider manifest token based on the specified connection. 
        ///   
        /// The connection for which the provider manifest token should be retrieved.
        ///  
        /// The provider manifest token that describes the specified connection, as determined by the provider.
        ///  
        /// 
        /// This method simply delegates to the provider's implementation of GetDbProviderManifestToken. 
        ///  
        public string GetProviderManifestToken(DbConnection connection) { 
            try 
            {
                string providerManifestToken = GetDbProviderManifestToken(connection); 
                if (providerManifestToken == null)
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifestToken);
                } 
                return providerManifestToken;
            } 
            catch (ProviderIncompatibleException) 
            {
                throw; 
            }
            catch (Exception e)
            {
                if (EntityUtil.IsCatchableExceptionType(e)) 
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifestToken, e); 
                } 
                throw;
            } 
        }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
        protected abstract string GetDbProviderManifestToken(DbConnection connection); 
        public DbProviderManifest GetProviderManifest(string manifestToken) { 
            try 
            {
                DbProviderManifest providerManifest = GetDbProviderManifest(manifestToken); 
                if (providerManifest == null)
                {
                    throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotReturnAProviderManifest);
                } 
                return providerManifest; 
            } 
            catch (ProviderIncompatibleException)
            { 
                throw;
            }
            catch (Exception e)
            { 
                if (EntityUtil.IsCatchableExceptionType(e)) {
                    throw EntityUtil.ProviderIncompatible(System.Data.Entity.Strings.ProviderDidNotReturnAProviderManifest, e); 
                } 
                throw;
            } 
        }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
        protected abstract DbProviderManifest GetDbProviderManifest(string manifestToken); 
        ///  
        /// Create an instance of DbProviderServices based on the supplied DbConnection 
        ///  
        /// The DbConnection to use 
        /// An instance of DbProviderServices 
        public static DbProviderServices GetProviderServices(DbConnection connection) {
            return GetProviderServices(GetProviderFactory(connection));
        } 
        internal static DbProviderFactory GetProviderFactory(string providerInvariantName) 
        { 
            EntityUtil.CheckArgumentNull(providerInvariantName, "providerInvariantName");
            DbProviderFactory factory; 
            try
            {
                factory = DbProviderFactories.GetFactory(providerInvariantName);
            } 
            catch (ArgumentException e)
            { 
                throw EntityUtil.Argument(Strings.EntityClient_InvalidStoreProvider, e); 
            }
            return factory; 
        }
        internal static DbProviderFactory GetProviderFactory(DbConnection connection)
        { 
            EntityUtil.CheckArgumentNull(connection, "connection");
            DbProviderFactory factory = connection.ProviderFactory; 
            if (factory == null) 
            {
                throw EntityUtil.ProviderIncompatible( 
                    System.Data.Entity.Strings.EntityClient_ReturnedNullOnProviderMethod(
                        "get_ProviderFactory",
                        connection.GetType().ToString()));
            } 
            return factory;
        } 
 
        internal static DbProviderServices GetProviderServices(DbProviderFactory factory) {
            EntityUtil.CheckArgumentNull(factory, "factory"); 
            IServiceProvider serviceProvider = factory as IServiceProvider;
            if (serviceProvider == null) {
                throw EntityUtil.ProviderIncompatible(System.Data.Entity.Strings.EntityClient_DoesNotImplementIServiceProvider( 
                    factory.GetType().ToString()));
            } 
 
            DbProviderServices providerServices = serviceProvider.GetService(typeof(DbProviderServices)) as DbProviderServices;
            if (providerServices == null) { 
                throw EntityUtil.ProviderIncompatible(
                    System.Data.Entity.Strings.EntityClient_ReturnedNullOnProviderMethod(
                        "GetService",
                        factory.GetType().ToString())); 
            }
 
            return providerServices; 
        }
 
        /// 
        /// Return an XML reader which represents the CSDL description
        ///  
        /// An XmlReader that represents the CSDL description  
        internal static XmlReader GetConceptualSchemaDescription() {
            return DbProviderServices.GetXmlResource("System.Data.Resources.DbProviderServices.ConceptualSchemaDefinition.csdl"); 
        } 
        internal static XmlReader GetXmlResource(string resourceName) { 
            Assembly executingAssembly = Assembly.GetExecutingAssembly();
            Stream stream = executingAssembly.GetManifestResourceStream(resourceName);
            return XmlReader.Create(stream, null, resourceName);
        } 
    }
 
} 
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        
                        
                        
                        
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ServiceOperationParameter.cs
 - StringConcat.cs
 - BaseTemplateCodeDomTreeGenerator.cs
 - RectangleGeometry.cs
 - PageAdapter.cs
 - NegotiateStream.cs
 - sqlinternaltransaction.cs
 - AdRotator.cs
 - XmlSerializerAssemblyAttribute.cs
 - DecimalAnimation.cs
 - OleDbStruct.cs
 - BidOverLoads.cs
 - DetailsViewCommandEventArgs.cs
 - StateDesigner.CommentLayoutGlyph.cs
 - ClassValidator.cs
 - DataRowExtensions.cs
 - ValueQuery.cs
 - Throw.cs
 - MultitargetingHelpers.cs
 - PrintDialogDesigner.cs
 - AliasedSlot.cs
 - Vector3DCollection.cs
 - DataServiceStreamProviderWrapper.cs
 - GACMembershipCondition.cs
 - GraphicsState.cs
 - FtpWebRequest.cs
 - ThicknessAnimationUsingKeyFrames.cs
 - QueryStringParameter.cs
 - ExpressionBuilderCollection.cs
 - basecomparevalidator.cs
 - MailDefinition.cs
 - SafeSecurityHelper.cs
 - DataGridCaption.cs
 - XmlStringTable.cs
 - ScriptResourceMapping.cs
 - ServiceProviders.cs
 - OleDbRowUpdatingEvent.cs
 - XmlToDatasetMap.cs
 - ProcessModuleCollection.cs
 - ScriptRegistrationManager.cs
 - RawStylusInputCustomData.cs
 - ConfigurationSectionGroup.cs
 - AutomationElement.cs
 - WebPartConnectionsCancelEventArgs.cs
 - DescriptionAttribute.cs
 - ExceptionUtil.cs
 - ClientFormsAuthenticationCredentials.cs
 - CodeGroup.cs
 - TextServicesPropertyRanges.cs
 - AdvancedBindingPropertyDescriptor.cs
 - HttpMethodConstraint.cs
 - TrackingAnnotationCollection.cs
 - Image.cs
 - StateManagedCollection.cs
 - UIAgentAsyncBeginRequest.cs
 - HttpRequest.cs
 - OneOfConst.cs
 - TabPanel.cs
 - ScriptingWebServicesSectionGroup.cs
 - WsatTransactionInfo.cs
 - UiaCoreApi.cs
 - SmtpFailedRecipientException.cs
 - CustomErrorsSectionWrapper.cs
 - SecurityState.cs
 - Geometry.cs
 - SqlGenerator.cs
 - AlignmentXValidation.cs
 - BuilderPropertyEntry.cs
 - LinearQuaternionKeyFrame.cs
 - GregorianCalendar.cs
 - TypeLoadException.cs
 - DataTableMappingCollection.cs
 - Aes.cs
 - ObjectDataSourceDesigner.cs
 - UserControlParser.cs
 - WindowsIdentity.cs
 - ByteKeyFrameCollection.cs
 - VersionedStreamOwner.cs
 - StateWorkerRequest.cs
 - ReplyChannelAcceptor.cs
 - MultiView.cs
 - XmlSchemaParticle.cs
 - columnmapkeybuilder.cs
 - Pool.cs
 - DataGridViewCellConverter.cs
 - SerializationInfo.cs
 - IISUnsafeMethods.cs
 - Nullable.cs
 - PopOutPanel.cs
 - SQLInt16Storage.cs
 - ComPlusDiagnosticTraceSchemas.cs
 - PackageDigitalSignature.cs
 - TemplateControl.cs
 - AmbiguousMatchException.cs
 - cookie.cs
 - ExpressionUtilities.cs
 - Path.cs
 - FileIOPermission.cs
 - RelationshipDetailsRow.cs
 - GlobalizationAssembly.cs