Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / util.cs / 1305376 / util.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Data.Metadata.Edm; using System.Data.Mapping; namespace System.Data.Common.Internal.Materialization { static class Util { ////// Retrieves a mapping to CLR type for the given EDM type. Assumes the MetadataWorkspace has no /// internal static ObjectTypeMapping GetObjectMapping(EdmType type, MetadataWorkspace workspace) { // Check if the workspace has cspace item collection registered with it. If not, then its a case // of public materializer trying to create objects from PODR or EntityDataReader with no context. ItemCollection collection; if (workspace.TryGetItemCollection(DataSpace.CSpace, out collection)) { return (ObjectTypeMapping)workspace.GetMap(type, DataSpace.OCSpace); } else { EdmType ospaceType; EdmType cspaceType; // If its a case of EntityDataReader with no context, the typeUsage which is passed in must contain // a cspace type. We need to look up an OSpace type in the ospace item collection and then create // ocMapping if (type.DataSpace == DataSpace.CSpace) { // if its a primitive type, then the names will be different for CSpace type and OSpace type if (Helper.IsPrimitiveType(type)) { ospaceType = workspace.GetMappedPrimitiveType(((PrimitiveType)type).PrimitiveTypeKind, DataSpace.OSpace); } else { // Metadata will throw if there is no item with this identity present. // Is this exception fine or does object materializer code wants to wrap and throw a new exception ospaceType = workspace.GetItem(type.FullName, DataSpace.OSpace); } cspaceType = type; } else { // In case of PODR, there is no cspace at all. We must create a fake ocmapping, with ospace types // on both the ends ospaceType = type; cspaceType = type; } // This condition must be hit only when someone is trying to materialize a legacy data reader and we // don't have the CSpace metadata. if (!Helper.IsPrimitiveType(ospaceType) && !Helper.IsEntityType(ospaceType) && !Helper.IsComplexType(ospaceType)) { throw EntityUtil.MaterializerUnsupportedType(); } ObjectTypeMapping typeMapping; if (Helper.IsPrimitiveType(ospaceType)) { typeMapping = new ObjectTypeMapping(ospaceType, cspaceType); } else { typeMapping = DefaultObjectMappingItemCollection.LoadObjectMapping(cspaceType, ospaceType, null); } return typeMapping; } } } } // 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
- MessagingDescriptionAttribute.cs
- AsymmetricKeyExchangeFormatter.cs
- TypeConverterHelper.cs
- ActiveXSite.cs
- ScriptManager.cs
- CompositeKey.cs
- Debug.cs
- TextureBrush.cs
- KeyInstance.cs
- MinimizableAttributeTypeConverter.cs
- SoapClientMessage.cs
- BuildProvider.cs
- BindingMAnagerBase.cs
- mediaclock.cs
- ManagementNamedValueCollection.cs
- FloaterParagraph.cs
- JournalEntry.cs
- EndEvent.cs
- JavaScriptSerializer.cs
- Html32TextWriter.cs
- DataContractJsonSerializerOperationBehavior.cs
- MarginsConverter.cs
- PrinterSettings.cs
- SystemKeyConverter.cs
- SystemIPv4InterfaceProperties.cs
- CheckBoxField.cs
- RawKeyboardInputReport.cs
- RIPEMD160Managed.cs
- StoryFragments.cs
- NonSerializedAttribute.cs
- RawStylusSystemGestureInputReport.cs
- TileModeValidation.cs
- MemberAssignmentAnalysis.cs
- DataRelation.cs
- QuaternionConverter.cs
- UnaryNode.cs
- AsyncSerializedWorker.cs
- DoubleKeyFrameCollection.cs
- SoapFault.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- ResourcesBuildProvider.cs
- XmlLanguage.cs
- ObjectDataSourceStatusEventArgs.cs
- documentsequencetextview.cs
- SafeLocalAllocation.cs
- InputBinder.cs
- MinimizableAttributeTypeConverter.cs
- GridProviderWrapper.cs
- XmlSchemaElement.cs
- X509Utils.cs
- WinEventWrap.cs
- IIS7WorkerRequest.cs
- BitmapEffectDrawingContent.cs
- ClipboardData.cs
- CorruptingExceptionCommon.cs
- InvokeWebServiceDesigner.cs
- RoleManagerEventArgs.cs
- PixelFormatConverter.cs
- DataPager.cs
- Point.cs
- XmlUnspecifiedAttribute.cs
- Package.cs
- UpdatableGenericsFeature.cs
- WebPartPersonalization.cs
- MappedMetaModel.cs
- PropertyEntry.cs
- StructuredTypeInfo.cs
- CalendarDateRange.cs
- ObjectAssociationEndMapping.cs
- HttpWriter.cs
- TagMapInfo.cs
- MsmqIntegrationOutputChannel.cs
- ModuleConfigurationInfo.cs
- LogAppendAsyncResult.cs
- FileNotFoundException.cs
- SqlSelectClauseBuilder.cs
- BindingContext.cs
- SrgsItemList.cs
- CodeSnippetExpression.cs
- ProtectedConfiguration.cs
- TreeNodeCollectionEditorDialog.cs
- UseAttributeSetsAction.cs
- VisualStateChangedEventArgs.cs
- PropertyStore.cs
- EventNotify.cs
- CompositionTarget.cs
- NativeActivityMetadata.cs
- CommonXSendMessage.cs
- XamlSerializationHelper.cs
- ListViewGroupConverter.cs
- StateBag.cs
- SR.Designer.cs
- X509CertificateInitiatorServiceCredential.cs
- Stopwatch.cs
- LiteralControl.cs
- EndpointIdentityConverter.cs
- WindowsTitleBar.cs
- CorePropertiesFilter.cs
- TextRangeBase.cs
- XmlIlGenerator.cs