Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- XmlIlTypeHelper.cs
- CardSpaceException.cs
- OdbcUtils.cs
- XmlSchemaSimpleTypeList.cs
- ActionMessageFilter.cs
- MobileErrorInfo.cs
- TableLayoutSettings.cs
- Polyline.cs
- WsdlParser.cs
- Vector.cs
- TableColumnCollection.cs
- SecondaryIndexDefinition.cs
- Publisher.cs
- ObjectKeyFrameCollection.cs
- XmlNodeComparer.cs
- ComponentConverter.cs
- ByteConverter.cs
- SelectedDatesCollection.cs
- LocalizationCodeDomSerializer.cs
- Dispatcher.cs
- HttpCacheParams.cs
- Animatable.cs
- DodSequenceMerge.cs
- Transform.cs
- CodeIterationStatement.cs
- HtmlImageAdapter.cs
- ImagingCache.cs
- GlyphManager.cs
- xmlsaver.cs
- ComNativeDescriptor.cs
- GraphicsPath.cs
- ButtonChrome.cs
- WindowHideOrCloseTracker.cs
- DataControlFieldCell.cs
- MultipleViewPattern.cs
- XmlSchemaInferenceException.cs
- HtmlTable.cs
- PopupRootAutomationPeer.cs
- Rotation3DKeyFrameCollection.cs
- CallbackValidatorAttribute.cs
- InstalledFontCollection.cs
- AcceleratedTokenAuthenticator.cs
- PowerModeChangedEventArgs.cs
- ContentFileHelper.cs
- PropertyInformationCollection.cs
- StorageEntitySetMapping.cs
- IPEndPoint.cs
- EnglishPluralizationService.cs
- MarshalByValueComponent.cs
- GreenMethods.cs
- ObjectParameter.cs
- SimpleBitVector32.cs
- LineVisual.cs
- GeneralTransform3DTo2DTo3D.cs
- GetTokenRequest.cs
- JoinGraph.cs
- IUnknownConstantAttribute.cs
- HtmlInputRadioButton.cs
- TcpPortSharing.cs
- ParagraphVisual.cs
- Literal.cs
- PageContent.cs
- List.cs
- RSACryptoServiceProvider.cs
- LockCookie.cs
- ContentPlaceHolder.cs
- SchemaCollectionPreprocessor.cs
- XsltArgumentList.cs
- TextSpanModifier.cs
- EntityContainerEntitySet.cs
- XmlEventCache.cs
- EUCJPEncoding.cs
- FileLevelControlBuilderAttribute.cs
- HTMLTextWriter.cs
- CodeDelegateInvokeExpression.cs
- GridViewEditEventArgs.cs
- AlgoModule.cs
- MetadataArtifactLoaderCompositeResource.cs
- SerializableReadOnlyDictionary.cs
- __Filters.cs
- ReflectionTypeLoadException.cs
- XmlAttributeProperties.cs
- ObjectMaterializedEventArgs.cs
- OneOfConst.cs
- MemberExpressionHelper.cs
- SizeFConverter.cs
- AdobeCFFWrapper.cs
- LogEntrySerialization.cs
- ErrorFormatter.cs
- SplineKeyFrames.cs
- ResourcesBuildProvider.cs
- Span.cs
- EntityDataSourceContainerNameItem.cs
- securitycriticaldataClass.cs
- ParenthesizePropertyNameAttribute.cs
- ProxyAttribute.cs
- MessageAction.cs
- SqlCacheDependency.cs
- RefreshEventArgs.cs
- XMLDiffLoader.cs