Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 3 / EntityAdapter.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.Data.Mapping.Update.Internal; using System.Data.Objects; using System.Diagnostics; using System.Data.Mapping; namespace System.Data.EntityClient { ////// Class representing a data adapter for the conceptual layer /// internal sealed class EntityAdapter : IEntityAdapter { private bool _acceptChangesDuringUpdate = true; private EntityConnection _connection; private Int32? _commandTimeout; ////// Constructs the EntityAdapter object without a connection object /// public EntityAdapter() { } ////// Gets or sets the map connection used by this adapter. /// DbConnection IEntityAdapter.Connection { get { return this.Connection; } set { this.Connection = (EntityConnection)value; } } ////// Gets or sets the map connection used by this adapter. /// public EntityConnection Connection { get { return _connection; } set { _connection = value; } } ////// Gets or sets whether the IEntityCache.AcceptChanges should be called during a call to IEntityAdapter.Update. /// public bool AcceptChangesDuringUpdate { get { return this._acceptChangesDuringUpdate; } set { this._acceptChangesDuringUpdate = value; } } ////// Gets of sets the command timeout for update operations. If null, indicates that the default timeout /// for the provider should be used. /// Int32? IEntityAdapter.CommandTimeout { get { return this._commandTimeout; } set { this._commandTimeout = value; } } ////// Persist modifications described in the given cache. /// /// Entity cache containing changes to persist to the store. ///Number of cache entries affected by the udpate. public Int32 Update(IEntityStateManager entityCache) { EntityUtil.CheckArgumentNull(entityCache, "entityCache"); if (!IsStateManagerDirty(entityCache)) { return 0; } // Check that we have a connection before we proceed if (_connection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoConnectionForAdapter); } // Check that the store connection is available if (_connection.StoreProviderFactory == null || this._connection.StoreConnection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoStoreConnectionForUpdate); } // Check that the connection is open before we proceed if (ConnectionState.Open != _connection.State) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_ClosedConnectionForUpdate); } return UpdateTranslator.Update(entityCache, this); } ////// Determine whether the cache has changes to apply. /// /// ObjectStateManager to check. Must not be null. ///true if cache contains changes entries; false otherwise private static bool IsStateManagerDirty(IEntityStateManager entityCache) { Debug.Assert(null != entityCache); bool hasChanges = false; // this call to GetCacheEntries is constant time (the ObjectStateManager implementation // maintains an explicit list of entries in each state) foreach (ObjectStateEntry entry in entityCache.GetEntityStateEntries( EntityState.Added | EntityState.Deleted | EntityState.Modified)) { hasChanges = true; break; } return hasChanges; } } } // 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.Data.Mapping.Update.Internal; using System.Data.Objects; using System.Diagnostics; using System.Data.Mapping; namespace System.Data.EntityClient { ////// Class representing a data adapter for the conceptual layer /// internal sealed class EntityAdapter : IEntityAdapter { private bool _acceptChangesDuringUpdate = true; private EntityConnection _connection; private Int32? _commandTimeout; ////// Constructs the EntityAdapter object without a connection object /// public EntityAdapter() { } ////// Gets or sets the map connection used by this adapter. /// DbConnection IEntityAdapter.Connection { get { return this.Connection; } set { this.Connection = (EntityConnection)value; } } ////// Gets or sets the map connection used by this adapter. /// public EntityConnection Connection { get { return _connection; } set { _connection = value; } } ////// Gets or sets whether the IEntityCache.AcceptChanges should be called during a call to IEntityAdapter.Update. /// public bool AcceptChangesDuringUpdate { get { return this._acceptChangesDuringUpdate; } set { this._acceptChangesDuringUpdate = value; } } ////// Gets of sets the command timeout for update operations. If null, indicates that the default timeout /// for the provider should be used. /// Int32? IEntityAdapter.CommandTimeout { get { return this._commandTimeout; } set { this._commandTimeout = value; } } ////// Persist modifications described in the given cache. /// /// Entity cache containing changes to persist to the store. ///Number of cache entries affected by the udpate. public Int32 Update(IEntityStateManager entityCache) { EntityUtil.CheckArgumentNull(entityCache, "entityCache"); if (!IsStateManagerDirty(entityCache)) { return 0; } // Check that we have a connection before we proceed if (_connection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoConnectionForAdapter); } // Check that the store connection is available if (_connection.StoreProviderFactory == null || this._connection.StoreConnection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoStoreConnectionForUpdate); } // Check that the connection is open before we proceed if (ConnectionState.Open != _connection.State) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_ClosedConnectionForUpdate); } return UpdateTranslator.Update(entityCache, this); } ////// Determine whether the cache has changes to apply. /// /// ObjectStateManager to check. Must not be null. ///true if cache contains changes entries; false otherwise private static bool IsStateManagerDirty(IEntityStateManager entityCache) { Debug.Assert(null != entityCache); bool hasChanges = false; // this call to GetCacheEntries is constant time (the ObjectStateManager implementation // maintains an explicit list of entries in each state) foreach (ObjectStateEntry entry in entityCache.GetEntityStateEntries( EntityState.Added | EntityState.Deleted | EntityState.Modified)) { hasChanges = true; break; } return hasChanges; } } } // 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
- ContentPropertyAttribute.cs
- Adorner.cs
- DesignerTransactionCloseEvent.cs
- sortedlist.cs
- FileRegion.cs
- DrawingBrush.cs
- InheritablePropertyChangeInfo.cs
- CommandField.cs
- TextDecorationCollection.cs
- FrameworkTextComposition.cs
- XomlDesignerLoader.cs
- TraceContext.cs
- CodeDelegateCreateExpression.cs
- securitycriticaldataClass.cs
- ArrayList.cs
- TablePattern.cs
- ProcessStartInfo.cs
- UIElementIsland.cs
- IsolatedStoragePermission.cs
- ZipArchive.cs
- XmlILAnnotation.cs
- GlyphShapingProperties.cs
- TextElementCollection.cs
- StrokeCollectionConverter.cs
- MetadataSerializer.cs
- _NestedMultipleAsyncResult.cs
- PictureBoxDesigner.cs
- ModuleBuilder.cs
- DataSourceHelper.cs
- OAVariantLib.cs
- ArrangedElement.cs
- HtmlInputRadioButton.cs
- WebPartConnectionsDisconnectVerb.cs
- BeginStoryboard.cs
- LoadedOrUnloadedOperation.cs
- PaperSource.cs
- ReferencedType.cs
- ResXFileRef.cs
- SpeechSynthesizer.cs
- ManagementExtension.cs
- CodeCompiler.cs
- PopupRootAutomationPeer.cs
- ErrorRuntimeConfig.cs
- CustomError.cs
- InstanceContextManager.cs
- BrowserCapabilitiesCodeGenerator.cs
- StoreAnnotationsMap.cs
- DbQueryCommandTree.cs
- EventLogTraceListener.cs
- PartialArray.cs
- TraceListener.cs
- RegexMatch.cs
- ToolStripSeparatorRenderEventArgs.cs
- FilterFactory.cs
- BamlBinaryReader.cs
- CapabilitiesRule.cs
- JsonQNameDataContract.cs
- ScrollBar.cs
- SingleConverter.cs
- StyleSheet.cs
- SynthesizerStateChangedEventArgs.cs
- ProfileEventArgs.cs
- ConnectionManagementSection.cs
- DesignerForm.cs
- ListBindingHelper.cs
- PlacementWorkspace.cs
- TableCellAutomationPeer.cs
- DelegatingTypeDescriptionProvider.cs
- ServiceModelConfigurationSection.cs
- DeviceSpecificDialogCachedState.cs
- HttpGetClientProtocol.cs
- KeysConverter.cs
- UserNameSecurityTokenProvider.cs
- EditorPartChrome.cs
- HtmlInputCheckBox.cs
- ContainerParaClient.cs
- StylusOverProperty.cs
- EntityDataSourceViewSchema.cs
- EntityContainer.cs
- CalendarSelectionChangedEventArgs.cs
- TransformedBitmap.cs
- FileAuthorizationModule.cs
- InitializerFacet.cs
- _NativeSSPI.cs
- CacheVirtualItemsEvent.cs
- TokenBasedSetEnumerator.cs
- BmpBitmapEncoder.cs
- ControlBindingsCollection.cs
- WindowsAuthenticationEventArgs.cs
- OleDbParameter.cs
- FillBehavior.cs
- BezierSegment.cs
- FilteredAttributeCollection.cs
- ObjectDataSourceDisposingEventArgs.cs
- AppSettingsSection.cs
- ToolZone.cs
- MarginsConverter.cs
- MultiplexingDispatchMessageFormatter.cs
- DispatchWrapper.cs
- DateTimePicker.cs