Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / EntityRecordInfo.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Choices.cs
- ListControl.cs
- ScrollBarAutomationPeer.cs
- ColumnBinding.cs
- XmlSchemaGroup.cs
- SecurityDocument.cs
- InheritanceUI.cs
- InOutArgumentConverter.cs
- QualifiedCellIdBoolean.cs
- WindowInteractionStateTracker.cs
- CodeAttributeDeclarationCollection.cs
- BuiltInExpr.cs
- HttpRequestTraceRecord.cs
- OdbcInfoMessageEvent.cs
- WindowsListViewGroupHelper.cs
- CheckBoxAutomationPeer.cs
- _ContextAwareResult.cs
- DataGridViewCellCollection.cs
- MouseGesture.cs
- DynamicResourceExtension.cs
- ApplicationDirectoryMembershipCondition.cs
- EditBehavior.cs
- ThreadInterruptedException.cs
- VoiceSynthesis.cs
- Point4D.cs
- MsdtcWrapper.cs
- RenamedEventArgs.cs
- MouseEvent.cs
- InfiniteTimeSpanConverter.cs
- CngAlgorithm.cs
- HierarchicalDataSourceControl.cs
- Geometry3D.cs
- Int32RectConverter.cs
- DelayLoadType.cs
- LineServicesCallbacks.cs
- GenericTextProperties.cs
- AppDomainGrammarProxy.cs
- DesignerVerbCollection.cs
- _SafeNetHandles.cs
- CommandEventArgs.cs
- BuilderPropertyEntry.cs
- DataControlFieldHeaderCell.cs
- TypeSemantics.cs
- TextEffectResolver.cs
- CompressedStack.cs
- DuplexClientBase.cs
- List.cs
- ImpersonateTokenRef.cs
- StrongTypingException.cs
- DoubleLink.cs
- RecordManager.cs
- TemplateLookupAction.cs
- RtfControls.cs
- XmlRootAttribute.cs
- FlagsAttribute.cs
- IteratorDescriptor.cs
- Simplifier.cs
- RichTextBoxAutomationPeer.cs
- InkCanvas.cs
- ACL.cs
- Predicate.cs
- GridViewUpdateEventArgs.cs
- EntityAdapter.cs
- AppDomainInfo.cs
- OpenTypeLayout.cs
- RequestCachingSection.cs
- CertificateManager.cs
- QueryTask.cs
- DictionaryBase.cs
- ApplicationContext.cs
- UserControl.cs
- AnimationClockResource.cs
- PenLineJoinValidation.cs
- ValidationErrorCollection.cs
- ObfuscationAttribute.cs
- GeneratedCodeAttribute.cs
- BreakRecordTable.cs
- BehaviorEditorPart.cs
- NonClientArea.cs
- SyndicationSerializer.cs
- MSHTMLHost.cs
- XsltLibrary.cs
- ListViewItemEventArgs.cs
- PassportAuthenticationEventArgs.cs
- WebPartsPersonalizationAuthorization.cs
- DataGridHeaderBorder.cs
- ProfileSection.cs
- LineVisual.cs
- ImageSource.cs
- SynchronizedRandom.cs
- ClientUriBehavior.cs
- SafeNativeMethods.cs
- BaseValidator.cs
- WsatAdminException.cs
- DNS.cs
- EventLogPermissionEntry.cs
- RemotingSurrogateSelector.cs
- LoginView.cs
- TabRenderer.cs
- FontNameConverter.cs