Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / ItemType.cs / 1305376 / ItemType.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Data; using System.Diagnostics; using metadata = System.Data.Metadata.Edm; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Summary description for Item. /// [System.Diagnostics.DebuggerDisplay("Name={Name}, BaseType={BaseType.FQName}, HasKeys={HasKeys}")] internal sealed class SchemaEntityType : StructuredType { #region Private Fields private const char KEY_DELIMITER = ' '; private ISchemaElementLookUpTable_navigationProperties = null; private EntityKeyElement _keyElement = null; private static List EmptyKeyProperties = new List (0); #endregion #region Public Methods /// /// /// /// public SchemaEntityType(Schema parentElement) : base(parentElement) { if (Schema.DataModel == SchemaDataModelOption.EntityDataModel) OtherContent.Add(Schema.SchemaSource); } #endregion #region Protected Methods ////// /// internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); if (BaseType != null) { if (!(BaseType is SchemaEntityType)) { AddError(ErrorCode.InvalidBaseType, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidBaseTypeForItemType(BaseType.FQName, FQName)); } // Since the base type is not null, key must be defined on the base type else if (_keyElement != null && BaseType != null) { AddError(ErrorCode.InvalidKey, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidKeyKeyDefinedInBaseClass(FQName, BaseType.FQName)); } } // If the base type is not null, then the key must be defined on the base entity type, since // we don't allow entity type without keys. else if (_keyElement == null) { AddError(ErrorCode.KeyMissingOnEntityType, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.KeyMissingOnEntityType(this.FQName)); } else if (null == BaseType && null != UnresolvedBaseType) { // this is already an error situation, we won't do any resolve name further in this type return; } else { _keyElement.ResolveTopLevelNames(); } } #endregion #region Protected Properties protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } return false; } #endregion #region Private Methods #endregion #region Public Properties public EntityKeyElement KeyElement { get { return _keyElement; } } ////// /// public IListDeclaredKeyProperties { get { if (KeyElement == null) { return EmptyKeyProperties; } return KeyElement.KeyProperties; } } /// /// /// ///public IList KeyProperties { get { if (KeyElement == null) { if (BaseType != null) { System.Diagnostics.Debug.Assert(BaseType is SchemaEntityType, "ItemType.BaseType is not ItemType"); return (BaseType as SchemaEntityType).KeyProperties; } return EmptyKeyProperties; } return this.KeyElement.KeyProperties; } } /// /// /// public ISchemaElementLookUpTableNavigationProperties { get { if (_navigationProperties == null) { _navigationProperties = new FilteredSchemaElementLookUpTable (NamedMembers); } return _navigationProperties; } } #endregion #region Protected Methods /// /// /// internal override void Validate() { // structured type base class will validate all members (properties, nav props, etc) base.Validate(); if (this.KeyElement != null) { this.KeyElement.Validate(); } } #endregion #region Protected Properties protected override bool HandleElement(XmlReader reader) { if (base.HandleElement(reader)) { return true; } else if (CanHandleElement(reader, XmlConstants.Key)) { HandleKeyElement(reader); return true; } else if (CanHandleElement(reader, XmlConstants.NavigationProperty)) { HandleNavigationPropertyElement(reader); return true; } return false; } #endregion #region Private Methods ////// /// /// private void HandleNavigationPropertyElement(XmlReader reader) { NavigationProperty navigationProperty = new NavigationProperty(this); navigationProperty.Parse(reader); AddMember(navigationProperty); } ////// /// /// private void HandleKeyElement(XmlReader reader) { _keyElement = new EntityKeyElement(this); _keyElement.Parse(reader); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Xml; using System.Data; using System.Diagnostics; using metadata = System.Data.Metadata.Edm; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Summary description for Item. /// [System.Diagnostics.DebuggerDisplay("Name={Name}, BaseType={BaseType.FQName}, HasKeys={HasKeys}")] internal sealed class SchemaEntityType : StructuredType { #region Private Fields private const char KEY_DELIMITER = ' '; private ISchemaElementLookUpTable_navigationProperties = null; private EntityKeyElement _keyElement = null; private static List EmptyKeyProperties = new List (0); #endregion #region Public Methods /// /// /// /// public SchemaEntityType(Schema parentElement) : base(parentElement) { if (Schema.DataModel == SchemaDataModelOption.EntityDataModel) OtherContent.Add(Schema.SchemaSource); } #endregion #region Protected Methods ////// /// internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); if (BaseType != null) { if (!(BaseType is SchemaEntityType)) { AddError(ErrorCode.InvalidBaseType, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidBaseTypeForItemType(BaseType.FQName, FQName)); } // Since the base type is not null, key must be defined on the base type else if (_keyElement != null && BaseType != null) { AddError(ErrorCode.InvalidKey, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidKeyKeyDefinedInBaseClass(FQName, BaseType.FQName)); } } // If the base type is not null, then the key must be defined on the base entity type, since // we don't allow entity type without keys. else if (_keyElement == null) { AddError(ErrorCode.KeyMissingOnEntityType, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.KeyMissingOnEntityType(this.FQName)); } else if (null == BaseType && null != UnresolvedBaseType) { // this is already an error situation, we won't do any resolve name further in this type return; } else { _keyElement.ResolveTopLevelNames(); } } #endregion #region Protected Properties protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } return false; } #endregion #region Private Methods #endregion #region Public Properties public EntityKeyElement KeyElement { get { return _keyElement; } } ////// /// public IListDeclaredKeyProperties { get { if (KeyElement == null) { return EmptyKeyProperties; } return KeyElement.KeyProperties; } } /// /// /// ///public IList KeyProperties { get { if (KeyElement == null) { if (BaseType != null) { System.Diagnostics.Debug.Assert(BaseType is SchemaEntityType, "ItemType.BaseType is not ItemType"); return (BaseType as SchemaEntityType).KeyProperties; } return EmptyKeyProperties; } return this.KeyElement.KeyProperties; } } /// /// /// public ISchemaElementLookUpTableNavigationProperties { get { if (_navigationProperties == null) { _navigationProperties = new FilteredSchemaElementLookUpTable (NamedMembers); } return _navigationProperties; } } #endregion #region Protected Methods /// /// /// internal override void Validate() { // structured type base class will validate all members (properties, nav props, etc) base.Validate(); if (this.KeyElement != null) { this.KeyElement.Validate(); } } #endregion #region Protected Properties protected override bool HandleElement(XmlReader reader) { if (base.HandleElement(reader)) { return true; } else if (CanHandleElement(reader, XmlConstants.Key)) { HandleKeyElement(reader); return true; } else if (CanHandleElement(reader, XmlConstants.NavigationProperty)) { HandleNavigationPropertyElement(reader); return true; } return false; } #endregion #region Private Methods ////// /// /// private void HandleNavigationPropertyElement(XmlReader reader) { NavigationProperty navigationProperty = new NavigationProperty(this); navigationProperty.Parse(reader); AddMember(navigationProperty); } ////// /// /// private void HandleKeyElement(XmlReader reader) { _keyElement = new EntityKeyElement(this); _keyElement.Parse(reader); } #endregion } } // 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
- MemberInitExpression.cs
- Triangle.cs
- DataKeyArray.cs
- TextEditorDragDrop.cs
- CookieParameter.cs
- SortExpressionBuilder.cs
- FirstMatchCodeGroup.cs
- RegexCharClass.cs
- OleDbInfoMessageEvent.cs
- DeploymentExceptionMapper.cs
- WebConfigurationFileMap.cs
- WebControlsSection.cs
- ThaiBuddhistCalendar.cs
- CallContext.cs
- HuffmanTree.cs
- RectangleConverter.cs
- ReadWriteSpinLock.cs
- CodeNamespace.cs
- CompilerState.cs
- ResXBuildProvider.cs
- FixedTextSelectionProcessor.cs
- WorkflowRuntimeServiceElement.cs
- TextCompositionManager.cs
- ConnectionConsumerAttribute.cs
- ServiceProviders.cs
- ToolStripOverflowButton.cs
- XPathDescendantIterator.cs
- DispatcherTimer.cs
- SecurityHelper.cs
- UnicastIPAddressInformationCollection.cs
- AuthorizationRuleCollection.cs
- ViewDesigner.cs
- URIFormatException.cs
- propertytag.cs
- ClientScriptManager.cs
- LocalizabilityAttribute.cs
- AccessViolationException.cs
- BadImageFormatException.cs
- GrammarBuilderPhrase.cs
- DataReaderContainer.cs
- DependencyPropertyConverter.cs
- SqlDataSourceStatusEventArgs.cs
- AddingNewEventArgs.cs
- WorkflowTerminatedException.cs
- BinaryCommonClasses.cs
- DrawingServices.cs
- FormsAuthenticationCredentials.cs
- TableDetailsCollection.cs
- EventData.cs
- RadioButtonAutomationPeer.cs
- Processor.cs
- LinqDataSourceDeleteEventArgs.cs
- FormViewRow.cs
- IndicFontClient.cs
- ColumnWidthChangingEvent.cs
- DuplexSecurityProtocolFactory.cs
- ConversionHelper.cs
- Substitution.cs
- __TransparentProxy.cs
- OdbcTransaction.cs
- Baml6Assembly.cs
- AsyncSerializedWorker.cs
- InternalSafeNativeMethods.cs
- XmlLanguage.cs
- LogSwitch.cs
- PathGeometry.cs
- XmlValueConverter.cs
- OptimisticConcurrencyException.cs
- UncommonField.cs
- ScriptingAuthenticationServiceSection.cs
- ClientSponsor.cs
- ExpandSegment.cs
- ProcessHostMapPath.cs
- DocumentSchemaValidator.cs
- Calendar.cs
- VirtualDirectoryMappingCollection.cs
- EntityDataSourceValidationException.cs
- VirtualPathProvider.cs
- SharedStatics.cs
- FileDetails.cs
- HttpException.cs
- XmlSchemaAnnotated.cs
- DesignerToolboxInfo.cs
- InputReferenceExpression.cs
- SqlDuplicator.cs
- AssertUtility.cs
- InvokeProviderWrapper.cs
- DataObjectSettingDataEventArgs.cs
- ConfigurationHandlersInstallComponent.cs
- SocketException.cs
- CqlLexer.cs
- OperationCanceledException.cs
- Tuple.cs
- PathStreamGeometryContext.cs
- OleDbParameter.cs
- UriExt.cs
- WindowsTooltip.cs
- DataGridViewImageColumn.cs
- DataControlImageButton.cs
- IDQuery.cs