Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Utils / ExternalCalls.cs / 1305376 / ExternalCalls.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Mapping.ViewGeneration.Structures; using System.Data.Common; using System.Data.Common.CommandTrees; using System.Data.Common.CommandTrees.ExpressionBuilder; using System.Data.Common.EntitySql; using System.Data.Common.Utils; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Collections.Generic; using System.Linq; namespace System.Data.Mapping.ViewGeneration.Utils { // This class encapsulates "external" calls from view/UDF generation // to other System.Data.Entity features internal static class ExternalCalls { static internal bool IsReservedKeyword(string name) { return CqlLexer.IsReservedKeyword(name); } static internal DbCommandTree CompileView( string viewDef, StorageMappingItemCollection mappingItemCollection, ParserOptions.CompilationMode compilationMode) { Debug.Assert(!String.IsNullOrEmpty(viewDef), "!String.IsNullOrEmpty(viewDef)"); Debug.Assert(mappingItemCollection != null, "mappingItemCollection != null"); Debug.Assert(mappingItemCollection.EdmItemCollection != null, "mappingItemCollection.EdmItemCollection != null"); Debug.Assert(mappingItemCollection.StoreItemCollection != null, "mappingItemCollection.StoreItemCollection != null"); MetadataWorkspace workspace = new MetadataWorkspace(); workspace.RegisterItemCollection(mappingItemCollection.EdmItemCollection); workspace.RegisterItemCollection(mappingItemCollection.StoreItemCollection); workspace.RegisterItemCollection(mappingItemCollection); Perspective perspective = new TargetPerspective(workspace); ParserOptions parserOptions = new ParserOptions(); parserOptions.ParserCompilationMode = compilationMode; DbCommandTree expr = CqlQuery.Compile(viewDef, perspective, parserOptions, null); Debug.Assert(expr != null, "Compile returned empty tree?"); return expr; } ////// Compiles eSQL static internal DbLambda CompileFunctionDefinition( string functionFullName, string functionDefinition, IListand returns . /// Guarantees type match of lambda variables and . /// Passes thru all excepions coming from . /// functionParameters, EdmItemCollection edmItemCollection) { Debug.Assert(!String.IsNullOrEmpty(functionFullName), "!String.IsNullOrEmpty(functionFullName)"); Debug.Assert(!String.IsNullOrEmpty(functionDefinition), "!String.IsNullOrEmpty(functionDefinition)"); Debug.Assert(functionParameters != null, "functionParameters != null"); Debug.Assert(edmItemCollection != null, "edmItemCollection != null"); MetadataWorkspace workspace = new MetadataWorkspace(); workspace.RegisterItemCollection(edmItemCollection); Perspective perspective = new ModelPerspective(workspace); // Since we compile lambda expression and generate variables from the function parameter definitions, // the returned DbLambda will contain variable types that match function parameter types. DbLambda functionBody = CqlQuery.CompileQueryCommandLambda( functionDefinition, perspective, null /* use default parser options */, null /* parameters */, functionParameters.Select(pInfo => pInfo.TypeUsage.Variable(pInfo.Name))); Debug.Assert(functionBody != null, "functionBody != null"); return functionBody; } static internal ItemCollection GetItemCollection(MetadataWorkspace workspace, DataSpace space) { return workspace.GetItemCollection(space); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Mapping.ViewGeneration.Structures; using System.Data.Common; using System.Data.Common.CommandTrees; using System.Data.Common.CommandTrees.ExpressionBuilder; using System.Data.Common.EntitySql; using System.Data.Common.Utils; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Collections.Generic; using System.Linq; namespace System.Data.Mapping.ViewGeneration.Utils { // This class encapsulates "external" calls from view/UDF generation // to other System.Data.Entity features internal static class ExternalCalls { static internal bool IsReservedKeyword(string name) { return CqlLexer.IsReservedKeyword(name); } static internal DbCommandTree CompileView( string viewDef, StorageMappingItemCollection mappingItemCollection, ParserOptions.CompilationMode compilationMode) { Debug.Assert(!String.IsNullOrEmpty(viewDef), "!String.IsNullOrEmpty(viewDef)"); Debug.Assert(mappingItemCollection != null, "mappingItemCollection != null"); Debug.Assert(mappingItemCollection.EdmItemCollection != null, "mappingItemCollection.EdmItemCollection != null"); Debug.Assert(mappingItemCollection.StoreItemCollection != null, "mappingItemCollection.StoreItemCollection != null"); MetadataWorkspace workspace = new MetadataWorkspace(); workspace.RegisterItemCollection(mappingItemCollection.EdmItemCollection); workspace.RegisterItemCollection(mappingItemCollection.StoreItemCollection); workspace.RegisterItemCollection(mappingItemCollection); Perspective perspective = new TargetPerspective(workspace); ParserOptions parserOptions = new ParserOptions(); parserOptions.ParserCompilationMode = compilationMode; DbCommandTree expr = CqlQuery.Compile(viewDef, perspective, parserOptions, null); Debug.Assert(expr != null, "Compile returned empty tree?"); return expr; } ////// Compiles eSQL static internal DbLambda CompileFunctionDefinition( string functionFullName, string functionDefinition, IListand returns . /// Guarantees type match of lambda variables and . /// Passes thru all excepions coming from . /// functionParameters, EdmItemCollection edmItemCollection) { Debug.Assert(!String.IsNullOrEmpty(functionFullName), "!String.IsNullOrEmpty(functionFullName)"); Debug.Assert(!String.IsNullOrEmpty(functionDefinition), "!String.IsNullOrEmpty(functionDefinition)"); Debug.Assert(functionParameters != null, "functionParameters != null"); Debug.Assert(edmItemCollection != null, "edmItemCollection != null"); MetadataWorkspace workspace = new MetadataWorkspace(); workspace.RegisterItemCollection(edmItemCollection); Perspective perspective = new ModelPerspective(workspace); // Since we compile lambda expression and generate variables from the function parameter definitions, // the returned DbLambda will contain variable types that match function parameter types. DbLambda functionBody = CqlQuery.CompileQueryCommandLambda( functionDefinition, perspective, null /* use default parser options */, null /* parameters */, functionParameters.Select(pInfo => pInfo.TypeUsage.Variable(pInfo.Name))); Debug.Assert(functionBody != null, "functionBody != null"); return functionBody; } static internal ItemCollection GetItemCollection(MetadataWorkspace workspace, DataSpace space) { return workspace.GetItemCollection(space); } } } // 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
- Int16AnimationUsingKeyFrames.cs
- WebPartConnectVerb.cs
- OdbcRowUpdatingEvent.cs
- ToolStripOverflow.cs
- SpinLock.cs
- CharUnicodeInfo.cs
- MetaColumn.cs
- SpellerStatusTable.cs
- UnsafeNativeMethods.cs
- DataControlImageButton.cs
- ExpandCollapsePattern.cs
- Int16AnimationUsingKeyFrames.cs
- WindowsPen.cs
- WindowAutomationPeer.cs
- OracleConnectionStringBuilder.cs
- ToolStripDropDownClosedEventArgs.cs
- StyleSheetRefUrlEditor.cs
- TagPrefixInfo.cs
- TargetControlTypeAttribute.cs
- SignatureGenerator.cs
- FileSecurity.cs
- SizeValueSerializer.cs
- Subset.cs
- SmiXetterAccessMap.cs
- _HTTPDateParse.cs
- StringComparer.cs
- SingleConverter.cs
- AutomationPropertyInfo.cs
- ObjectParameter.cs
- CommittableTransaction.cs
- BooleanStorage.cs
- ClientScriptManagerWrapper.cs
- XmlDataSource.cs
- Types.cs
- InvokeHandlers.cs
- OracleException.cs
- ErrorWrapper.cs
- FunctionNode.cs
- CngProperty.cs
- FileLogRecordEnumerator.cs
- EncoderParameter.cs
- CharStorage.cs
- StreamGeometryContext.cs
- TimeSpanStorage.cs
- AutomationAttributeInfo.cs
- ParallelTimeline.cs
- TransformGroup.cs
- TableCell.cs
- Application.cs
- SystemWebSectionGroup.cs
- QuaternionIndependentAnimationStorage.cs
- behaviorssection.cs
- SymbolDocumentGenerator.cs
- JavaScriptSerializer.cs
- CodeDomLocalizationProvider.cs
- ValidatingReaderNodeData.cs
- DataTableTypeConverter.cs
- XmlText.cs
- ColorAnimationBase.cs
- SystemResourceKey.cs
- SafeNativeMethodsMilCoreApi.cs
- XmlSchemaElement.cs
- rsa.cs
- AuthenticationConfig.cs
- EncryptedKey.cs
- PropertyGridDesigner.cs
- PeerInputChannelListener.cs
- DesignerDataTableBase.cs
- ServiceNameCollection.cs
- LinkLabelLinkClickedEvent.cs
- OutputCacheSettings.cs
- Queue.cs
- BitmapMetadataEnumerator.cs
- SortDescriptionCollection.cs
- MSAAEventDispatcher.cs
- XmlSchemaSimpleTypeUnion.cs
- XmlSchemaImport.cs
- IPAddressCollection.cs
- BrushProxy.cs
- DispatchChannelSink.cs
- EntityCommandExecutionException.cs
- BaseCollection.cs
- NGCUIElementCollectionSerializerAsync.cs
- InkCanvasSelection.cs
- ExpressionHelper.cs
- BasicAsyncResult.cs
- RelationshipNavigation.cs
- ComPlusTypeLoader.cs
- Hex.cs
- SqlRewriteScalarSubqueries.cs
- EntitySqlException.cs
- SystemThemeKey.cs
- ObjectDisposedException.cs
- SessionEndedEventArgs.cs
- Module.cs
- CodeAccessSecurityEngine.cs
- ApplicationActivator.cs
- PowerStatus.cs
- XsltConvert.cs
- FlowDocumentPage.cs