Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / ReferenceTypeElement.cs / 1305376 / ReferenceTypeElement.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using Som = System.Data.EntityModel.SchemaObjectModel;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Globalization;
using System.Xml;
using System.Xml.Schema;
using System.Data;
using System.IO;
using System.Data.Metadata.Edm;
using System.Data.Entity;
using System.Text;
namespace System.Data.EntityModel.SchemaObjectModel
{
class ReferenceTypeElement : ModelFunctionTypeElement
{
#region constructor
///
///
///
///
internal ReferenceTypeElement(SchemaElement parentElement)
: base(parentElement)
{
}
#endregion
protected override bool HandleAttribute(XmlReader reader)
{
if (base.HandleAttribute(reader))
{
return true;
}
else if (CanHandleAttribute(reader, XmlConstants.TypeElement))
{
HandleTypeElementAttribute(reader);
return true;
}
return false;
}
protected void HandleTypeElementAttribute(XmlReader reader)
{
Debug.Assert(reader != null);
string type;
if (!Utils.GetString(Schema, reader, out type))
return;
_unresolvedType = type;
}
internal override void WriteIdentity(StringBuilder builder)
{
Debug.Assert(UnresolvedType != null && !UnresolvedType.Trim().Equals(String.Empty));
builder.Append("Ref(" + UnresolvedType + ")");
}
internal override TypeUsage GetTypeUsage()
{
return _typeUsage;
}
internal override bool ResolveNameAndSetTypeUsage(Converter.ConversionCache convertedItemCache, Dictionary newGlobalItems)
{
if (_typeUsage == null)
{
Debug.Assert(!(_type is ScalarType));
EdmType edmType = (EdmType)Converter.LoadSchemaElement(_type, _type.Schema.ProviderManifest, convertedItemCache, newGlobalItems);
EntityType entityType = edmType as EntityType;
Debug.Assert(entityType != null);
RefType refType = new RefType(entityType);
refType.AddMetadataProperties(this.OtherContent);
_typeUsage = TypeUsage.Create(refType);
}
return true;
}
internal override void Validate()
{
base.Validate();
if (_type != null && !(_type is SchemaEntityType))
{
//Ref type refers to non entity type
AddError(ErrorCode.ReferenceToNonEntityType, EdmSchemaErrorSeverity.Error, Strings.ReferenceToNonEntityType(_type.FQName));
}
}
}
}
// 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
- ReadWriteControlDesigner.cs
- InternalControlCollection.cs
- LinqDataSourceView.cs
- WindowsStatusBar.cs
- XmlBinaryWriter.cs
- DataGridViewRowPrePaintEventArgs.cs
- SmtpFailedRecipientException.cs
- ParameterCollection.cs
- Visual3D.cs
- BuildProviderCollection.cs
- BinaryObjectInfo.cs
- TagPrefixAttribute.cs
- DbSource.cs
- DataSourceProvider.cs
- DateTimeStorage.cs
- SrgsItemList.cs
- ServiceDescriptionContext.cs
- ComponentCommands.cs
- DependencyProperty.cs
- HandlerFactoryCache.cs
- OleDbSchemaGuid.cs
- latinshape.cs
- MaterializeFromAtom.cs
- ConfigsHelper.cs
- DbModificationCommandTree.cs
- XmlBinaryReader.cs
- Bits.cs
- XPathNavigatorReader.cs
- AsyncContentLoadedEventArgs.cs
- PlatformNotSupportedException.cs
- AutomationPatternInfo.cs
- HttpListenerRequestUriBuilder.cs
- UnsafeNativeMethods.cs
- CheckBoxBaseAdapter.cs
- filewebrequest.cs
- DrawingContextDrawingContextWalker.cs
- LinqDataSourceHelper.cs
- EntityDataSourceChangedEventArgs.cs
- SerializationAttributes.cs
- Win32PrintDialog.cs
- ToolStripContentPanelDesigner.cs
- OutputCacheSettings.cs
- DynamicRouteExpression.cs
- CfgParser.cs
- PolicyLevel.cs
- RowBinding.cs
- BitmapEffectCollection.cs
- Function.cs
- util.cs
- AuthorizationRule.cs
- Part.cs
- DependencyPropertyChangedEventArgs.cs
- OleDbParameter.cs
- InstanceKeyNotReadyException.cs
- Int64Storage.cs
- BaseConfigurationRecord.cs
- MatrixStack.cs
- SQLResource.cs
- JpegBitmapEncoder.cs
- VirtualizedCellInfoCollection.cs
- BehaviorEditorPart.cs
- EqualityComparer.cs
- XmlCharacterData.cs
- HtmlTernaryTree.cs
- COM2AboutBoxPropertyDescriptor.cs
- RightNameExpirationInfoPair.cs
- SerialReceived.cs
- SqlProfileProvider.cs
- MSAAWinEventWrap.cs
- InteropEnvironment.cs
- OutputScopeManager.cs
- QilCloneVisitor.cs
- ViewCellSlot.cs
- ComplexPropertyEntry.cs
- PathSegmentCollection.cs
- PreservationFileWriter.cs
- DebugController.cs
- InvokeWebService.cs
- AnnotationStore.cs
- ImmutableCollection.cs
- CodeObjectCreateExpression.cs
- PropertyChangedEventArgs.cs
- Token.cs
- PropertyItem.cs
- EntitySqlQueryBuilder.cs
- LinearGradientBrush.cs
- StateManager.cs
- DataTableMapping.cs
- ArraySegment.cs
- ExeConfigurationFileMap.cs
- DecimalConstantAttribute.cs
- GeneralTransform3DCollection.cs
- KnownTypeDataContractResolver.cs
- MetadataResolver.cs
- Point3DCollectionValueSerializer.cs
- XmlSchemaSubstitutionGroup.cs
- MessageBodyDescription.cs
- WebBrowserPermission.cs
- WindowsHyperlink.cs
- LogicalExpressionTypeConverter.cs