Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Objects / ObjectStateEntryDbUpdatableDataRecord.cs / 2 / ObjectStateEntryDbUpdatableDataRecord.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.Metadata.Edm;
using System.Data.Objects;
using System.Diagnostics;
using System.Reflection;
namespace System.Data.Objects
{
internal sealed class ObjectStateEntryDbUpdatableDataRecord : CurrentValueRecord
{
internal ObjectStateEntryDbUpdatableDataRecord(ObjectStateEntry cacheEntry, StateManagerTypeMetadata metadata, object userObject)
: base(cacheEntry, metadata, userObject)
{
EntityUtil.CheckArgumentNull(cacheEntry, "cacheEntry");
EntityUtil.CheckArgumentNull(userObject, "userObject");
EntityUtil.CheckArgumentNull(metadata, "metadata");
Debug.Assert(!cacheEntry.IsKeyEntry, "Cannot create an ObjectStateEntryDbUpdatableDataRecord for a key entry");
switch (cacheEntry.State)
{
case EntityState.Unchanged:
case EntityState.Modified:
case EntityState.Added:
break;
default:
throw EntityUtil.CannotCreateObjectStateEntryDbUpdatableDataRecord();
}
}
internal ObjectStateEntryDbUpdatableDataRecord(ObjectStateEntry cacheEntry)
: base(cacheEntry)
{
EntityUtil.CheckArgumentNull(cacheEntry, "cacheEntry");
Debug.Assert(cacheEntry.IsRelationship, "Wrong ctor is called for entity");
Debug.Assert(!cacheEntry.IsKeyEntry, "Cannot create an ObjectStateEntryDbUpdatableDataRecord for a key entry");
switch (cacheEntry.State)
{
case EntityState.Unchanged:
case EntityState.Modified:
case EntityState.Added:
break;
default:
throw EntityUtil.CannotCreateObjectStateEntryDbUpdatableDataRecord();
}
}
protected override object GetRecordValue(int ordinal)
{
if (_cacheEntry.IsRelationship)
{
return _cacheEntry.GetCurrentRelationValue(ordinal);
}
else
{
return _cacheEntry.GetCurrentEntityValue(_metadata, ordinal, _userObject, ObjectStateValueRecord.CurrentUpdatable);
}
}
protected override void SetRecordValue(int ordinal, object value)
{
if (_cacheEntry.IsRelationship)
{
// Cannot modify relation values from the public API
throw EntityUtil.CantModifyRelationValues();
}
else
{
_cacheEntry.SetCurrentEntityValue(_metadata, ordinal, _userObject, value);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.Metadata.Edm;
using System.Data.Objects;
using System.Diagnostics;
using System.Reflection;
namespace System.Data.Objects
{
internal sealed class ObjectStateEntryDbUpdatableDataRecord : CurrentValueRecord
{
internal ObjectStateEntryDbUpdatableDataRecord(ObjectStateEntry cacheEntry, StateManagerTypeMetadata metadata, object userObject)
: base(cacheEntry, metadata, userObject)
{
EntityUtil.CheckArgumentNull(cacheEntry, "cacheEntry");
EntityUtil.CheckArgumentNull(userObject, "userObject");
EntityUtil.CheckArgumentNull(metadata, "metadata");
Debug.Assert(!cacheEntry.IsKeyEntry, "Cannot create an ObjectStateEntryDbUpdatableDataRecord for a key entry");
switch (cacheEntry.State)
{
case EntityState.Unchanged:
case EntityState.Modified:
case EntityState.Added:
break;
default:
throw EntityUtil.CannotCreateObjectStateEntryDbUpdatableDataRecord();
}
}
internal ObjectStateEntryDbUpdatableDataRecord(ObjectStateEntry cacheEntry)
: base(cacheEntry)
{
EntityUtil.CheckArgumentNull(cacheEntry, "cacheEntry");
Debug.Assert(cacheEntry.IsRelationship, "Wrong ctor is called for entity");
Debug.Assert(!cacheEntry.IsKeyEntry, "Cannot create an ObjectStateEntryDbUpdatableDataRecord for a key entry");
switch (cacheEntry.State)
{
case EntityState.Unchanged:
case EntityState.Modified:
case EntityState.Added:
break;
default:
throw EntityUtil.CannotCreateObjectStateEntryDbUpdatableDataRecord();
}
}
protected override object GetRecordValue(int ordinal)
{
if (_cacheEntry.IsRelationship)
{
return _cacheEntry.GetCurrentRelationValue(ordinal);
}
else
{
return _cacheEntry.GetCurrentEntityValue(_metadata, ordinal, _userObject, ObjectStateValueRecord.CurrentUpdatable);
}
}
protected override void SetRecordValue(int ordinal, object value)
{
if (_cacheEntry.IsRelationship)
{
// Cannot modify relation values from the public API
throw EntityUtil.CantModifyRelationValues();
}
else
{
_cacheEntry.SetCurrentEntityValue(_metadata, ordinal, _userObject, value);
}
}
}
}
// 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
- SerializationAttributes.cs
- StandardCommands.cs
- IDQuery.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- TransportConfigurationTypeElementCollection.cs
- CodeTypeMember.cs
- SelectionItemProviderWrapper.cs
- Stroke2.cs
- DbConnectionInternal.cs
- IndexerHelper.cs
- NumberFormatter.cs
- SymbolEqualComparer.cs
- RegexStringValidator.cs
- ListViewDesigner.cs
- PathFigure.cs
- HtmlInputButton.cs
- XmlUtil.cs
- HiddenFieldPageStatePersister.cs
- CalendarDay.cs
- InstancePersistenceCommandException.cs
- DataDocumentXPathNavigator.cs
- _DisconnectOverlappedAsyncResult.cs
- XmlDomTextWriter.cs
- _TransmitFileOverlappedAsyncResult.cs
- HttpRawResponse.cs
- PasswordPropertyTextAttribute.cs
- ParentUndoUnit.cs
- assertwrapper.cs
- TagMapCollection.cs
- MachineKeySection.cs
- DrawingAttributes.cs
- BitConverter.cs
- UdpReplyToBehavior.cs
- SqlServices.cs
- Pipe.cs
- PropertyTabChangedEvent.cs
- storagemappingitemcollection.viewdictionary.cs
- DoubleLinkListEnumerator.cs
- TreeNodeCollection.cs
- ParameterElement.cs
- BindingCompleteEventArgs.cs
- DSACryptoServiceProvider.cs
- VariableQuery.cs
- Cell.cs
- OpCodes.cs
- Activator.cs
- DefaultObjectMappingItemCollection.cs
- DtdParser.cs
- RecordConverter.cs
- DataGridViewCellCollection.cs
- BufferedStream.cs
- ImageMap.cs
- SystemFonts.cs
- ProfileEventArgs.cs
- Graph.cs
- TypeValidationEventArgs.cs
- RichTextBox.cs
- DataPager.cs
- CodeIndexerExpression.cs
- CryptoApi.cs
- SqlFileStream.cs
- ContextProperty.cs
- SubtreeProcessor.cs
- RouteParametersHelper.cs
- HelpEvent.cs
- StylusCollection.cs
- SrgsSemanticInterpretationTag.cs
- FragmentQueryProcessor.cs
- ContentElementAutomationPeer.cs
- WindowsToolbar.cs
- EnumBuilder.cs
- ToolBarButtonDesigner.cs
- ResumeStoryboard.cs
- BaseResourcesBuildProvider.cs
- SimpleLine.cs
- DeobfuscatingStream.cs
- Exceptions.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- BitmapEffectGeneralTransform.cs
- ImmutableAssemblyCacheEntry.cs
- BamlRecordWriter.cs
- AsyncCodeActivityContext.cs
- TraceInternal.cs
- RightsManagementEncryptionTransform.cs
- ExpressionEvaluator.cs
- PropertyMapper.cs
- XmlSchemaSimpleType.cs
- Accessible.cs
- ColorContextHelper.cs
- SqlCaseSimplifier.cs
- VirtualPath.cs
- ConfigurationLocation.cs
- UdpTransportBindingElement.cs
- KnowledgeBase.cs
- DnsPermission.cs
- Matrix3DConverter.cs
- IApplicationTrustManager.cs
- InternalTransaction.cs
- DesignerActionGlyph.cs
- MenuRendererClassic.cs