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
- X509ServiceCertificateAuthenticationElement.cs
- SeverityFilter.cs
- InvalidBodyAccessException.cs
- oledbconnectionstring.cs
- OLEDB_Util.cs
- WsatServiceCertificate.cs
- TemplatedAdorner.cs
- ElementAction.cs
- DataExchangeServiceBinder.cs
- TranslateTransform3D.cs
- TrailingSpaceComparer.cs
- DesignerAttribute.cs
- DocumentViewerHelper.cs
- XmlChoiceIdentifierAttribute.cs
- NullableFloatMinMaxAggregationOperator.cs
- TextElementCollection.cs
- ByteAnimation.cs
- CacheChildrenQuery.cs
- DetailsViewInsertedEventArgs.cs
- _ConnectOverlappedAsyncResult.cs
- TreeNode.cs
- TextChangedEventArgs.cs
- ManipulationDeltaEventArgs.cs
- GradientStopCollection.cs
- AutoScrollHelper.cs
- LayoutTable.cs
- LineServicesRun.cs
- XamlWriter.cs
- ModuleBuilderData.cs
- FormParameter.cs
- ExtenderControl.cs
- StorageMappingItemCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- BrowserTree.cs
- WebPartConnectVerb.cs
- ErrorTableItemStyle.cs
- PropertyMappingExceptionEventArgs.cs
- XPathNode.cs
- HealthMonitoringSection.cs
- UIElement.cs
- IndentTextWriter.cs
- PageParserFilter.cs
- ParameterRetriever.cs
- HttpStreamXmlDictionaryReader.cs
- ControlIdConverter.cs
- recordstatefactory.cs
- TdsParserStaticMethods.cs
- TypeSystem.cs
- TableCell.cs
- Point3DKeyFrameCollection.cs
- UIHelper.cs
- CharacterString.cs
- Calendar.cs
- ImageSource.cs
- DefaultCommandConverter.cs
- PhysicalFontFamily.cs
- Point3DKeyFrameCollection.cs
- CrossAppDomainChannel.cs
- ListMarkerLine.cs
- XmlUtf8RawTextWriter.cs
- SerializationEventsCache.cs
- DbUpdateCommandTree.cs
- PageStatePersister.cs
- SaveWorkflowAsyncResult.cs
- Message.cs
- MetadataCacheItem.cs
- FederatedMessageSecurityOverHttp.cs
- XmlSchemaSimpleContentRestriction.cs
- EntityTemplateFactory.cs
- XamlTemplateSerializer.cs
- HtmlInputReset.cs
- StringConverter.cs
- PeerEndPoint.cs
- HitTestParameters.cs
- TcpChannelFactory.cs
- BufferBuilder.cs
- DbMetaDataCollectionNames.cs
- ProcessHostFactoryHelper.cs
- WindowsEditBoxRange.cs
- CompoundFileReference.cs
- LassoSelectionBehavior.cs
- TableCell.cs
- ToolStripMenuItem.cs
- SQLStringStorage.cs
- TemplateKeyConverter.cs
- ProviderManager.cs
- PreviewPrintController.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- EncryptedKey.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ListViewItem.cs
- SqlInternalConnection.cs
- StringExpressionSet.cs
- Serializer.cs
- LinqToSqlWrapper.cs
- AttributeCollection.cs
- CaseExpr.cs
- OneOfTypeConst.cs
- ProcessHostServerConfig.cs
- SchemaDeclBase.cs