Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 1305376 / EntityTypeEmitter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.CodeDom; 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 (EdmMember member in Item.Members) { NavigationProperty navigationProperty = (member as NavigationProperty); if ((null != navigationProperty) && (navigationProperty.DeclaringType == Item)) { NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass); navigationPropertyEmitter.Emit(typeDecl); } } } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "KeyProperties")] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = ".ctor")] 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(); 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.CodeDom; 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 (EdmMember member in Item.Members) { NavigationProperty navigationProperty = (member as NavigationProperty); if ((null != navigationProperty) && (navigationProperty.DeclaringType == Item)) { NavigationPropertyEmitter navigationPropertyEmitter = new NavigationPropertyEmitter(Generator, navigationProperty, UsingStandardBaseClass); navigationPropertyEmitter.Emit(typeDecl); } } } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "KeyProperties")] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = ".ctor")] 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(); 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
- ExceptionHelpers.cs
- BufferedStream.cs
- VisualTarget.cs
- CommandBinding.cs
- FromReply.cs
- TemplateInstanceAttribute.cs
- DataGridTextBox.cs
- GradientSpreadMethodValidation.cs
- PersonalizationProviderHelper.cs
- PrintPreviewDialog.cs
- DelegateTypeInfo.cs
- IgnorePropertiesAttribute.cs
- TraceContextRecord.cs
- FileStream.cs
- SymbolUsageManager.cs
- KeyConverter.cs
- MetadataCache.cs
- BinHexEncoding.cs
- NotificationContext.cs
- RulePatternOps.cs
- OleDbReferenceCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- StorageEntitySetMapping.cs
- IndependentlyAnimatedPropertyMetadata.cs
- XmlnsCompatibleWithAttribute.cs
- SetterBase.cs
- Timer.cs
- XamlStream.cs
- LockedBorderGlyph.cs
- ManagementPath.cs
- DataGridTable.cs
- GlyphsSerializer.cs
- SourceFileBuildProvider.cs
- WebPartConnectionsCancelEventArgs.cs
- Button.cs
- WinFormsSpinner.cs
- HostedNamedPipeTransportManager.cs
- RangeValuePattern.cs
- HttpProcessUtility.cs
- WpfKnownType.cs
- PermissionListSet.cs
- Geometry.cs
- TextContainerHelper.cs
- MenuTracker.cs
- XmlSchemaGroupRef.cs
- EntityContainerEmitter.cs
- SecurityTokenTypes.cs
- LongTypeConverter.cs
- DataGridViewCellCancelEventArgs.cs
- ReferenceTypeElement.cs
- ControlParameter.cs
- TriggerCollection.cs
- DragCompletedEventArgs.cs
- WMIInterop.cs
- RadioButtonRenderer.cs
- ToolStripControlHost.cs
- ConfigXmlComment.cs
- ManagedWndProcTracker.cs
- ToolboxComponentsCreatingEventArgs.cs
- SystemNetworkInterface.cs
- StreamUpgradeAcceptor.cs
- PreviousTrackingServiceAttribute.cs
- CompositeScriptReferenceEventArgs.cs
- HostProtectionException.cs
- SetterBase.cs
- SByte.cs
- SevenBitStream.cs
- ObjectParameter.cs
- FileSystemEventArgs.cs
- LocalizationParserHooks.cs
- IUnknownConstantAttribute.cs
- ConfigDefinitionUpdates.cs
- ImageDrawing.cs
- CodeDirectionExpression.cs
- XmlSchemaSimpleContentRestriction.cs
- GeometryDrawing.cs
- RuntimeVariableList.cs
- WebPartEditorCancelVerb.cs
- TextDecorationLocationValidation.cs
- HMACMD5.cs
- TextElement.cs
- SimpleTypeResolver.cs
- AdjustableArrowCap.cs
- BaseServiceProvider.cs
- SvcMapFileSerializer.cs
- ControlBindingsConverter.cs
- HttpApplicationFactory.cs
- ListBase.cs
- PolicyException.cs
- WebPartMovingEventArgs.cs
- DataRowChangeEvent.cs
- TextParaLineResult.cs
- CodeDOMUtility.cs
- LinqDataSourceDeleteEventArgs.cs
- TranslateTransform3D.cs
- TraceContext.cs
- OrderToken.cs
- GridViewColumnHeaderAutomationPeer.cs
- Dictionary.cs
- DeviceSpecificDialogCachedState.cs