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
- ListViewEditEventArgs.cs
- AddingNewEventArgs.cs
- SystemDiagnosticsSection.cs
- XmlArrayItemAttribute.cs
- IgnoreDataMemberAttribute.cs
- TextCharacters.cs
- PackageRelationshipCollection.cs
- HMACSHA256.cs
- ParseElement.cs
- XmlArrayItemAttributes.cs
- PreloadedPackages.cs
- Label.cs
- LocalizationComments.cs
- SamlAuthenticationStatement.cs
- TextLineResult.cs
- ModuleConfigurationInfo.cs
- CacheEntry.cs
- UInt64.cs
- MetaTable.cs
- PreProcessor.cs
- StrokeNodeOperations.cs
- SchemaSetCompiler.cs
- ProgressBar.cs
- WebBrowserPermission.cs
- HelpEvent.cs
- CachedFontFamily.cs
- DebugViewWriter.cs
- RestHandlerFactory.cs
- XslAstAnalyzer.cs
- NameObjectCollectionBase.cs
- __ConsoleStream.cs
- HtmlTitle.cs
- PrivateFontCollection.cs
- DataGridCellEditEndingEventArgs.cs
- ColumnTypeConverter.cs
- ScriptHandlerFactory.cs
- ObjectStateManager.cs
- MouseEvent.cs
- EventSource.cs
- HashHelper.cs
- TreeIterator.cs
- PhonemeConverter.cs
- RichTextBox.cs
- HtmlUtf8RawTextWriter.cs
- GACMembershipCondition.cs
- BindingGraph.cs
- PickBranchDesigner.xaml.cs
- DbConnectionOptions.cs
- ConnectionConsumerAttribute.cs
- EdmError.cs
- StandardBindingOptionalReliableSessionElement.cs
- TreeViewHitTestInfo.cs
- XmlUnspecifiedAttribute.cs
- EncryptedXml.cs
- DesignerCategoryAttribute.cs
- XmlSignatureProperties.cs
- OverflowException.cs
- PrintController.cs
- Symbol.cs
- SystemEvents.cs
- DataServiceStreamResponse.cs
- CodeStatementCollection.cs
- _SSPIWrapper.cs
- SpAudioStreamWrapper.cs
- MatrixConverter.cs
- BamlMapTable.cs
- ContextStaticAttribute.cs
- EtwTrace.cs
- SynchronizationScope.cs
- AssertUtility.cs
- AssemblyInfo.cs
- ListViewDataItem.cs
- Number.cs
- MdImport.cs
- DetailsView.cs
- TextWriterTraceListener.cs
- DbgUtil.cs
- WriteTimeStream.cs
- AutomationIdentifier.cs
- BatchParser.cs
- TabControl.cs
- DataGridViewCellPaintingEventArgs.cs
- DataGridViewCellCollection.cs
- Utils.cs
- Lock.cs
- OpenFileDialog.cs
- WSHttpBindingBaseElement.cs
- ContentHostHelper.cs
- RegexTree.cs
- EventMappingSettingsCollection.cs
- WindowsGrip.cs
- AsyncPostBackErrorEventArgs.cs
- SerializerDescriptor.cs
- BrowserDefinition.cs
- SymbolTable.cs
- OleDbStruct.cs
- EntityTypeEmitter.cs
- XmlReflectionImporter.cs
- DataBindingCollection.cs
- basecomparevalidator.cs