Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Common / DbProviderServices.cs / 2 / 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
- CollectionViewSource.cs
- ObjectCloneHelper.cs
- ContextMarshalException.cs
- BitConverter.cs
- HScrollProperties.cs
- DataGridViewCellMouseEventArgs.cs
- xsdvalidator.cs
- Quaternion.cs
- LinkLabel.cs
- SelectionGlyphBase.cs
- GridViewRow.cs
- TextRangeEditLists.cs
- CompositeCollection.cs
- SHA1.cs
- GeometryValueSerializer.cs
- ButtonRenderer.cs
- JsonSerializer.cs
- DBCommand.cs
- ExtenderProvidedPropertyAttribute.cs
- RepeaterCommandEventArgs.cs
- TableLayoutStyleCollection.cs
- BlockUIContainer.cs
- TextTabProperties.cs
- ContactManager.cs
- DynamicQueryStringParameter.cs
- CngAlgorithm.cs
- SerializerWriterEventHandlers.cs
- AppSettingsExpressionBuilder.cs
- TextPointerBase.cs
- InstallerTypeAttribute.cs
- ObjectSpanRewriter.cs
- TextRange.cs
- SurrogateSelector.cs
- AncillaryOps.cs
- FontConverter.cs
- CursorConverter.cs
- HttpPostProtocolImporter.cs
- WindowsFormsLinkLabel.cs
- PerfCounters.cs
- SHA256.cs
- TitleStyle.cs
- ActivityBuilder.cs
- ReferenceEqualityComparer.cs
- OleDbWrapper.cs
- ReferencedCategoriesDocument.cs
- QueryableDataSource.cs
- ButtonColumn.cs
- KeyValueConfigurationCollection.cs
- TextRangeEdit.cs
- PersonalizationProviderCollection.cs
- MissingFieldException.cs
- CacheDependency.cs
- WebPartTransformer.cs
- DoWorkEventArgs.cs
- DataSourceControlBuilder.cs
- PeerNameRecord.cs
- ProjectedWrapper.cs
- CalendarDay.cs
- CryptographicAttribute.cs
- SqlParameterizer.cs
- SqlServices.cs
- PageHandlerFactory.cs
- TableLayoutColumnStyleCollection.cs
- GorillaCodec.cs
- InvalidWMPVersionException.cs
- CodeDefaultValueExpression.cs
- DefaultSerializationProviderAttribute.cs
- X509CertificateClaimSet.cs
- ClientBuildManagerCallback.cs
- BindingWorker.cs
- DataGridRowAutomationPeer.cs
- HttpCapabilitiesEvaluator.cs
- BrowserCapabilitiesFactory35.cs
- HTMLTagNameToTypeMapper.cs
- PolygonHotSpot.cs
- CodeIndexerExpression.cs
- SessionIDManager.cs
- StoreUtilities.cs
- DataBindingList.cs
- WmpBitmapDecoder.cs
- WeakReference.cs
- FileDialog.cs
- ObjectPropertyMapping.cs
- Parameter.cs
- DeploymentSectionCache.cs
- HuffModule.cs
- Point4DValueSerializer.cs
- AnnotationAdorner.cs
- ValidationError.cs
- SiblingIterators.cs
- Pkcs9Attribute.cs
- StatusBar.cs
- TextFindEngine.cs
- XsdCachingReader.cs
- HuffmanTree.cs
- EncodingDataItem.cs
- DataObjectAttribute.cs
- MinimizableAttributeTypeConverter.cs
- PixelFormatConverter.cs
- XmlDataSourceNodeDescriptor.cs