Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- ObjectStateManager.cs
- FaultReasonText.cs
- WeakReadOnlyCollection.cs
- KnowledgeBase.cs
- AssemblyName.cs
- DataGridViewLinkColumn.cs
- ExpressionConverter.cs
- _DynamicWinsockMethods.cs
- HttpCookiesSection.cs
- DataGridAutomationPeer.cs
- HwndKeyboardInputProvider.cs
- ReturnValue.cs
- XmlSchemaAttribute.cs
- XmlAttributeAttribute.cs
- InlineCollection.cs
- QueryTask.cs
- XmlFormatExtensionPointAttribute.cs
- CacheOutputQuery.cs
- WebBrowsableAttribute.cs
- RuleSettings.cs
- ExpressionBuilder.cs
- DataReaderContainer.cs
- DigestComparer.cs
- x509store.cs
- SessionEndedEventArgs.cs
- ThumbButtonInfo.cs
- SqlTriggerContext.cs
- LookupBindingPropertiesAttribute.cs
- ToolTip.cs
- TemplateKeyConverter.cs
- SingletonChannelAcceptor.cs
- SingleKeyFrameCollection.cs
- FacetChecker.cs
- WindowsTitleBar.cs
- ModelProperty.cs
- EditorZone.cs
- storepermission.cs
- EmptyEnumerator.cs
- FrugalMap.cs
- HandlerFactoryCache.cs
- HtmlMeta.cs
- ExceptQueryOperator.cs
- AnnotationAdorner.cs
- DbProviderFactoriesConfigurationHandler.cs
- panel.cs
- AttributeSetAction.cs
- AutoResetEvent.cs
- SourceCollection.cs
- CodeRemoveEventStatement.cs
- Win32SafeHandles.cs
- PriorityItem.cs
- AccessibleObject.cs
- JsonDataContract.cs
- URL.cs
- ForeignConstraint.cs
- WsatAdminException.cs
- QuotedPrintableStream.cs
- CopyCodeAction.cs
- Brush.cs
- InfoCardAsymmetricCrypto.cs
- ResourceDescriptionAttribute.cs
- QueryableDataSourceEditData.cs
- CustomCategoryAttribute.cs
- SecurityElement.cs
- XmlLanguage.cs
- PolicyManager.cs
- TraceContext.cs
- FontWeightConverter.cs
- EntityDataSourceDesigner.cs
- LoadedOrUnloadedOperation.cs
- EventLogEntryCollection.cs
- IdnMapping.cs
- MimeParameters.cs
- ToolStripScrollButton.cs
- ChannelFactory.cs
- DragDrop.cs
- WsatServiceAddress.cs
- GorillaCodec.cs
- NegatedCellConstant.cs
- ReadOnlyHierarchicalDataSource.cs
- RootDesignerSerializerAttribute.cs
- PeerInvitationResponse.cs
- SetterBase.cs
- PageContentCollection.cs
- sqlstateclientmanager.cs
- Win32Interop.cs
- RectAnimationUsingKeyFrames.cs
- ImageButton.cs
- SetterBaseCollection.cs
- PerfCounters.cs
- RuleSetDialog.Designer.cs
- ActivityStatusChangeEventArgs.cs
- JournalEntryStack.cs
- SqlFactory.cs
- XMLSyntaxException.cs
- DependencyPropertyConverter.cs
- complextypematerializer.cs
- ILGenerator.cs
- BitmapEffectState.cs
- XmlObjectSerializer.cs