Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 1 / EntityTransaction.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Diagnostics; namespace System.Data.EntityClient { using Metadata.Edm; ////// Class representing a transaction for the conceptual layer /// public sealed class EntityTransaction : DbTransaction { private EntityConnection _connection; private DbTransaction _storeTransaction; ////// Constructs the EntityTransaction object with an associated connection and the underlying store transaction /// /// The EntityConnetion object owning this transaction /// The underlying transaction object internal EntityTransaction(EntityConnection connection, DbTransaction storeTransaction) : base() { Debug.Assert(connection != null && storeTransaction != null); this._connection = connection; this._storeTransaction = storeTransaction; } ////// The connection object owning this transaction object /// public new EntityConnection Connection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The connection object owning this transaction object /// protected override DbConnection DbConnection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The isolation level of this transaction /// public override IsolationLevel IsolationLevel { get { return this._storeTransaction.IsolationLevel; } } ////// Gets the DbTransaction for the underlying provider transaction /// internal DbTransaction StoreTransaction { get { return this._storeTransaction; } } ////// Commits the transaction /// public override void Commit() { try { this._storeTransaction.Commit(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Commit", e); } throw; } this.ClearCurrentTransaction(); } ////// Rolls back the transaction /// public override void Rollback() { try { this._storeTransaction.Rollback(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Rollback", e); } throw; } this.ClearCurrentTransaction(); } ////// Cleans up this transaction object /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources protected override void Dispose(bool disposing) { if (disposing) { this.ClearCurrentTransaction(); this._storeTransaction.Dispose(); } base.Dispose(disposing); } ////// Helper method to wrap EntityConnection.ClearCurrentTransaction() /// private void ClearCurrentTransaction() { if (_connection.CurrentTransaction == this) { _connection.ClearCurrentTransaction(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Diagnostics; namespace System.Data.EntityClient { using Metadata.Edm; ////// Class representing a transaction for the conceptual layer /// public sealed class EntityTransaction : DbTransaction { private EntityConnection _connection; private DbTransaction _storeTransaction; ////// Constructs the EntityTransaction object with an associated connection and the underlying store transaction /// /// The EntityConnetion object owning this transaction /// The underlying transaction object internal EntityTransaction(EntityConnection connection, DbTransaction storeTransaction) : base() { Debug.Assert(connection != null && storeTransaction != null); this._connection = connection; this._storeTransaction = storeTransaction; } ////// The connection object owning this transaction object /// public new EntityConnection Connection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The connection object owning this transaction object /// protected override DbConnection DbConnection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The isolation level of this transaction /// public override IsolationLevel IsolationLevel { get { return this._storeTransaction.IsolationLevel; } } ////// Gets the DbTransaction for the underlying provider transaction /// internal DbTransaction StoreTransaction { get { return this._storeTransaction; } } ////// Commits the transaction /// public override void Commit() { try { this._storeTransaction.Commit(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Commit", e); } throw; } this.ClearCurrentTransaction(); } ////// Rolls back the transaction /// public override void Rollback() { try { this._storeTransaction.Rollback(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Rollback", e); } throw; } this.ClearCurrentTransaction(); } ////// Cleans up this transaction object /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources protected override void Dispose(bool disposing) { if (disposing) { this.ClearCurrentTransaction(); this._storeTransaction.Dispose(); } base.Dispose(disposing); } ////// Helper method to wrap EntityConnection.ClearCurrentTransaction() /// private void ClearCurrentTransaction() { if (_connection.CurrentTransaction == this) { _connection.ClearCurrentTransaction(); } } } } // 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
- ExpressionVisitor.cs
- InkCanvas.cs
- BuildManagerHost.cs
- FileNotFoundException.cs
- FullTextBreakpoint.cs
- HealthMonitoringSection.cs
- XamlWriter.cs
- WebEvents.cs
- ProcessHostServerConfig.cs
- EncoderReplacementFallback.cs
- TreeViewHitTestInfo.cs
- TransformerInfoCollection.cs
- FormatConvertedBitmap.cs
- StringAttributeCollection.cs
- ReadOnlyState.cs
- DictionarySurrogate.cs
- BaseComponentEditor.cs
- GPRECT.cs
- PassportPrincipal.cs
- StylesEditorDialog.cs
- ProfilePropertyNameValidator.cs
- LicFileLicenseProvider.cs
- AttributeData.cs
- FrameAutomationPeer.cs
- Point3DAnimation.cs
- Listbox.cs
- EntityUtil.cs
- PageRanges.cs
- DetailsViewUpdateEventArgs.cs
- DoubleStorage.cs
- DeviceSpecificChoice.cs
- List.cs
- XPathNodeInfoAtom.cs
- ConsoleKeyInfo.cs
- JoinCqlBlock.cs
- XmlDataSource.cs
- PageThemeParser.cs
- TextServicesPropertyRanges.cs
- ListControlDataBindingHandler.cs
- AppearanceEditorPart.cs
- SchemaImporterExtension.cs
- DataRowIndexBuffer.cs
- SchemaImporterExtensionsSection.cs
- SelectionHighlightInfo.cs
- WindowVisualStateTracker.cs
- SapiGrammar.cs
- HttpWebRequest.cs
- ActivityDesignerHelper.cs
- PersistenceProviderBehavior.cs
- TypeReference.cs
- PublisherMembershipCondition.cs
- ToolTip.cs
- KnowledgeBase.cs
- XsltInput.cs
- HealthMonitoringSectionHelper.cs
- BamlReader.cs
- StylusSystemGestureEventArgs.cs
- DynamicFilterExpression.cs
- RegistryPermission.cs
- SimpleApplicationHost.cs
- smtpconnection.cs
- ContentElementCollection.cs
- CalendarSelectionChangedEventArgs.cs
- DataGridViewElement.cs
- CompoundFileStreamReference.cs
- ManagementEventArgs.cs
- FilePresentation.cs
- SamlNameIdentifierClaimResource.cs
- SiteMapSection.cs
- DSASignatureFormatter.cs
- MiniMapControl.xaml.cs
- ActiveDocumentEvent.cs
- LoginUtil.cs
- LiteralTextParser.cs
- ActiveXHelper.cs
- QilReference.cs
- DecoderReplacementFallback.cs
- LayoutTable.cs
- VisualStyleElement.cs
- MergablePropertyAttribute.cs
- GridSplitterAutomationPeer.cs
- IdnMapping.cs
- BrowserDefinitionCollection.cs
- StaticDataManager.cs
- TypeInitializationException.cs
- Page.cs
- DesignerGenericWebPart.cs
- EventHandlerList.cs
- CodeTypeDeclarationCollection.cs
- UrlPath.cs
- EntityDataSourceDataSelectionPanel.cs
- SecurityElement.cs
- GeneratedCodeAttribute.cs
- OLEDB_Enum.cs
- ValidatedControlConverter.cs
- CapabilitiesSection.cs
- CommandPlan.cs
- TextCollapsingProperties.cs
- SafeRightsManagementPubHandle.cs
- CodeConstructor.cs