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
- RuntimeWrappedException.cs
- HttpModulesSection.cs
- Util.cs
- CodeVariableDeclarationStatement.cs
- EventSinkHelperWriter.cs
- BitmapEffectrendercontext.cs
- SqlDataSourceEnumerator.cs
- XmlQualifiedNameTest.cs
- BamlLocalizabilityResolver.cs
- BevelBitmapEffect.cs
- DurableOperationAttribute.cs
- PropertySourceInfo.cs
- SchemaType.cs
- PhysicalAddress.cs
- Focus.cs
- XamlFigureLengthSerializer.cs
- SecurityTokenTypes.cs
- PathStreamGeometryContext.cs
- QuaternionAnimation.cs
- WebServiceClientProxyGenerator.cs
- Attributes.cs
- TextParaClient.cs
- SystemUnicastIPAddressInformation.cs
- RequestCachingSection.cs
- DataRecordInternal.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TextBlock.cs
- MeasureData.cs
- FirstMatchCodeGroup.cs
- GACIdentityPermission.cs
- ZipIOLocalFileDataDescriptor.cs
- Pts.cs
- RuntimeCompatibilityAttribute.cs
- Renderer.cs
- Converter.cs
- EntityDataSourceValidationException.cs
- SqlUserDefinedAggregateAttribute.cs
- SqlDataSourceRefreshSchemaForm.cs
- HttpFileCollection.cs
- AsyncResult.cs
- FileClassifier.cs
- SiblingIterators.cs
- IisTraceListener.cs
- TableRowCollection.cs
- CriticalFinalizerObject.cs
- MimeMultiPart.cs
- XmlAttributes.cs
- TemplateNameScope.cs
- RowToFieldTransformer.cs
- GraphicsContext.cs
- ListComponentEditorPage.cs
- AsyncContentLoadedEventArgs.cs
- webproxy.cs
- TypeDescriptor.cs
- WindowsFormsSectionHandler.cs
- DbDataAdapter.cs
- StringResourceManager.cs
- Globals.cs
- FacetChecker.cs
- _ConnectOverlappedAsyncResult.cs
- BitmapFrameEncode.cs
- ItemMap.cs
- MenuScrollingVisibilityConverter.cs
- DesignerOptionService.cs
- XmlValidatingReaderImpl.cs
- HtmlCommandAdapter.cs
- SplashScreenNativeMethods.cs
- BindingExpressionUncommonField.cs
- SymDocumentType.cs
- ContextMenuStrip.cs
- LiteralTextParser.cs
- WorkflowElementDialog.cs
- StorageScalarPropertyMapping.cs
- ParameterCollectionEditor.cs
- RectIndependentAnimationStorage.cs
- UICuesEvent.cs
- Activator.cs
- ObjRef.cs
- ThousandthOfEmRealPoints.cs
- RepeatBehaviorConverter.cs
- AnimationStorage.cs
- AdCreatedEventArgs.cs
- SystemDropShadowChrome.cs
- Model3DGroup.cs
- Environment.cs
- PrimarySelectionGlyph.cs
- RadioButton.cs
- DrawingContext.cs
- SqlBooleanizer.cs
- NeedSkipTokenVisitor.cs
- ProfessionalColors.cs
- Activity.cs
- XmlSchemaSimpleTypeUnion.cs
- SqlGenerator.cs
- EntityModelSchemaGenerator.cs
- RegexTypeEditor.cs
- Metafile.cs
- PieceDirectory.cs
- WindowsNonControl.cs
- SqlConnectionManager.cs