Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 1305376 / EntityTransaction.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- 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
- ipaddressinformationcollection.cs
- RulePatternOps.cs
- PeerApplication.cs
- XmlSchemaNotation.cs
- InputManager.cs
- AppDomain.cs
- DBCSCodePageEncoding.cs
- QuaternionRotation3D.cs
- DesignerToolStripControlHost.cs
- RectKeyFrameCollection.cs
- CollectionChangedEventManager.cs
- DataListCommandEventArgs.cs
- BoundColumn.cs
- PtsCache.cs
- InkCollectionBehavior.cs
- SubqueryTrackingVisitor.cs
- DataStreams.cs
- GridViewUpdateEventArgs.cs
- EventLogEntry.cs
- DeferredReference.cs
- SchemaInfo.cs
- ExpressionParser.cs
- PageBreakRecord.cs
- SafeFileMappingHandle.cs
- NumberFormatInfo.cs
- DesignerAutoFormatCollection.cs
- PEFileReader.cs
- _DisconnectOverlappedAsyncResult.cs
- FormsAuthenticationTicket.cs
- WebContext.cs
- PersonalizationDictionary.cs
- UserThread.cs
- SortQuery.cs
- IChannel.cs
- WindowsRichEdit.cs
- ColumnMap.cs
- DataFormat.cs
- DataGridViewControlCollection.cs
- TextContainerChangeEventArgs.cs
- DbProviderFactory.cs
- Parameter.cs
- TPLETWProvider.cs
- XamlTreeBuilder.cs
- arclist.cs
- DataTableCollection.cs
- DataGridViewCellValueEventArgs.cs
- DataTableNewRowEvent.cs
- LocalizedNameDescriptionPair.cs
- AccessKeyManager.cs
- Size.cs
- BinaryNode.cs
- BinaryObjectWriter.cs
- SqlExpressionNullability.cs
- MediaPlayerState.cs
- SystemFonts.cs
- EdmType.cs
- ProtocolsConfigurationEntry.cs
- IisTraceListener.cs
- SspiHelper.cs
- CompareInfo.cs
- BoundPropertyEntry.cs
- ByteRangeDownloader.cs
- ToggleButtonAutomationPeer.cs
- DragEvent.cs
- SessionStateModule.cs
- LookupBindingPropertiesAttribute.cs
- NetPipeSection.cs
- SystemInformation.cs
- BuildProvider.cs
- __ConsoleStream.cs
- SpeechEvent.cs
- EncoderParameters.cs
- MimeObjectFactory.cs
- SyncOperationState.cs
- PageAdapter.cs
- EncryptedType.cs
- TransactionFlowOption.cs
- SoapAttributes.cs
- ObjectViewQueryResultData.cs
- BrowserDefinition.cs
- PropertyGeneratedEventArgs.cs
- TimeIntervalCollection.cs
- DeferredTextReference.cs
- InvalidComObjectException.cs
- UdpUtility.cs
- FrameSecurityDescriptor.cs
- Msmq.cs
- Converter.cs
- PersistChildrenAttribute.cs
- HttpPostProtocolImporter.cs
- RoutedEventHandlerInfo.cs
- PagerSettings.cs
- RepeaterItemEventArgs.cs
- DataBoundControlHelper.cs
- _AcceptOverlappedAsyncResult.cs
- DataServiceRequestArgs.cs
- CodeValidator.cs
- SeekStoryboard.cs
- DataGridViewCellValueEventArgs.cs
- RsaSecurityKey.cs