Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Common / EntityRecordInfo.cs / 1 / 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
- XmlArrayItemAttribute.cs
- CryptoHelper.cs
- SiteOfOriginPart.cs
- PassportAuthentication.cs
- ToolBarButton.cs
- _UriTypeConverter.cs
- FileUpload.cs
- InvalidPrinterException.cs
- HTMLTagNameToTypeMapper.cs
- FunctionUpdateCommand.cs
- StackOverflowException.cs
- BindableAttribute.cs
- InputLangChangeEvent.cs
- _UncName.cs
- TdsParserSafeHandles.cs
- XMLSyntaxException.cs
- XmlSchemaAll.cs
- AssemblyCache.cs
- MediaPlayer.cs
- OuterProxyWrapper.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- WindowsSolidBrush.cs
- TagPrefixAttribute.cs
- DynamicDataResources.Designer.cs
- SaveCardRequest.cs
- DataGridViewCellStateChangedEventArgs.cs
- XpsDocumentEvent.cs
- MimeBasePart.cs
- EventMetadata.cs
- XmlDataLoader.cs
- Control.cs
- ITreeGenerator.cs
- Compensation.cs
- HyperLinkColumn.cs
- MD5.cs
- ProxyWebPartManager.cs
- LayoutUtils.cs
- FtpWebResponse.cs
- Array.cs
- XmlQueryCardinality.cs
- TextProperties.cs
- MULTI_QI.cs
- PackagePartCollection.cs
- BulletDecorator.cs
- _SecureChannel.cs
- OpCodes.cs
- SimpleBitVector32.cs
- StylusDownEventArgs.cs
- OracleRowUpdatedEventArgs.cs
- DriveNotFoundException.cs
- MetadataProperty.cs
- StylusPoint.cs
- XmlSchemaGroupRef.cs
- ExpressionContext.cs
- Frame.cs
- ObjectSet.cs
- EntityDataSourceContextDisposingEventArgs.cs
- PersistenceIOParticipant.cs
- XmlSerializationGeneratedCode.cs
- DocumentReference.cs
- ObjectMemberMapping.cs
- HttpCachePolicy.cs
- WindowsTitleBar.cs
- DmlSqlGenerator.cs
- WebPartMenu.cs
- SymDocumentType.cs
- PointAnimation.cs
- ProfileBuildProvider.cs
- ContextDataSourceView.cs
- ReadOnlyHierarchicalDataSourceView.cs
- _FixedSizeReader.cs
- TouchDevice.cs
- PersonalizationDictionary.cs
- XmlnsDictionary.cs
- Figure.cs
- ListViewCommandEventArgs.cs
- BinaryParser.cs
- TypeToken.cs
- BindingExpressionBase.cs
- InheritanceAttribute.cs
- DefaultExpressionVisitor.cs
- SecuritySessionFilter.cs
- CqlParserHelpers.cs
- LoginViewDesigner.cs
- ServiceOperationInvoker.cs
- ElementFactory.cs
- CatalogPartCollection.cs
- SqlCommandSet.cs
- SmiRequestExecutor.cs
- IgnoreFlushAndCloseStream.cs
- HttpProfileGroupBase.cs
- TimeZone.cs
- DrawingBrush.cs
- XmlElement.cs
- SystemNetHelpers.cs
- XmlSchemaSimpleContentRestriction.cs
- Collection.cs
- StringBuilder.cs
- SMSvcHost.cs
- QuaternionAnimation.cs