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
- DeviceContext2.cs
- Triangle.cs
- PropertyEntry.cs
- XmlNamespaceMapping.cs
- IConvertible.cs
- FormClosingEvent.cs
- StatusCommandUI.cs
- EntityWrapper.cs
- SafeNativeMethods.cs
- XmlUrlEditor.cs
- RectValueSerializer.cs
- TrackingProfileDeserializationException.cs
- IpcChannelHelper.cs
- WebEvents.cs
- SoapAttributeOverrides.cs
- DataTemplateKey.cs
- PhysicalAddress.cs
- ParallelTimeline.cs
- AbstractSvcMapFileLoader.cs
- VoiceChangeEventArgs.cs
- ObjectAnimationUsingKeyFrames.cs
- IndexerNameAttribute.cs
- RelatedImageListAttribute.cs
- SqlDataSourceFilteringEventArgs.cs
- ContextStaticAttribute.cs
- XDRSchema.cs
- SrgsSemanticInterpretationTag.cs
- PassportAuthentication.cs
- DataBindingHandlerAttribute.cs
- DrawingContextWalker.cs
- XamlBuildTaskServices.cs
- HtmlEncodedRawTextWriter.cs
- RuntimeConfigurationRecord.cs
- IdnElement.cs
- MarshalByValueComponent.cs
- RequestCachingSection.cs
- BinaryWriter.cs
- LowerCaseStringConverter.cs
- WithParamAction.cs
- CheckBoxField.cs
- Mutex.cs
- PostBackOptions.cs
- Vector.cs
- VerificationAttribute.cs
- SerializableAttribute.cs
- Int64Storage.cs
- SerialStream.cs
- Interop.cs
- HeaderElement.cs
- Guid.cs
- Page.cs
- Span.cs
- FontCacheUtil.cs
- PenThreadPool.cs
- GACMembershipCondition.cs
- PointConverter.cs
- GroupItem.cs
- COSERVERINFO.cs
- IgnoreFileBuildProvider.cs
- ResXFileRef.cs
- NativeRightsManagementAPIsStructures.cs
- XsdDuration.cs
- SolidColorBrush.cs
- SemanticResultKey.cs
- PartialList.cs
- Event.cs
- WebBrowserNavigatedEventHandler.cs
- DropShadowEffect.cs
- SchemaComplexType.cs
- DataMemberFieldConverter.cs
- ListViewInsertEventArgs.cs
- VerificationException.cs
- UpdatePanelTrigger.cs
- HttpConfigurationSystem.cs
- WinEventTracker.cs
- ContainerAction.cs
- CodeExpressionRuleDeclaration.cs
- MultipartContentParser.cs
- IntSecurity.cs
- XmlAttribute.cs
- PathSegment.cs
- AsyncOperationManager.cs
- WmlLiteralTextAdapter.cs
- QuarticEase.cs
- RevocationPoint.cs
- TextSpan.cs
- UriTemplateDispatchFormatter.cs
- GradientStopCollection.cs
- COSERVERINFO.cs
- ReferenceSchema.cs
- mediapermission.cs
- WorkflowMarkupSerializationProvider.cs
- ZipFileInfoCollection.cs
- BooleanAnimationBase.cs
- HtmlLink.cs
- ObjectReaderCompiler.cs
- ObjectTag.cs
- uribuilder.cs
- RankException.cs
- FormViewUpdateEventArgs.cs