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
- NumberFormatInfo.cs
- NamedPipeTransportManager.cs
- TextAction.cs
- SmiMetaData.cs
- CompiledELinqQueryState.cs
- SharedPersonalizationStateInfo.cs
- DropShadowEffect.cs
- StringCollection.cs
- PictureBox.cs
- DateTimePicker.cs
- GeneralTransformGroup.cs
- OutputCacheSettingsSection.cs
- XPathSelectionIterator.cs
- FieldAccessException.cs
- ComboBox.cs
- webproxy.cs
- LogSwitch.cs
- GetRecipientRequest.cs
- Sql8ExpressionRewriter.cs
- XmlNamedNodeMap.cs
- Win32Interop.cs
- DescendentsWalkerBase.cs
- CorrelationTokenTypeConvertor.cs
- StatusBarAutomationPeer.cs
- SqlDataSourceSelectingEventArgs.cs
- DiscardableAttribute.cs
- PipelineModuleStepContainer.cs
- ExecutionContext.cs
- ConfigurationValue.cs
- AccessViolationException.cs
- TreeNodeCollection.cs
- ScrollProperties.cs
- MemberPathMap.cs
- TraceSource.cs
- PhysicalFontFamily.cs
- SafeProcessHandle.cs
- TemplateControlParser.cs
- XmlSortKeyAccumulator.cs
- ProtectedProviderSettings.cs
- ProcessHost.cs
- XmlSubtreeReader.cs
- CopyNodeSetAction.cs
- DesignBinding.cs
- NavigationPropertySingletonExpression.cs
- JobDuplex.cs
- XmlSchemaComplexContentExtension.cs
- ToolStripDropDown.cs
- SectionUpdates.cs
- Header.cs
- OperationAbortedException.cs
- PropertyChangedEventManager.cs
- ListViewHitTestInfo.cs
- DeviceSpecificDesigner.cs
- UnionCodeGroup.cs
- MenuItem.cs
- XmlNamespaceDeclarationsAttribute.cs
- WindowsFormsEditorServiceHelper.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- CodeStatement.cs
- ValidationPropertyAttribute.cs
- WebRequest.cs
- WorkflowApplicationIdleEventArgs.cs
- ContextProperty.cs
- GridViewRowEventArgs.cs
- MethodAccessException.cs
- RuleConditionDialog.Designer.cs
- XhtmlBasicTextBoxAdapter.cs
- DrawingGroupDrawingContext.cs
- EditorZone.cs
- GridViewDesigner.cs
- CommandHelper.cs
- DynamicDocumentPaginator.cs
- LabelLiteral.cs
- TargetControlTypeCache.cs
- ResourceContainer.cs
- TimersDescriptionAttribute.cs
- TransactionalPackage.cs
- mediapermission.cs
- CookieProtection.cs
- BitmapFrameDecode.cs
- TableCellCollection.cs
- BlobPersonalizationState.cs
- StsCommunicationException.cs
- BinaryMethodMessage.cs
- AttributeProviderAttribute.cs
- ObjectTag.cs
- TcpConnectionPoolSettingsElement.cs
- SpecialNameAttribute.cs
- MonthChangedEventArgs.cs
- NamedPermissionSet.cs
- DataGridViewCheckBoxCell.cs
- WSUtilitySpecificationVersion.cs
- XmlNodeComparer.cs
- XmlSchemaElement.cs
- ISAPIApplicationHost.cs
- CornerRadius.cs
- PopupRootAutomationPeer.cs
- InputScopeAttribute.cs
- ListViewGroupItemCollection.cs
- HierarchicalDataSourceControl.cs