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
- ProbeMatchesCD1.cs
- SyndicationPerson.cs
- HyperLinkField.cs
- Soap12ProtocolImporter.cs
- FormView.cs
- XmlSchemaAll.cs
- ShadowGlyph.cs
- JsonFormatMapping.cs
- TextTreeTextBlock.cs
- WebPartDescription.cs
- DataGridViewCellParsingEventArgs.cs
- ViewCellRelation.cs
- TransformerTypeCollection.cs
- SortedList.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- SymbolPair.cs
- SelectionProcessor.cs
- IfJoinedCondition.cs
- AsymmetricSignatureFormatter.cs
- SurrogateChar.cs
- DataBoundControlHelper.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- XmlSchemaDatatype.cs
- BasicBrowserDialog.designer.cs
- KeyValuePair.cs
- LinkGrep.cs
- UrlMapping.cs
- NumericExpr.cs
- QueueAccessMode.cs
- ScriptMethodAttribute.cs
- ExpressionCopier.cs
- ObjectTag.cs
- CompilerWrapper.cs
- ButtonStandardAdapter.cs
- ContextMarshalException.cs
- ExtenderProvidedPropertyAttribute.cs
- RegexWriter.cs
- ComboBoxAutomationPeer.cs
- TreeNodeCollection.cs
- SqlStatistics.cs
- ArrayExtension.cs
- LinqDataSourceView.cs
- DBSqlParserColumn.cs
- LocalFileSettingsProvider.cs
- MgmtResManager.cs
- MetafileHeaderWmf.cs
- ItemContainerProviderWrapper.cs
- LeaseManager.cs
- PrintControllerWithStatusDialog.cs
- MetafileHeader.cs
- Line.cs
- DataGridViewCellValueEventArgs.cs
- ConfigViewGenerator.cs
- TimeZone.cs
- Set.cs
- GenericWebPart.cs
- GacUtil.cs
- VariantWrapper.cs
- HandlerFactoryWrapper.cs
- Literal.cs
- AuthenticateEventArgs.cs
- NativeMethods.cs
- BitmapEffectInput.cs
- GenericTextProperties.cs
- FontCacheUtil.cs
- GatewayDefinition.cs
- XmlQuerySequence.cs
- XXXOnTypeBuilderInstantiation.cs
- documentsequencetextpointer.cs
- WebFormDesignerActionService.cs
- ToolbarAUtomationPeer.cs
- BitmapMetadataEnumerator.cs
- SymbolTable.cs
- Material.cs
- TextContainer.cs
- EdmComplexPropertyAttribute.cs
- ListDictionaryInternal.cs
- InlinedAggregationOperator.cs
- MappingModelBuildProvider.cs
- Constants.cs
- KeyValueInternalCollection.cs
- DependencyObjectValidator.cs
- NestedContainer.cs
- Script.cs
- IISUnsafeMethods.cs
- ColumnMap.cs
- SerializationHelper.cs
- UpdateManifestForBrowserApplication.cs
- BackStopAuthenticationModule.cs
- IPipelineRuntime.cs
- ToolStripLocationCancelEventArgs.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- CodeArrayCreateExpression.cs
- Cloud.cs
- WorkflowServiceNamespace.cs
- BuiltInPermissionSets.cs
- IdentitySection.cs
- FlowPanelDesigner.cs
- TabControlEvent.cs
- QilStrConcat.cs