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
- ListControlDesigner.cs
- TreeNodeCollection.cs
- OleDbWrapper.cs
- BeginEvent.cs
- SplitterPanel.cs
- HandleCollector.cs
- LinkButton.cs
- BindingMAnagerBase.cs
- WizardStepBase.cs
- HyperLinkDataBindingHandler.cs
- ConnectionPoolManager.cs
- XmlWriter.cs
- TextTreeObjectNode.cs
- ICspAsymmetricAlgorithm.cs
- UdpChannelFactory.cs
- SiteMapPath.cs
- ToolbarAUtomationPeer.cs
- FormParameter.cs
- StrokeNodeOperations.cs
- TransactionProxy.cs
- TriState.cs
- XmlUnspecifiedAttribute.cs
- PropertyInfoSet.cs
- EntityDataSourceEntityTypeFilterItem.cs
- VarRefManager.cs
- FastPropertyAccessor.cs
- CompatibleComparer.cs
- HttpCacheVaryByContentEncodings.cs
- OdbcError.cs
- DataServiceResponse.cs
- DirectoryRedirect.cs
- ObjectAnimationUsingKeyFrames.cs
- EntityDataReader.cs
- XmlMtomWriter.cs
- SharedPersonalizationStateInfo.cs
- ScrollChrome.cs
- Panel.cs
- DataContext.cs
- InputProcessorProfilesLoader.cs
- DataTableMapping.cs
- PerfCounterSection.cs
- GenerateTemporaryTargetAssembly.cs
- XmlTextWriter.cs
- ServiceModelPerformanceCounters.cs
- RuleInfoComparer.cs
- BitmapPalette.cs
- Soap.cs
- XpsResourcePolicy.cs
- FederatedMessageSecurityOverHttpElement.cs
- CodeObjectCreateExpression.cs
- PathFigureCollectionValueSerializer.cs
- RtfNavigator.cs
- RadioButtonRenderer.cs
- PolyLineSegment.cs
- InvokeMethodActivity.cs
- SortedList.cs
- WebPartConnectionsCloseVerb.cs
- XmlRawWriter.cs
- SrgsText.cs
- ViewgenContext.cs
- SessionEndingEventArgs.cs
- DataGridViewCellValueEventArgs.cs
- ModelService.cs
- GlobalizationAssembly.cs
- PartialList.cs
- BamlResourceDeserializer.cs
- AspNetHostingPermission.cs
- MasterPageBuildProvider.cs
- XmlSchemaComplexContentExtension.cs
- DoneReceivingAsyncResult.cs
- HttpCookiesSection.cs
- WindowsContainer.cs
- securitycriticaldataClass.cs
- XPathAncestorIterator.cs
- XmlSchemaAttributeGroupRef.cs
- ToolStripHighContrastRenderer.cs
- MultiPropertyDescriptorGridEntry.cs
- RecognizedWordUnit.cs
- DataTable.cs
- Transactions.cs
- Inflater.cs
- PageRequestManager.cs
- DataGridViewRowsAddedEventArgs.cs
- HtmlInputControl.cs
- XmlIlVisitor.cs
- Rect3DValueSerializer.cs
- WindowsHyperlink.cs
- AuthenticationConfig.cs
- Transform.cs
- Point3DKeyFrameCollection.cs
- TextServicesPropertyRanges.cs
- SiteMapDataSourceView.cs
- DataBoundControlActionList.cs
- exports.cs
- TokenFactoryCredential.cs
- XmlSchemaObject.cs
- HtmlShim.cs
- BaseParagraph.cs
- MemoryPressure.cs
- ThemeDirectoryCompiler.cs