Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / shaperfactory.cs / 1 / shaperfactory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // 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
- AdRotator.cs
- SystemIcons.cs
- Verify.cs
- LicenseContext.cs
- ReferenceAssemblyAttribute.cs
- ClipboardData.cs
- SafeFileMappingHandle.cs
- DataService.cs
- RegistrationServices.cs
- AtomicFile.cs
- HtmlHistory.cs
- MultipleViewPattern.cs
- DataRecord.cs
- BaseCollection.cs
- StringValueSerializer.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- SQLBinaryStorage.cs
- HtmlUtf8RawTextWriter.cs
- GridToolTip.cs
- ItemCheckedEvent.cs
- PersonalizationStateQuery.cs
- ExpressionPrefixAttribute.cs
- AnnotationService.cs
- CalendarDayButton.cs
- DaylightTime.cs
- FloaterParagraph.cs
- ObjectNotFoundException.cs
- Parameter.cs
- BigIntegerStorage.cs
- FixedSOMPageConstructor.cs
- DateTimeFormatInfoScanner.cs
- InternalTypeHelper.cs
- BamlVersionHeader.cs
- TreeViewHitTestInfo.cs
- SemanticResultKey.cs
- SerializationObjectManager.cs
- ContractBase.cs
- PerfCounterSection.cs
- SequentialUshortCollection.cs
- UnmanagedMemoryStream.cs
- StateItem.cs
- IisTraceWebEventProvider.cs
- ParseNumbers.cs
- BoundingRectTracker.cs
- StaticTextPointer.cs
- RegexNode.cs
- BamlRecordWriter.cs
- OracleConnectionFactory.cs
- EditorBrowsableAttribute.cs
- DataRecord.cs
- CapabilitiesAssignment.cs
- CustomAttributeBuilder.cs
- backend.cs
- XmlDataDocument.cs
- SizeFConverter.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- IndexedEnumerable.cs
- Panel.cs
- OutputCacheSettings.cs
- CodeSnippetCompileUnit.cs
- CroppedBitmap.cs
- CryptoHandle.cs
- PriorityQueue.cs
- ToolboxDataAttribute.cs
- Bits.cs
- CallbackValidatorAttribute.cs
- DecryptRequest.cs
- RemoteWebConfigurationHostServer.cs
- FontInfo.cs
- relpropertyhelper.cs
- StylusPlugInCollection.cs
- DesigntimeLicenseContextSerializer.cs
- PersonalizationStateInfo.cs
- CodeAttributeDeclarationCollection.cs
- DependencyObjectType.cs
- WinFormsComponentEditor.cs
- NamedPipeConnectionPool.cs
- AttributedMetaModel.cs
- DataGridItemCollection.cs
- AnnotationStore.cs
- AppliedDeviceFiltersDialog.cs
- ServicePoint.cs
- SqlDuplicator.cs
- Table.cs
- ObjectResult.cs
- PageVisual.cs
- HttpChannelBindingToken.cs
- QuaternionRotation3D.cs
- EditableRegion.cs
- OSEnvironmentHelper.cs
- PagesSection.cs
- PrimitiveType.cs
- MultiView.cs
- XmlCDATASection.cs
- StrongNameIdentityPermission.cs
- HttpContext.cs
- ConfigXmlSignificantWhitespace.cs
- XmlSchemaGroup.cs
- DataAdapter.cs
- RectangleGeometry.cs