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
- DataTransferEventArgs.cs
- AllMembershipCondition.cs
- WebBrowserNavigatingEventHandler.cs
- CompiledQuery.cs
- TextRunCacheImp.cs
- WindowsFormsSectionHandler.cs
- QueryExpression.cs
- GCHandleCookieTable.cs
- BreakRecordTable.cs
- SmiContextFactory.cs
- StructuralType.cs
- PrtCap_Public_Simple.cs
- ParallelDesigner.cs
- ProfileEventArgs.cs
- COM2Enum.cs
- ProfileProvider.cs
- PropertyInfoSet.cs
- PlanCompilerUtil.cs
- SrgsRuleRef.cs
- KoreanCalendar.cs
- SrgsRulesCollection.cs
- DataSetUtil.cs
- XsltOutput.cs
- DataGridColumnCollection.cs
- ObjectQuery_EntitySqlExtensions.cs
- SHA1CryptoServiceProvider.cs
- ContentElement.cs
- ConsoleKeyInfo.cs
- DrawListViewItemEventArgs.cs
- KeyValuePairs.cs
- BaseCodePageEncoding.cs
- ChineseLunisolarCalendar.cs
- FullTextBreakpoint.cs
- SchemaCollectionCompiler.cs
- ErrorHandler.cs
- XmlReflectionImporter.cs
- WeakReferenceEnumerator.cs
- MouseBinding.cs
- TimelineClockCollection.cs
- WebServiceResponse.cs
- GridViewSortEventArgs.cs
- EFDataModelProvider.cs
- BaseCodePageEncoding.cs
- SmiTypedGetterSetter.cs
- ByteRangeDownloader.cs
- JournalEntryListConverter.cs
- _NetRes.cs
- Shared.cs
- XPathNavigatorKeyComparer.cs
- MenuItem.cs
- ControlParameter.cs
- Size.cs
- AsyncStreamReader.cs
- ScriptRegistrationManager.cs
- ColumnClickEvent.cs
- RowTypePropertyElement.cs
- WindowsFont.cs
- CompiledQuery.cs
- CompilerState.cs
- QilInvokeLateBound.cs
- Control.cs
- HostProtectionException.cs
- OraclePermissionAttribute.cs
- XsltInput.cs
- WhitespaceRuleReader.cs
- NamespaceDisplayAutomationPeer.cs
- IsolatedStorage.cs
- Group.cs
- InternalConfigRoot.cs
- SqlConnectionHelper.cs
- MouseEvent.cs
- ProfileGroupSettings.cs
- MailMessageEventArgs.cs
- Classification.cs
- FlowThrottle.cs
- NumericUpDown.cs
- TextCompositionEventArgs.cs
- BidOverLoads.cs
- ECDiffieHellman.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ParameterCollection.cs
- ServiceContractViewControl.cs
- FontDriver.cs
- InvokePatternIdentifiers.cs
- Timer.cs
- ProcessModule.cs
- GeneratedView.cs
- OdbcConnectionPoolProviderInfo.cs
- DialogResultConverter.cs
- ControlOperationInvoker.cs
- ServiceX509SecurityTokenProvider.cs
- KeyEvent.cs
- OneOfScalarConst.cs
- CurrentChangingEventManager.cs
- EventLogQuery.cs
- ListDictionary.cs
- DiffuseMaterial.cs
- PageParser.cs
- SystemColors.cs
- WebBrowserDocumentCompletedEventHandler.cs