Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Common / EntityRecordInfo.cs / 2 / EntityRecordInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.Common { using System.Data; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Diagnostics; ////// EntityRecordInfo class providing a simple way to access both the type information and the column information. /// public class EntityRecordInfo : DataRecordInfo { private readonly EntityKey _entityKey; private readonly EntitySet _entitySet; ////// /// /// /// /// public EntityRecordInfo(EntityType metadata, IEnumerablememberInfo, EntityKey entityKey, EntitySet entitySet) : base(TypeUsage.Create(metadata), memberInfo) { EntityUtil.CheckArgumentNull (entityKey, "entityKey"); EntityUtil.CheckArgumentNull(entitySet, "entitySet"); _entityKey = entityKey; _entitySet = entitySet; ValidateEntityType(entitySet); } /// /// /// /// /// internal EntityRecordInfo(EntityType metadata, EntityKey entityKey, EntitySet entitySet) : base(TypeUsage.Create(metadata)) { EntityUtil.CheckArgumentNull(entityKey, "entityKey"); _entityKey = entityKey; _entitySet = entitySet; #if DEBUG try { ValidateEntityType(entitySet); } catch { Debug.Assert(false, "should always be valid EntityType when internally constructed"); throw; } #endif } /// /// Reusing TypeUsage and FieldMetadata from another EntityRecordInfo which has all the same info /// but with a different EntityKey instance. /// internal EntityRecordInfo(DataRecordInfo info, EntityKey entityKey, EntitySet entitySet) : base(info) { _entityKey = entityKey; _entitySet = entitySet; #if DEBUG try { ValidateEntityType(entitySet); } catch { Debug.Assert(false, "should always be valid EntityType when internally constructed"); throw; } #endif } ////// the EntityKey /// public EntityKey EntityKey { get { return _entityKey; } } // using EntitySetBase versus EntitySet prevents the unnecessary cast of ElementType to EntityType private void ValidateEntityType(EntitySetBase entitySet) { if (!object.ReferenceEquals(RecordType.EdmType, null) && !object.ReferenceEquals(_entityKey, EntityKey.EntityNotValidKey) && !object.ReferenceEquals(_entityKey, EntityKey.NoEntitySetKey) && !object.ReferenceEquals(RecordType.EdmType, entitySet.ElementType) && !entitySet.ElementType.IsBaseTypeOf(RecordType.EdmType)) { throw EntityUtil.Argument(System.Data.Entity.Strings.EntityTypesDoNotAgree); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.Common { using System.Data; using System.Collections.Generic; using System.Data.Metadata.Edm; using System.Diagnostics; ////// EntityRecordInfo class providing a simple way to access both the type information and the column information. /// public class EntityRecordInfo : DataRecordInfo { private readonly EntityKey _entityKey; private readonly EntitySet _entitySet; ////// /// /// /// /// public EntityRecordInfo(EntityType metadata, IEnumerablememberInfo, EntityKey entityKey, EntitySet entitySet) : base(TypeUsage.Create(metadata), memberInfo) { EntityUtil.CheckArgumentNull (entityKey, "entityKey"); EntityUtil.CheckArgumentNull(entitySet, "entitySet"); _entityKey = entityKey; _entitySet = entitySet; ValidateEntityType(entitySet); } /// /// /// /// /// internal EntityRecordInfo(EntityType metadata, EntityKey entityKey, EntitySet entitySet) : base(TypeUsage.Create(metadata)) { EntityUtil.CheckArgumentNull(entityKey, "entityKey"); _entityKey = entityKey; _entitySet = entitySet; #if DEBUG try { ValidateEntityType(entitySet); } catch { Debug.Assert(false, "should always be valid EntityType when internally constructed"); throw; } #endif } /// /// Reusing TypeUsage and FieldMetadata from another EntityRecordInfo which has all the same info /// but with a different EntityKey instance. /// internal EntityRecordInfo(DataRecordInfo info, EntityKey entityKey, EntitySet entitySet) : base(info) { _entityKey = entityKey; _entitySet = entitySet; #if DEBUG try { ValidateEntityType(entitySet); } catch { Debug.Assert(false, "should always be valid EntityType when internally constructed"); throw; } #endif } ////// the EntityKey /// public EntityKey EntityKey { get { return _entityKey; } } // using EntitySetBase versus EntitySet prevents the unnecessary cast of ElementType to EntityType private void ValidateEntityType(EntitySetBase entitySet) { if (!object.ReferenceEquals(RecordType.EdmType, null) && !object.ReferenceEquals(_entityKey, EntityKey.EntityNotValidKey) && !object.ReferenceEquals(_entityKey, EntityKey.NoEntitySetKey) && !object.ReferenceEquals(RecordType.EdmType, entitySet.ElementType) && !entitySet.ElementType.IsBaseTypeOf(RecordType.EdmType)) { throw EntityUtil.Argument(System.Data.Entity.Strings.EntityTypesDoNotAgree); } } } } // 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
- ReturnValue.cs
- PermissionRequestEvidence.cs
- ViewGenerator.cs
- GestureRecognitionResult.cs
- ObjectStateEntryDbDataRecord.cs
- TextElementCollectionHelper.cs
- FileSystemEventArgs.cs
- ViewBox.cs
- SystemInformation.cs
- DES.cs
- SymDocumentType.cs
- NavigationEventArgs.cs
- BoundingRectTracker.cs
- HtmlElementEventArgs.cs
- ToolStripRenderEventArgs.cs
- NetStream.cs
- SchemaElementLookUpTable.cs
- RowTypeElement.cs
- RectConverter.cs
- ClassHandlersStore.cs
- Token.cs
- WSHttpBindingCollectionElement.cs
- HtmlEncodedRawTextWriter.cs
- PKCS1MaskGenerationMethod.cs
- NotifyInputEventArgs.cs
- WsatTransactionHeader.cs
- Grant.cs
- FlowDocumentFormatter.cs
- MexNamedPipeBindingElement.cs
- EraserBehavior.cs
- infer.cs
- OutputCacheProfileCollection.cs
- WarningException.cs
- ServicePerformanceCounters.cs
- SqlGatherProducedAliases.cs
- JsonReader.cs
- ScrollItemProviderWrapper.cs
- WebUtil.cs
- HwndMouseInputProvider.cs
- ByteStreamGeometryContext.cs
- EncryptedKey.cs
- MatrixKeyFrameCollection.cs
- ParallelSeparator.xaml.cs
- ErrorsHelper.cs
- GuidelineCollection.cs
- HtmlInputCheckBox.cs
- _UncName.cs
- HttpBindingExtension.cs
- HostExecutionContextManager.cs
- XPathDocumentBuilder.cs
- WebControlToolBoxItem.cs
- IntellisenseTextBox.designer.cs
- ValidatingCollection.cs
- SystemResourceKey.cs
- BooleanToVisibilityConverter.cs
- CodeCompiler.cs
- COM2PropertyPageUITypeConverter.cs
- StrongNameSignatureInformation.cs
- VirtualPathUtility.cs
- DataObject.cs
- DesignerAutoFormat.cs
- ListSurrogate.cs
- QuaternionKeyFrameCollection.cs
- ImageList.cs
- DataMemberAttribute.cs
- ProfileService.cs
- BamlBinaryWriter.cs
- PathGeometry.cs
- XmlDictionaryReaderQuotasElement.cs
- FlowDocument.cs
- LinkLabel.cs
- AnnotationResourceCollection.cs
- ControlTemplate.cs
- FontWeightConverter.cs
- MultipleViewProviderWrapper.cs
- ToggleButtonAutomationPeer.cs
- WebBrowserNavigatedEventHandler.cs
- SqlWebEventProvider.cs
- EncryptedReference.cs
- TextFormatterContext.cs
- TaskCanceledException.cs
- PointConverter.cs
- AttributeXamlType.cs
- DbTransaction.cs
- Font.cs
- CorrelationManager.cs
- RuntimeArgumentHandle.cs
- HttpCachePolicyWrapper.cs
- EntityDataSourceStatementEditor.cs
- GlobalAclOperationRequirement.cs
- PermissionSetEnumerator.cs
- CommonGetThemePartSize.cs
- AsymmetricKeyExchangeDeformatter.cs
- WizardPanelChangingEventArgs.cs
- Brush.cs
- OlePropertyStructs.cs
- Pair.cs
- FieldNameLookup.cs
- RealizationContext.cs
- infer.cs