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
- ResourcePart.cs
- Number.cs
- EmulateRecognizeCompletedEventArgs.cs
- AnnotationService.cs
- UdpSocketReceiveManager.cs
- SchemaElementLookUpTableEnumerator.cs
- HighContrastHelper.cs
- SystemPens.cs
- Update.cs
- XmlNodeChangedEventArgs.cs
- TextBoxBaseDesigner.cs
- _AutoWebProxyScriptWrapper.cs
- ParameterBinding.cs
- TextControlDesigner.cs
- NativeMethods.cs
- InternalControlCollection.cs
- SmtpClient.cs
- FixedSOMPageElement.cs
- ProcessDesigner.cs
- ValidationRuleCollection.cs
- TagNameToTypeMapper.cs
- DataSourceXmlTextReader.cs
- TableParaClient.cs
- GiveFeedbackEvent.cs
- TabControl.cs
- StringUtil.cs
- OutOfProcStateClientManager.cs
- HttpConfigurationSystem.cs
- TextEmbeddedObject.cs
- XmlSchemaAnyAttribute.cs
- DiscoveryDocumentSearchPattern.cs
- ScriptResourceMapping.cs
- StandardOleMarshalObject.cs
- WebBrowserContainer.cs
- BuildProvider.cs
- DrawingAttributesDefaultValueFactory.cs
- Line.cs
- GridViewAutomationPeer.cs
- ProfileGroupSettings.cs
- TriggerCollection.cs
- InternalRelationshipCollection.cs
- XmlSchemaComplexContentRestriction.cs
- WindowsListViewScroll.cs
- TextRenderer.cs
- BindingCompleteEventArgs.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- querybuilder.cs
- Repeater.cs
- XmlAttributeCache.cs
- WebServiceErrorEvent.cs
- HandlerWithFactory.cs
- DataGridViewDataErrorEventArgs.cs
- EdmType.cs
- ParsedAttributeCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- CodeTypeConstructor.cs
- PolicyLevel.cs
- ExpressionsCollectionConverter.cs
- SymbolMethod.cs
- SafeWaitHandle.cs
- CheckableControlBaseAdapter.cs
- CodeMethodReturnStatement.cs
- RowToParametersTransformer.cs
- CompositeDataBoundControl.cs
- __ConsoleStream.cs
- NodeInfo.cs
- mil_commands.cs
- Trace.cs
- RadioButtonBaseAdapter.cs
- SearchExpression.cs
- CollectionViewGroupInternal.cs
- TouchEventArgs.cs
- LocalIdKeyIdentifierClause.cs
- PtsHost.cs
- WriteableBitmap.cs
- WSDualHttpBindingElement.cs
- DefaultSection.cs
- CompModSwitches.cs
- RC2.cs
- XmlNamespaceMapping.cs
- AssertHelper.cs
- DataListItemEventArgs.cs
- TypeTypeConverter.cs
- AttributeParameterInfo.cs
- FontInfo.cs
- WebConfigurationHostFileChange.cs
- RelationshipEndMember.cs
- MetadataUtilsSmi.cs
- IndicFontClient.cs
- Mapping.cs
- SearchForVirtualItemEventArgs.cs
- MappedMetaModel.cs
- ContentPresenter.cs
- GACMembershipCondition.cs
- DataObject.cs
- AspCompat.cs
- TextBox.cs
- ProviderConnectionPoint.cs
- LinearGradientBrush.cs
- DebugView.cs