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
- BrowserCapabilitiesCodeGenerator.cs
- SqlCacheDependencyDatabaseCollection.cs
- TraceContextRecord.cs
- ClientTargetCollection.cs
- SQLDateTime.cs
- CreatingCookieEventArgs.cs
- HwndKeyboardInputProvider.cs
- IdentityHolder.cs
- DataGridViewRowPostPaintEventArgs.cs
- JpegBitmapDecoder.cs
- TextContainerChangedEventArgs.cs
- DiagnosticsConfiguration.cs
- HashCoreRequest.cs
- CompressionTracing.cs
- OptimizedTemplateContent.cs
- EdmToObjectNamespaceMap.cs
- ParameterEditorUserControl.cs
- CodeCommentStatement.cs
- XslNumber.cs
- TdsParameterSetter.cs
- DynamicObjectAccessor.cs
- SoapClientProtocol.cs
- EmptyElement.cs
- SqlBulkCopyColumnMapping.cs
- PropertyTabChangedEvent.cs
- namescope.cs
- DetailsViewActionList.cs
- HttpResponseInternalBase.cs
- IdentityReference.cs
- ViewStateModeByIdAttribute.cs
- CompoundFileStreamReference.cs
- SoundPlayerAction.cs
- TextTreePropertyUndoUnit.cs
- SiteMapNodeCollection.cs
- Maps.cs
- ImageSource.cs
- NativeMethodsOther.cs
- UInt64Converter.cs
- XmlDeclaration.cs
- Filter.cs
- ActionNotSupportedException.cs
- CookieParameter.cs
- WindowsProgressbar.cs
- VoiceSynthesis.cs
- KeyGestureConverter.cs
- DataGridViewRowPrePaintEventArgs.cs
- XmlDocumentFragment.cs
- GenericUriParser.cs
- PageThemeBuildProvider.cs
- PropertyIDSet.cs
- QuadraticBezierSegment.cs
- ItemAutomationPeer.cs
- DBDataPermission.cs
- ReadOnlyObservableCollection.cs
- ConnectionProviderAttribute.cs
- HttpStaticObjectsCollectionWrapper.cs
- ApplicationSecurityInfo.cs
- WeakReference.cs
- MergeFilterQuery.cs
- NativeMethods.cs
- DrawingVisual.cs
- HttpCacheVary.cs
- PageContentAsyncResult.cs
- EnumValAlphaComparer.cs
- XmlTypeMapping.cs
- SignedXml.cs
- StructuralType.cs
- Lookup.cs
- NavigateEvent.cs
- ChannelEndpointElementCollection.cs
- infer.cs
- CaseInsensitiveOrdinalStringComparer.cs
- OutputCacheModule.cs
- BooleanSwitch.cs
- AttributeProviderAttribute.cs
- NonVisualControlAttribute.cs
- TableParagraph.cs
- ObjectParameter.cs
- PageCodeDomTreeGenerator.cs
- MTConfigUtil.cs
- SqlConnectionHelper.cs
- FileDialogCustomPlace.cs
- RecordsAffectedEventArgs.cs
- BuildResultCache.cs
- WebPartConnectionsDisconnectVerb.cs
- Compiler.cs
- Point3D.cs
- IsolatedStoragePermission.cs
- UrlPropertyAttribute.cs
- BitmapEffectInput.cs
- LayoutSettings.cs
- SoapSchemaImporter.cs
- Transactions.cs
- RelationshipDetailsRow.cs
- BrowserCapabilitiesFactory.cs
- RegexWorker.cs
- Int32Converter.cs
- CodeDomComponentSerializationService.cs
- SectionVisual.cs
- FontSource.cs