Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 1305376 / EntityTypeEmitter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.CodeDom; using System.Data; using Som=System.Data.EntityModel.SchemaObjectModel; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.Emitters { ////// Summary description for ItemTypeEmitter. /// internal sealed class EntityTypeEmitter : StructuredTypeEmitter { #region Public Methods ////// /// /// /// public EntityTypeEmitter(ClientApiGenerator generator, EntityType entity) : base(generator, entity) { } #endregion #region Protected Methods ////// /// /// protected override void EmitProperties(CodeTypeDeclaration typeDecl) { base.EmitProperties(typeDecl); foreach ( NavigationProperty navigationProperty in Item.GetDeclaredOnlyMembers() ) { NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass); navigationPropertyEmitter.Emit(typeDecl); } } public override CodeTypeDeclarationCollection EmitApiClass() { CodeTypeDeclarationCollection typeDecls = base.EmitApiClass(); if ( Item.KeyMembers.Count > 0 && typeDecls.Count == 1 ) { // generate xml comments for the key properties CodeTypeDeclaration typeDecl = typeDecls[0]; typeDecl.Comments.Add( new CodeCommentStatement( " ", true ) ); foreach ( EdmMember keyProperty in Item.KeyMembers) { string name = keyProperty.Name; typeDecl.Comments.Add( new CodeCommentStatement( name, true ) ); } typeDecl.Comments.Add( new CodeCommentStatement( " ", true ) ); } return typeDecls; } ////// /// /// protected override void EmitTypeAttributes(CodeTypeDeclaration typeDecl) { Generator.AttributeEmitter.EmitTypeAttributes( this, typeDecl ); base.EmitTypeAttributes( typeDecl ); } ////// /// ///protected override CodeTypeReference GetBaseType() { CodeTypeReference baseType = base.GetBaseType(); if (baseType == null) { baseType = TypeReference.EntityTypeBaseClass; } return baseType; } protected override ReadOnlyMetadataCollection GetProperties() { return Item.Properties; } #endregion #region Public Properties #endregion #region Protected Properties #endregion #region Private Properties /// /// Gets the SchemaElement that this class is generating code for. /// ///public new EntityType Item { get { return base.Item as EntityType; } } #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.Generic; using System.CodeDom; using System.Data; using Som=System.Data.EntityModel.SchemaObjectModel; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.Emitters { ////// Summary description for ItemTypeEmitter. /// internal sealed class EntityTypeEmitter : StructuredTypeEmitter { #region Public Methods ////// /// /// /// public EntityTypeEmitter(ClientApiGenerator generator, EntityType entity) : base(generator, entity) { } #endregion #region Protected Methods ////// /// /// protected override void EmitProperties(CodeTypeDeclaration typeDecl) { base.EmitProperties(typeDecl); foreach ( NavigationProperty navigationProperty in Item.GetDeclaredOnlyMembers() ) { NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass); navigationPropertyEmitter.Emit(typeDecl); } } public override CodeTypeDeclarationCollection EmitApiClass() { CodeTypeDeclarationCollection typeDecls = base.EmitApiClass(); if ( Item.KeyMembers.Count > 0 && typeDecls.Count == 1 ) { // generate xml comments for the key properties CodeTypeDeclaration typeDecl = typeDecls[0]; typeDecl.Comments.Add( new CodeCommentStatement( " ", true ) ); foreach ( EdmMember keyProperty in Item.KeyMembers) { string name = keyProperty.Name; typeDecl.Comments.Add( new CodeCommentStatement( name, true ) ); } typeDecl.Comments.Add( new CodeCommentStatement( " ", true ) ); } return typeDecls; } ////// /// /// protected override void EmitTypeAttributes(CodeTypeDeclaration typeDecl) { Generator.AttributeEmitter.EmitTypeAttributes( this, typeDecl ); base.EmitTypeAttributes( typeDecl ); } ////// /// ///protected override CodeTypeReference GetBaseType() { CodeTypeReference baseType = base.GetBaseType(); if (baseType == null) { baseType = TypeReference.EntityTypeBaseClass; } return baseType; } protected override ReadOnlyMetadataCollection GetProperties() { return Item.Properties; } #endregion #region Public Properties #endregion #region Protected Properties #endregion #region Private Properties /// /// Gets the SchemaElement that this class is generating code for. /// ///public new EntityType Item { get { return base.Item as EntityType; } } #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
- prefixendpointaddressmessagefiltertable.cs
- ParenthesizePropertyNameAttribute.cs
- LambdaReference.cs
- Tablet.cs
- SchemaCollectionPreprocessor.cs
- BamlTreeMap.cs
- CollectionsUtil.cs
- BufferedMessageData.cs
- BindingList.cs
- PropertyBuilder.cs
- AppSecurityManager.cs
- GetIndexBinder.cs
- ExtenderProvidedPropertyAttribute.cs
- Literal.cs
- HtmlElementErrorEventArgs.cs
- XmlSchemaSet.cs
- ChannelManagerService.cs
- QueryGenerator.cs
- DataGridViewComboBoxEditingControl.cs
- TypeDescriptor.cs
- ConstraintEnumerator.cs
- FileLoadException.cs
- XPathPatternParser.cs
- OdbcInfoMessageEvent.cs
- PathFigureCollectionValueSerializer.cs
- QilExpression.cs
- TemplateXamlParser.cs
- DataObjectEventArgs.cs
- TypeSemantics.cs
- ScrollEventArgs.cs
- SynchronizedCollection.cs
- MemoryRecordBuffer.cs
- RecognitionEventArgs.cs
- DesignTimeValidationFeature.cs
- OdbcErrorCollection.cs
- MenuStrip.cs
- TextTabProperties.cs
- connectionpool.cs
- NativeMethods.cs
- DefaultValueTypeConverter.cs
- MulticastDelegate.cs
- MetabaseServerConfig.cs
- HtmlInputButton.cs
- AssemblyBuilderData.cs
- AsyncResult.cs
- ImageFormat.cs
- UserControlDesigner.cs
- WindowsTitleBar.cs
- _NTAuthentication.cs
- LocatorPartList.cs
- ViewStateModeByIdAttribute.cs
- DES.cs
- StatusBar.cs
- NamedPipeProcessProtocolHandler.cs
- LinqDataSourceInsertEventArgs.cs
- VisualCollection.cs
- SrgsGrammar.cs
- Rules.cs
- RenderContext.cs
- ComponentEvent.cs
- GridPattern.cs
- ServerValidateEventArgs.cs
- BackgroundFormatInfo.cs
- SecurityContextSecurityToken.cs
- EllipseGeometry.cs
- StateDesignerConnector.cs
- TrailingSpaceComparer.cs
- DataStreams.cs
- TabPanel.cs
- GeneralTransform3DTo2D.cs
- TableRowGroup.cs
- EnumType.cs
- UnsafeNativeMethods.cs
- ItemCollection.cs
- XmlSchemaCollection.cs
- ProgressBarRenderer.cs
- CodeIdentifiers.cs
- ArraySortHelper.cs
- RegisterInfo.cs
- ExpressionNode.cs
- CompiledAction.cs
- DataControlLinkButton.cs
- Path.cs
- TextModifier.cs
- VolatileResourceManager.cs
- ToolStripPanelSelectionGlyph.cs
- LinqDataSource.cs
- AutoResizedEvent.cs
- SqlRewriteScalarSubqueries.cs
- SqlConnectionString.cs
- XmlnsCache.cs
- HtmlWindow.cs
- AppDomainUnloadedException.cs
- Splitter.cs
- RijndaelManaged.cs
- SqlBinder.cs
- FixedTextSelectionProcessor.cs
- LoginUtil.cs
- X509CertificateRecipientServiceCredential.cs
- MessageEncodingBindingElement.cs