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
- PerformanceCounterLib.cs
- ClonableStack.cs
- FusionWrap.cs
- TextRangeEdit.cs
- TextElementEnumerator.cs
- CalendarDataBindingHandler.cs
- Assert.cs
- CheckBoxList.cs
- EmptyImpersonationContext.cs
- Base64Stream.cs
- ThreadInterruptedException.cs
- SetIterators.cs
- TraceSource.cs
- EntityDataSourceView.cs
- SchemaNotation.cs
- HttpApplicationFactory.cs
- Tablet.cs
- CodeSnippetExpression.cs
- SharedStatics.cs
- EntityRecordInfo.cs
- RequestUriProcessor.cs
- storepermissionattribute.cs
- RequestCachePolicy.cs
- LogStore.cs
- TextControlDesigner.cs
- EncoderParameter.cs
- Function.cs
- InvokeProviderWrapper.cs
- regiisutil.cs
- BackgroundFormatInfo.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- FormatterServicesNoSerializableCheck.cs
- EntityDataSourceWrapperCollection.cs
- ByteStorage.cs
- TextBoxBase.cs
- FindRequestContext.cs
- RegionIterator.cs
- FormsAuthenticationUserCollection.cs
- SqlStream.cs
- CalendarSelectionChangedEventArgs.cs
- SettingsPropertyValueCollection.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- AssemblyBuilder.cs
- StyleBamlRecordReader.cs
- GPPOINTF.cs
- EpmCustomContentSerializer.cs
- QilStrConcatenator.cs
- Validator.cs
- StickyNote.cs
- RemotingClientProxy.cs
- TransformConverter.cs
- EntityDataSourceStatementEditorForm.cs
- XmlSerializerVersionAttribute.cs
- DataGridViewIntLinkedList.cs
- PipelineDeploymentState.cs
- RawContentTypeMapper.cs
- ReadOnlyDataSource.cs
- VirtualPathExtension.cs
- DesignerDataParameter.cs
- ScaleTransform.cs
- SemanticResultKey.cs
- QueryInterceptorAttribute.cs
- SecureStringHasher.cs
- NamespaceDisplay.xaml.cs
- ContractListAdapter.cs
- EmbeddedMailObjectsCollection.cs
- LifetimeServices.cs
- ConsumerConnectionPointCollection.cs
- SettingsBase.cs
- SettingsBase.cs
- FileSystemWatcher.cs
- UnsettableComboBox.cs
- XmlNotation.cs
- StorageMappingItemLoader.cs
- BufferedWebEventProvider.cs
- XPathParser.cs
- ValueSerializer.cs
- SafeHandles.cs
- DeploymentSectionCache.cs
- XmlText.cs
- RenderDataDrawingContext.cs
- PassportIdentity.cs
- XmlRawWriter.cs
- CollectionViewSource.cs
- LogWriteRestartAreaAsyncResult.cs
- ReadOnlyHierarchicalDataSourceView.cs
- arc.cs
- RowVisual.cs
- ControlCachePolicy.cs
- Menu.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SetIndexBinder.cs
- ExpressionBinding.cs
- XmlTypeAttribute.cs
- Delegate.cs
- BuildManager.cs
- CompareInfo.cs
- dbenumerator.cs
- InlineObject.cs
- SqlConnection.cs