Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Design / system / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 3 / 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);
}
}
}
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);
}
}
}
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
- NameValueConfigurationElement.cs
- ExpressionHelper.cs
- ActivityValidationServices.cs
- TransformCollection.cs
- TickBar.cs
- OpenFileDialog.cs
- ObjectStateFormatter.cs
- SqlBulkCopyColumnMapping.cs
- BoundColumn.cs
- ThreadStateException.cs
- TransformCollection.cs
- AccessControlEntry.cs
- ParameterModifier.cs
- DecoderNLS.cs
- RectKeyFrameCollection.cs
- UserValidatedEventArgs.cs
- ComponentCollection.cs
- ControlValuePropertyAttribute.cs
- VScrollBar.cs
- ListBoxChrome.cs
- PartDesigner.cs
- MailMessageEventArgs.cs
- IQueryable.cs
- IndexOutOfRangeException.cs
- TcpSocketManager.cs
- BlobPersonalizationState.cs
- MetadataReference.cs
- GenericPrincipal.cs
- DesignerView.cs
- QueryOutputWriter.cs
- WebBrowserUriTypeConverter.cs
- XmlObjectSerializerWriteContext.cs
- PtsHost.cs
- SizeLimitedCache.cs
- Propagator.Evaluator.cs
- Axis.cs
- DetailsViewPageEventArgs.cs
- _HTTPDateParse.cs
- CommandConverter.cs
- XmlLinkedNode.cs
- StrongNameKeyPair.cs
- XmlQueryContext.cs
- QueueProcessor.cs
- Command.cs
- DataGridItemEventArgs.cs
- TemplatedEditableDesignerRegion.cs
- RequestQueue.cs
- DataControlPagerLinkButton.cs
- MdiWindowListStrip.cs
- Html32TextWriter.cs
- WebPartCancelEventArgs.cs
- MultipartIdentifier.cs
- OdbcEnvironmentHandle.cs
- SpeechSynthesizer.cs
- ManagementEventWatcher.cs
- SqlDataSourceEnumerator.cs
- Utils.cs
- ListViewGroupConverter.cs
- WebResourceAttribute.cs
- XmlNavigatorStack.cs
- ProxyHwnd.cs
- wgx_sdk_version.cs
- UpDownEvent.cs
- CodeTypeOfExpression.cs
- NativeMethods.cs
- ExtendedProperty.cs
- VoiceObjectToken.cs
- HostingEnvironmentWrapper.cs
- AsnEncodedData.cs
- DataGridViewCellValueEventArgs.cs
- DispatcherHooks.cs
- BitmapCodecInfoInternal.cs
- AnnotationResourceChangedEventArgs.cs
- Camera.cs
- GeometryModel3D.cs
- XmlnsDefinitionAttribute.cs
- MasterPageParser.cs
- PixelFormatConverter.cs
- TempFiles.cs
- ReflectionServiceProvider.cs
- UIAgentAsyncBeginRequest.cs
- TraceData.cs
- EntityConnectionStringBuilder.cs
- NetStream.cs
- HtmlInputRadioButton.cs
- UITypeEditor.cs
- WebServiceBindingAttribute.cs
- ToolBarButtonDesigner.cs
- NativeMethods.cs
- XmlSerializer.cs
- ToolBarTray.cs
- SByteStorage.cs
- PersonalizationStateInfoCollection.cs
- SqlExpander.cs
- XmlSchemaFacet.cs
- OleDbWrapper.cs
- SqlDataSourceEnumerator.cs
- WorkerRequest.cs
- EventItfInfo.cs
- UserControl.cs