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
- CodeThrowExceptionStatement.cs
- DisposableCollectionWrapper.cs
- MarkupCompiler.cs
- SwitchLevelAttribute.cs
- QueryOperationResponseOfT.cs
- WindowsListViewItemCheckBox.cs
- BulletedList.cs
- EditingCoordinator.cs
- XsltException.cs
- DBSqlParserTableCollection.cs
- TextReader.cs
- keycontainerpermission.cs
- MainMenu.cs
- SqlRetyper.cs
- BasicExpandProvider.cs
- TreeViewCancelEvent.cs
- DefinitionUpdate.cs
- SHA1CryptoServiceProvider.cs
- Int32Converter.cs
- DataGridCellClipboardEventArgs.cs
- HtmlWindow.cs
- RegisteredScript.cs
- Int32KeyFrameCollection.cs
- DbProviderFactories.cs
- SafeNativeMethods.cs
- PropertyPathWorker.cs
- TemplatedAdorner.cs
- RootProfilePropertySettingsCollection.cs
- PrinterSettings.cs
- XmlReaderSettings.cs
- MyContact.cs
- streamingZipPartStream.cs
- FixedMaxHeap.cs
- MonthCalendar.cs
- Vector3DConverter.cs
- AutoGeneratedField.cs
- TTSVoice.cs
- AssemblyBuilder.cs
- ConnectionsZoneDesigner.cs
- UniqueIdentifierService.cs
- WindowsListViewGroupHelper.cs
- UniqueID.cs
- QilLiteral.cs
- TextPattern.cs
- LinqDataSourceStatusEventArgs.cs
- _AutoWebProxyScriptEngine.cs
- Atom10FeedFormatter.cs
- FlowLayoutPanel.cs
- CompilerGlobalScopeAttribute.cs
- EventLogPermission.cs
- SecurityContext.cs
- DomainConstraint.cs
- UnauthorizedWebPart.cs
- DataGridViewColumnEventArgs.cs
- lengthconverter.cs
- ObjectDataSourceMethodEventArgs.cs
- ContextMenuService.cs
- ISessionStateStore.cs
- EventSinkActivity.cs
- PropertyEntry.cs
- HttpBrowserCapabilitiesWrapper.cs
- connectionpool.cs
- IPGlobalProperties.cs
- DnsPermission.cs
- CodeTypeParameterCollection.cs
- ProfileService.cs
- precedingquery.cs
- PersistChildrenAttribute.cs
- GenericPrincipal.cs
- DBBindings.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- UriPrefixTable.cs
- CompilerScopeManager.cs
- ADMembershipUser.cs
- GetPageCompletedEventArgs.cs
- DefaultProxySection.cs
- ListViewAutomationPeer.cs
- HTMLTextWriter.cs
- ArrayWithOffset.cs
- ApplicationException.cs
- HighlightComponent.cs
- HtmlInputButton.cs
- DiagnosticsConfigurationHandler.cs
- StylusButtonCollection.cs
- Transform3D.cs
- HttpChannelListener.cs
- HttpVersion.cs
- SqlBulkCopyColumnMapping.cs
- shaperfactoryquerycacheentry.cs
- SectionVisual.cs
- FloaterBaseParaClient.cs
- WindowsButton.cs
- ReferencedCollectionType.cs
- dataobject.cs
- DataGridColumnHeaderCollection.cs
- TextBreakpoint.cs
- ServicePointManager.cs
- MeasurementDCInfo.cs
- WindowsFormsSynchronizationContext.cs
- ManifestResourceInfo.cs