Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 2 / 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
- MeasureItemEvent.cs
- ObfuscationAttribute.cs
- CounterSample.cs
- XmlNodeReader.cs
- FormView.cs
- PhysicalOps.cs
- ISO2022Encoding.cs
- PageBreakRecord.cs
- DesignerObjectListAdapter.cs
- CodeComment.cs
- OletxEnlistment.cs
- StreamResourceInfo.cs
- SiteMapNode.cs
- IgnoreSectionHandler.cs
- XmlHierarchicalEnumerable.cs
- ViewValidator.cs
- XmlSchemaObjectCollection.cs
- StorageScalarPropertyMapping.cs
- Root.cs
- ConversionContext.cs
- Pointer.cs
- QueryExpr.cs
- MetabaseReader.cs
- SqlDataSourceEnumerator.cs
- CacheMode.cs
- RegistryPermission.cs
- DoubleLinkListEnumerator.cs
- ProxyOperationRuntime.cs
- IsolatedStorageFile.cs
- TextSchema.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- RNGCryptoServiceProvider.cs
- TrailingSpaceComparer.cs
- EntityDataSourceDesignerHelper.cs
- ArrangedElementCollection.cs
- URI.cs
- SmiEventStream.cs
- EdmSchemaAttribute.cs
- HwndHost.cs
- configsystem.cs
- ExpressionHelper.cs
- AnnotationHelper.cs
- ActiveXSite.cs
- CoTaskMemHandle.cs
- ObjectStorage.cs
- SqlComparer.cs
- MobileCapabilities.cs
- LabelAutomationPeer.cs
- EventWaitHandle.cs
- ObjectDataSourceStatusEventArgs.cs
- TextClipboardData.cs
- EditorZone.cs
- XmlSchemaComplexContentRestriction.cs
- InputLanguageCollection.cs
- Rect3D.cs
- TargetConverter.cs
- XamlSerializer.cs
- SqlTriggerContext.cs
- TableChangeProcessor.cs
- SafeEventHandle.cs
- SqlSelectStatement.cs
- XmlHelper.cs
- TimelineCollection.cs
- TableTextElementCollectionInternal.cs
- ImageDesigner.cs
- ReferenceAssemblyAttribute.cs
- BuilderPropertyEntry.cs
- FormatException.cs
- BindToObject.cs
- IisTraceListener.cs
- QilXmlReader.cs
- TypeToStringValueConverter.cs
- ReliableDuplexSessionChannel.cs
- PropertyConverter.cs
- CodeGeneratorOptions.cs
- BitmapEffectvisualstate.cs
- XmlSerializerOperationGenerator.cs
- WCFModelStrings.Designer.cs
- Repeater.cs
- CreatingCookieEventArgs.cs
- DataSpaceManager.cs
- SelectedDatesCollection.cs
- SqlNotificationEventArgs.cs
- SQLDoubleStorage.cs
- SequenceNumber.cs
- PropertyGrid.cs
- ObjectDataSourceDisposingEventArgs.cs
- DrawingContextDrawingContextWalker.cs
- PhysicalFontFamily.cs
- TreeView.cs
- ReverseInheritProperty.cs
- PortCache.cs
- MarkupCompiler.cs
- MouseEvent.cs
- XpsS0ValidatingLoader.cs
- EpmAttributeNameBuilder.cs
- XmlDocumentType.cs
- MimeXmlReflector.cs
- CookieProtection.cs
- GenerateTemporaryTargetAssembly.cs