Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 1305376 / EntityAdapter.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.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
- XMLSchema.cs
- ToolStripItemRenderEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- SizeValueSerializer.cs
- ConfigurationHandlersInstallComponent.cs
- ChtmlMobileTextWriter.cs
- IntersectQueryOperator.cs
- CopyAttributesAction.cs
- MethodBuilder.cs
- ISAPIApplicationHost.cs
- MimeTextImporter.cs
- XmlToDatasetMap.cs
- PointCollection.cs
- StandardOleMarshalObject.cs
- NameTable.cs
- VectorKeyFrameCollection.cs
- HttpProtocolImporter.cs
- StorageRoot.cs
- TransportContext.cs
- ImportContext.cs
- XmlFormatExtensionAttribute.cs
- MetadataArtifactLoaderCompositeResource.cs
- PagedControl.cs
- SourceChangedEventArgs.cs
- BaseValidator.cs
- Grid.cs
- ITreeGenerator.cs
- DependencyPropertyValueSerializer.cs
- PeerReferralPolicy.cs
- DirectoryNotFoundException.cs
- dataobject.cs
- ManagedFilter.cs
- XmlSchemaSimpleTypeList.cs
- CacheChildrenQuery.cs
- coordinatorscratchpad.cs
- Tokenizer.cs
- EncoderParameters.cs
- DeviceFilterDictionary.cs
- ElementUtil.cs
- ApplicationSecurityInfo.cs
- FormatterServices.cs
- SplineKeyFrames.cs
- LookupNode.cs
- ForwardPositionQuery.cs
- TraceProvider.cs
- ScriptResourceDefinition.cs
- RequestCachePolicy.cs
- SrgsSubset.cs
- LocalizationParserHooks.cs
- Math.cs
- DropDownButton.cs
- NamespaceList.cs
- DebugControllerThread.cs
- XmlSchemaSubstitutionGroup.cs
- ThicknessAnimationBase.cs
- XmlDataImplementation.cs
- RectangleHotSpot.cs
- AttachmentService.cs
- DesignBindingEditor.cs
- DocumentViewerBaseAutomationPeer.cs
- PasswordBox.cs
- WindowClosedEventArgs.cs
- OleDbParameterCollection.cs
- XmlILIndex.cs
- SQLBytesStorage.cs
- CodeLabeledStatement.cs
- elementinformation.cs
- WorkflowViewManager.cs
- WinEventWrap.cs
- RootBrowserWindowProxy.cs
- OciHandle.cs
- BasicHttpMessageCredentialType.cs
- RectangleGeometry.cs
- StringAnimationBase.cs
- Dispatcher.cs
- StickyNote.cs
- BamlLocalizableResourceKey.cs
- CryptoConfig.cs
- XmlILTrace.cs
- UriScheme.cs
- ClientScriptManager.cs
- PenContexts.cs
- TagElement.cs
- DbConnectionFactory.cs
- SqlDataRecord.cs
- ParentUndoUnit.cs
- ToolStripGripRenderEventArgs.cs
- SHA384.cs
- LayoutTableCell.cs
- DataGridCommandEventArgs.cs
- HostedAspNetEnvironment.cs
- BmpBitmapDecoder.cs
- SafeNativeMethodsCLR.cs
- XamlParser.cs
- SR.cs
- XmlMemberMapping.cs
- ModelItemDictionary.cs
- GlyphingCache.cs
- StreamGeometry.cs
- Events.cs