Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 1 / EntityAdapter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- 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. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- 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
- NumberAction.cs
- FrameSecurityDescriptor.cs
- DecoderExceptionFallback.cs
- FigureHelper.cs
- FixedStringLookup.cs
- ResourceReferenceExpression.cs
- ConfigurationSection.cs
- DNS.cs
- Help.cs
- BamlTreeNode.cs
- StateRuntime.cs
- GenericUriParser.cs
- ExtensionSimplifierMarkupObject.cs
- ImageField.cs
- LogWriteRestartAreaAsyncResult.cs
- PageEventArgs.cs
- BitmapFrame.cs
- RawStylusInputCustomData.cs
- EdmRelationshipRoleAttribute.cs
- TypeTypeConverter.cs
- InstanceData.cs
- TrackBar.cs
- FileChangesMonitor.cs
- HiddenField.cs
- BitmapEffectDrawing.cs
- HideDisabledControlAdapter.cs
- MessageDroppedTraceRecord.cs
- CultureTableRecord.cs
- ScalarConstant.cs
- ArgumentsParser.cs
- CatalogPartCollection.cs
- LogicalTreeHelper.cs
- webeventbuffer.cs
- TypedAsyncResult.cs
- ReadWriteObjectLock.cs
- VirtualPathExtension.cs
- SizeIndependentAnimationStorage.cs
- CompoundFileIOPermission.cs
- DbMetaDataCollectionNames.cs
- IPEndPoint.cs
- NameValuePermission.cs
- CacheForPrimitiveTypes.cs
- EntityKey.cs
- CollectionViewSource.cs
- StdValidatorsAndConverters.cs
- GlobalItem.cs
- TextSelectionProcessor.cs
- BaseTemplateParser.cs
- XmlWellformedWriterHelpers.cs
- MetabaseSettingsIis7.cs
- BinHexDecoder.cs
- NonParentingControl.cs
- OneOfScalarConst.cs
- StretchValidation.cs
- BmpBitmapEncoder.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- COM2ExtendedTypeConverter.cs
- BuiltInPermissionSets.cs
- baseshape.cs
- EnvelopeVersion.cs
- Timeline.cs
- MethodBuilder.cs
- ApplicationManager.cs
- GlyphingCache.cs
- ExceptionValidationRule.cs
- HtmlInputImage.cs
- ResourceType.cs
- ObjectContextServiceProvider.cs
- HwndSourceKeyboardInputSite.cs
- UdpSocket.cs
- webbrowsersite.cs
- FixedSOMGroup.cs
- GPRECTF.cs
- ProfileElement.cs
- StringWriter.cs
- Image.cs
- EntityStoreSchemaFilterEntry.cs
- ValidatingPropertiesEventArgs.cs
- Int32EqualityComparer.cs
- UrlAuthorizationModule.cs
- CoTaskMemSafeHandle.cs
- TemplatedWizardStep.cs
- EmptyImpersonationContext.cs
- RuleSetDialog.Designer.cs
- WebPartTransformer.cs
- PaginationProgressEventArgs.cs
- iisPickupDirectory.cs
- ListViewCommandEventArgs.cs
- XamlReader.cs
- ReflectionUtil.cs
- DbException.cs
- CompensatableTransactionScopeActivity.cs
- Nodes.cs
- BitConverter.cs
- Int16Converter.cs
- BitArray.cs
- TextEndOfLine.cs
- XmlSchemaAnyAttribute.cs
- ArrayTypeMismatchException.cs
- RadioButton.cs