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
- AttributeInfo.cs
- ListViewTableRow.cs
- SlipBehavior.cs
- ConstraintCollection.cs
- ParagraphResult.cs
- ErrorReporting.cs
- XmlCompatibilityReader.cs
- XmlSerializerSection.cs
- WebPartConnectVerb.cs
- TransformerInfo.cs
- ClassData.cs
- Enum.cs
- DataService.cs
- BuiltInExpr.cs
- Attachment.cs
- HiddenFieldPageStatePersister.cs
- TreeNodeConverter.cs
- Vector3DCollectionConverter.cs
- RotationValidation.cs
- IdentitySection.cs
- ControlPropertyNameConverter.cs
- Matrix3DValueSerializer.cs
- PointConverter.cs
- HotCommands.cs
- Exceptions.cs
- Script.cs
- ConfigurationElementProperty.cs
- AsyncResult.cs
- SplineKeyFrames.cs
- TextParaLineResult.cs
- DataGridViewRowEventArgs.cs
- IfAction.cs
- XmlIlTypeHelper.cs
- NativeMethodsCLR.cs
- UnsettableComboBox.cs
- AxHostDesigner.cs
- GridViewDesigner.cs
- ValueConversionAttribute.cs
- SortKey.cs
- Win32.cs
- _SSPISessionCache.cs
- InvokeWebServiceDesigner.cs
- DnsPermission.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- Timer.cs
- tooltip.cs
- XsdBuildProvider.cs
- XamlToRtfParser.cs
- PointKeyFrameCollection.cs
- DataAdapter.cs
- UserControlCodeDomTreeGenerator.cs
- RegexCaptureCollection.cs
- GcHandle.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- WebPartCloseVerb.cs
- Overlapped.cs
- ProfileSection.cs
- DataGridViewElement.cs
- Attributes.cs
- JavaScriptSerializer.cs
- ClientConvert.cs
- OleDbRowUpdatingEvent.cs
- TrackingDataItem.cs
- DesignerActionGlyph.cs
- EntityCommandCompilationException.cs
- WpfWebRequestHelper.cs
- InstallerTypeAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- WindowsListViewSubItem.cs
- LineMetrics.cs
- PriorityBinding.cs
- PathFigure.cs
- TokenBasedSetEnumerator.cs
- TraceHwndHost.cs
- ITextView.cs
- DecimalConverter.cs
- AuthenticationService.cs
- SelectiveScrollingGrid.cs
- StrokeRenderer.cs
- LinqDataSourceView.cs
- DeploymentExceptionMapper.cs
- SystemWebExtensionsSectionGroup.cs
- EntityChangedParams.cs
- ListBox.cs
- ExceptionWrapper.cs
- MachinePropertyVariants.cs
- StackSpiller.Temps.cs
- TabletDeviceInfo.cs
- EntityAdapter.cs
- IsolatedStorageFile.cs
- DataGridViewRow.cs
- DataGridBeginningEditEventArgs.cs
- BitStream.cs
- IriParsingElement.cs
- MainMenu.cs
- GridViewCancelEditEventArgs.cs
- DataControlImageButton.cs
- ImageDrawing.cs
- InvalidFilterCriteriaException.cs
- dsa.cs