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
- Activity.cs
- ReaderWriterLock.cs
- HttpListenerContext.cs
- UncommonField.cs
- EntityClientCacheEntry.cs
- DescendantQuery.cs
- ContentElement.cs
- DataGridViewCellParsingEventArgs.cs
- SchemaContext.cs
- CodeConditionStatement.cs
- BitHelper.cs
- WebConfigurationManager.cs
- XmlKeywords.cs
- ConditionalAttribute.cs
- EditorAttribute.cs
- ClientEndpointLoader.cs
- InternalControlCollection.cs
- ToolStripContainer.cs
- TextEditorCharacters.cs
- EntitySetBase.cs
- ReadOnlyCollectionBase.cs
- ExpressionEditorAttribute.cs
- BoolExpr.cs
- EntityClientCacheEntry.cs
- BindingCompleteEventArgs.cs
- BaseResourcesBuildProvider.cs
- ErrorLog.cs
- RegisteredDisposeScript.cs
- HtmlValidationSummaryAdapter.cs
- MultipleViewPattern.cs
- ParsedAttributeCollection.cs
- XomlCompilerParameters.cs
- ObjectConverter.cs
- CommandBinding.cs
- OdbcConnectionHandle.cs
- SmtpNtlmAuthenticationModule.cs
- DrawingContextDrawingContextWalker.cs
- ListGeneralPage.cs
- SoapSchemaExporter.cs
- MembershipValidatePasswordEventArgs.cs
- OperationInvokerTrace.cs
- RegexInterpreter.cs
- UIntPtr.cs
- FactoryGenerator.cs
- BindingBase.cs
- IDReferencePropertyAttribute.cs
- MarshalByValueComponent.cs
- AmbientLight.cs
- GridItemProviderWrapper.cs
- DataListItemCollection.cs
- compensatingcollection.cs
- RunClient.cs
- BitmapData.cs
- SectionRecord.cs
- DataObject.cs
- SolidColorBrush.cs
- InputLanguage.cs
- DataSourceSelectArguments.cs
- ItemList.cs
- SaveFileDialog.cs
- _HelperAsyncResults.cs
- NonParentingControl.cs
- PropertyDescriptorGridEntry.cs
- Token.cs
- CodeLinePragma.cs
- BinaryParser.cs
- TextElement.cs
- Publisher.cs
- DtdParser.cs
- cookiecontainer.cs
- ThemeDictionaryExtension.cs
- DisplayNameAttribute.cs
- DiagnosticsConfiguration.cs
- SynthesizerStateChangedEventArgs.cs
- DescendantBaseQuery.cs
- DateTimeValueSerializerContext.cs
- ComponentGuaranteesAttribute.cs
- GridItemCollection.cs
- Keyboard.cs
- PartitionResolver.cs
- XComponentModel.cs
- IISUnsafeMethods.cs
- Size3DValueSerializer.cs
- UshortList2.cs
- RuntimeConfig.cs
- CustomAssemblyResolver.cs
- XsltArgumentList.cs
- WindowsTokenRoleProvider.cs
- VectorValueSerializer.cs
- TrackingAnnotationCollection.cs
- ClockController.cs
- MetadataProperty.cs
- precedingquery.cs
- XmlSchemaCollection.cs
- RecordConverter.cs
- FloatUtil.cs
- ObjectContextServiceProvider.cs
- RegexInterpreter.cs
- EtwProvider.cs
- DataObjectAttribute.cs