Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntityDesign / Design / System / Data / EntityModel / Emitters / EntityTypeEmitter.cs / 2 / 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
- CodeNamespaceImport.cs
- SerializerProvider.cs
- DataGridViewLinkColumn.cs
- BitmapCodecInfoInternal.cs
- TypeDescriptor.cs
- GroupItem.cs
- BooleanStorage.cs
- WebPartCloseVerb.cs
- SubtreeProcessor.cs
- CancellationState.cs
- WebBrowserNavigatedEventHandler.cs
- XmlSchemaValidator.cs
- OuterGlowBitmapEffect.cs
- NavigationEventArgs.cs
- DataGridViewRowCancelEventArgs.cs
- JapaneseCalendar.cs
- TimelineGroup.cs
- login.cs
- IpcChannel.cs
- BindingFormattingDialog.cs
- DesignBindingPropertyDescriptor.cs
- SecurityAlgorithmSuite.cs
- XPathException.cs
- ImageList.cs
- BoolExpr.cs
- ServiceObjectContainer.cs
- SizeConverter.cs
- RelationshipManager.cs
- ApplicationContext.cs
- RadioButtonRenderer.cs
- MethodSet.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- OleDbEnumerator.cs
- _BufferOffsetSize.cs
- XhtmlBasicSelectionListAdapter.cs
- DefinitionBase.cs
- CachedBitmap.cs
- RequiredFieldValidator.cs
- EventSetter.cs
- HtmlButton.cs
- ExtendedPropertyInfo.cs
- WebPermission.cs
- OdbcCommand.cs
- Currency.cs
- RadioButton.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- RequiredFieldValidator.cs
- SafeFindHandle.cs
- ToolboxDataAttribute.cs
- List.cs
- CompositeScriptReferenceEventArgs.cs
- TabPage.cs
- ControlFilterExpression.cs
- DeviceSpecificChoiceCollection.cs
- InlineCategoriesDocument.cs
- SerializationTrace.cs
- DescendantBaseQuery.cs
- InternalBase.cs
- InkCanvasInnerCanvas.cs
- CustomValidator.cs
- NamespaceImport.cs
- PropertyItemInternal.cs
- CompositeDataBoundControl.cs
- RequestCachingSection.cs
- BindableAttribute.cs
- OneOfTypeConst.cs
- HealthMonitoringSection.cs
- securestring.cs
- recordstate.cs
- DataGridPagerStyle.cs
- ToolStripPanelRenderEventArgs.cs
- TextRange.cs
- FamilyTypefaceCollection.cs
- DataGridTable.cs
- SystemResourceHost.cs
- ErrorStyle.cs
- DataKeyArray.cs
- NullableLongMinMaxAggregationOperator.cs
- TableParagraph.cs
- _Win32.cs
- CellNormalizer.cs
- Errors.cs
- SizeConverter.cs
- AppModelKnownContentFactory.cs
- Rect3D.cs
- TextBoxView.cs
- SqlCachedBuffer.cs
- DocumentPageTextView.cs
- smtppermission.cs
- ProviderIncompatibleException.cs
- ValueType.cs
- StyleCollection.cs
- XmlSchemaSubstitutionGroup.cs
- DocumentOrderQuery.cs
- GridViewRowPresenter.cs
- SqlReorderer.cs
- DoubleCollectionValueSerializer.cs
- ValidationUtility.cs
- CompositeFontInfo.cs
- Invariant.cs