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
- CodeSnippetStatement.cs
- PictureBox.cs
- unitconverter.cs
- PropertyPushdownHelper.cs
- WindowsGrip.cs
- AccessKeyManager.cs
- WebBrowserEvent.cs
- TreeBuilder.cs
- SortKey.cs
- InheritedPropertyChangedEventArgs.cs
- TextTreePropertyUndoUnit.cs
- MultiView.cs
- XmlMapping.cs
- StickyNoteHelper.cs
- ContentWrapperAttribute.cs
- _AcceptOverlappedAsyncResult.cs
- OracleException.cs
- GACMembershipCondition.cs
- DataTableClearEvent.cs
- Propagator.cs
- CompressedStack.cs
- MeasureData.cs
- ProviderManager.cs
- Vector3D.cs
- CuspData.cs
- InternalBufferOverflowException.cs
- TabControlEvent.cs
- SequenceRange.cs
- Missing.cs
- StructuredTypeInfo.cs
- WebDescriptionAttribute.cs
- FieldNameLookup.cs
- TextBoxDesigner.cs
- MenuItemBindingCollection.cs
- BindableTemplateBuilder.cs
- UIPropertyMetadata.cs
- XmlTextReaderImplHelpers.cs
- QueryResult.cs
- XsdBuilder.cs
- HtmlEncodedRawTextWriter.cs
- log.cs
- UndirectedGraph.cs
- PreviewKeyDownEventArgs.cs
- PermissionListSet.cs
- NetworkStream.cs
- KeyedCollection.cs
- FlowDocumentPaginator.cs
- RepeatButton.cs
- DocumentCollection.cs
- UtilityExtension.cs
- CustomSignedXml.cs
- SqlMetaData.cs
- ColorBlend.cs
- Point.cs
- StylusPoint.cs
- GeometryCombineModeValidation.cs
- FullTextState.cs
- CompressStream.cs
- IntegrationExceptionEventArgs.cs
- FilterException.cs
- NavigatingCancelEventArgs.cs
- ContentElementAutomationPeer.cs
- XPathDocumentBuilder.cs
- OLEDB_Enum.cs
- ProcessHostFactoryHelper.cs
- TrackBarRenderer.cs
- MasterPage.cs
- clipboard.cs
- DeferredElementTreeState.cs
- StateValidator.cs
- RemotingException.cs
- DataGridViewComboBoxColumn.cs
- WebPartMenuStyle.cs
- EncodingInfo.cs
- PersonalizationStateQuery.cs
- DataGridViewCellPaintingEventArgs.cs
- UnmanagedBitmapWrapper.cs
- WebPartDisplayModeEventArgs.cs
- EventDescriptorCollection.cs
- SoapSchemaExporter.cs
- __ComObject.cs
- EqualityComparer.cs
- XmlEntity.cs
- Control.cs
- MinimizableAttributeTypeConverter.cs
- VisualCollection.cs
- ProtectedProviderSettings.cs
- _Connection.cs
- CapabilitiesPattern.cs
- Int16Converter.cs
- MsmqInputChannel.cs
- WebServiceParameterData.cs
- ComponentCommands.cs
- TraversalRequest.cs
- __Error.cs
- MetafileHeaderWmf.cs
- GridViewSelectEventArgs.cs
- XPathExpr.cs
- BufferModeSettings.cs
- webeventbuffer.cs