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
- Fonts.cs
- DupHandleConnectionReader.cs
- odbcmetadatacolumnnames.cs
- CalendarDateRange.cs
- StrokeNodeOperations.cs
- StringReader.cs
- ConnectionPoint.cs
- HyperLinkDesigner.cs
- ObjectListField.cs
- Nullable.cs
- DeferredElementTreeState.cs
- StateMachineExecutionState.cs
- StickyNoteHelper.cs
- ToolStripDropDownDesigner.cs
- ISFTagAndGuidCache.cs
- CustomAssemblyResolver.cs
- FullTextBreakpoint.cs
- XmlMemberMapping.cs
- FixedFlowMap.cs
- ListViewItemEventArgs.cs
- ApplicationManager.cs
- SQlBooleanStorage.cs
- BehaviorEditorPart.cs
- Rule.cs
- DragDrop.cs
- EventlogProvider.cs
- Int32CAMarshaler.cs
- PrintDocument.cs
- Int64KeyFrameCollection.cs
- ModelItemDictionaryImpl.cs
- SingleResultAttribute.cs
- PermissionSetTriple.cs
- CharacterString.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- HtmlTableCell.cs
- ValidationService.cs
- HelpKeywordAttribute.cs
- HtmlMeta.cs
- ConditionCollection.cs
- IndexerNameAttribute.cs
- WebPartTransformerAttribute.cs
- SelectionRange.cs
- RelationshipEndMember.cs
- UriParserTemplates.cs
- InputBuffer.cs
- Byte.cs
- COMException.cs
- ListBox.cs
- ITextView.cs
- WorkerRequest.cs
- XmlMemberMapping.cs
- DtdParser.cs
- Freezable.cs
- SettingsAttributeDictionary.cs
- SQLByteStorage.cs
- DomainConstraint.cs
- OutArgument.cs
- WebServiceTypeData.cs
- ConfigXmlCDataSection.cs
- PrePostDescendentsWalker.cs
- DeploymentSectionCache.cs
- DetailsViewInsertedEventArgs.cs
- HttpCapabilitiesSectionHandler.cs
- EventDescriptorCollection.cs
- ListViewGroupItemCollection.cs
- SourceFilter.cs
- SqlSelectStatement.cs
- QueryInterceptorAttribute.cs
- ToolBarButtonClickEvent.cs
- DataGrid.cs
- MarshalDirectiveException.cs
- IDReferencePropertyAttribute.cs
- UnsignedPublishLicense.cs
- XmlSchemaAnnotation.cs
- SafeIUnknown.cs
- BinaryMessageEncodingBindingElement.cs
- MailWebEventProvider.cs
- UInt32.cs
- HMACSHA384.cs
- HitTestWithPointDrawingContextWalker.cs
- EntityConnectionStringBuilderItem.cs
- Floater.cs
- OutputCacheSection.cs
- DockEditor.cs
- BinaryReader.cs
- WindowsHyperlink.cs
- WebPartConnectionsCancelVerb.cs
- ObjectList.cs
- HMACRIPEMD160.cs
- AutoResizedEvent.cs
- MachineKeySection.cs
- QilLoop.cs
- UserMapPath.cs
- RijndaelManagedTransform.cs
- GridViewCancelEditEventArgs.cs
- OutputWindow.cs
- TextAdaptor.cs
- HttpUnhandledOperationInvoker.cs
- BrowserCapabilitiesFactoryBase.cs
- MouseActionConverter.cs