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
- PersonalizationStateInfoCollection.cs
- TerminatorSinks.cs
- State.cs
- PolicyUnit.cs
- DocumentViewerAutomationPeer.cs
- LookupBindingPropertiesAttribute.cs
- WindowsRegion.cs
- OleDbErrorCollection.cs
- RadioButtonRenderer.cs
- UTF32Encoding.cs
- DeclarationUpdate.cs
- StopStoryboard.cs
- CellConstantDomain.cs
- SQLStringStorage.cs
- NumericExpr.cs
- ComponentResourceManager.cs
- MemberDomainMap.cs
- SmtpLoginAuthenticationModule.cs
- GeometryCollection.cs
- HtmlUtf8RawTextWriter.cs
- MetafileHeader.cs
- ToolStripSeparator.cs
- UserCancellationException.cs
- PropertyGridCommands.cs
- WebPartVerb.cs
- DataGridViewRowPrePaintEventArgs.cs
- SurrogateSelector.cs
- _NativeSSPI.cs
- AssemblyNameProxy.cs
- ProxyGenerator.cs
- DecoderNLS.cs
- Style.cs
- ThemeableAttribute.cs
- NativeMethods.cs
- HtmlTableCell.cs
- ByteStorage.cs
- CodeTypeOfExpression.cs
- ProviderCommandInfoUtils.cs
- FunctionNode.cs
- IntSecurity.cs
- PriorityBindingExpression.cs
- HtmlElementEventArgs.cs
- QilGenerator.cs
- _NetRes.cs
- WorkflowRuntimeServicesBehavior.cs
- SafeLibraryHandle.cs
- FtpRequestCacheValidator.cs
- SmtpNtlmAuthenticationModule.cs
- Point3DIndependentAnimationStorage.cs
- BitmapFrameEncode.cs
- XmlCustomFormatter.cs
- ErrorLog.cs
- TextCollapsingProperties.cs
- CheckBoxRenderer.cs
- ConditionalDesigner.cs
- DataContractSerializerFaultFormatter.cs
- SchemaCollectionPreprocessor.cs
- PathFigure.cs
- SqlConnectionString.cs
- ArithmeticException.cs
- FormsAuthenticationModule.cs
- SHA384.cs
- COMException.cs
- SmtpReplyReaderFactory.cs
- JsonWriterDelegator.cs
- MonthChangedEventArgs.cs
- InstanceKeyCollisionException.cs
- PeerApplication.cs
- MulticastOption.cs
- BaseProcessor.cs
- ProxyGenerator.cs
- DataServiceContext.cs
- ToolbarAUtomationPeer.cs
- DbProviderConfigurationHandler.cs
- ConfigXmlAttribute.cs
- AncestorChangedEventArgs.cs
- PageHandlerFactory.cs
- WindowsAuthenticationModule.cs
- TextEditorMouse.cs
- CollectionEditorDialog.cs
- Style.cs
- DefaultBindingPropertyAttribute.cs
- ListViewAutomationPeer.cs
- CellParaClient.cs
- CodeCompiler.cs
- TrackBarRenderer.cs
- DBSqlParserColumnCollection.cs
- UdpConstants.cs
- EntityDataSourceChangingEventArgs.cs
- DataGridColumn.cs
- MaskInputRejectedEventArgs.cs
- FileClassifier.cs
- QueueSurrogate.cs
- GregorianCalendarHelper.cs
- StringWriter.cs
- DataGridViewEditingControlShowingEventArgs.cs
- TextEffectCollection.cs
- XmlConvert.cs
- _Connection.cs
- PersonalizableAttribute.cs