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
- NonBatchDirectoryCompiler.cs
- TextEditorSpelling.cs
- ContentDisposition.cs
- SQLSingleStorage.cs
- Control.cs
- SBCSCodePageEncoding.cs
- DataGridViewCellStyle.cs
- FileNotFoundException.cs
- OdbcEnvironment.cs
- __Error.cs
- FreeIndexList.cs
- ClientScriptManager.cs
- EditingMode.cs
- XmlElement.cs
- MobileListItemCollection.cs
- TransactionInformation.cs
- XamlSerializer.cs
- RepeaterItemEventArgs.cs
- ContactManager.cs
- Light.cs
- DescendentsWalkerBase.cs
- ToolStripPanelRow.cs
- AmbientValueAttribute.cs
- TimeSpanConverter.cs
- InputQueue.cs
- DataGridViewRow.cs
- DataControlButton.cs
- EntityRecordInfo.cs
- TraceListener.cs
- TypeInfo.cs
- TemplatedAdorner.cs
- PackagePartCollection.cs
- WorkflowRuntimeServiceElement.cs
- EventLogPermissionEntryCollection.cs
- CommandLineParser.cs
- ControlBuilderAttribute.cs
- HealthMonitoringSection.cs
- LoaderAllocator.cs
- ActivatedMessageQueue.cs
- WmlCalendarAdapter.cs
- DetailsViewDeleteEventArgs.cs
- ItemsControl.cs
- DesignerHost.cs
- DataGridTemplateColumn.cs
- ResolveResponseInfo.cs
- DataBoundControl.cs
- XamlWrapperReaders.cs
- MailWriter.cs
- DesignerWebPartChrome.cs
- MenuRendererClassic.cs
- RootBrowserWindowProxy.cs
- _IPv4Address.cs
- sqlmetadatafactory.cs
- CultureInfoConverter.cs
- _LoggingObject.cs
- MdiWindowListStrip.cs
- SmtpClient.cs
- QueryResponse.cs
- WsatServiceCertificate.cs
- AmbientLight.cs
- PageCatalogPart.cs
- ConvertEvent.cs
- DecimalAnimation.cs
- FilterableAttribute.cs
- EncryptedType.cs
- BitmapMetadataEnumerator.cs
- ObjectView.cs
- TdsParser.cs
- BufferedGraphics.cs
- ReflectionPermission.cs
- BevelBitmapEffect.cs
- NavigatorOutput.cs
- PersonalizationStateInfo.cs
- NamedPipeChannelFactory.cs
- EventLogTraceListener.cs
- ClientSettingsSection.cs
- FormView.cs
- WsatServiceCertificate.cs
- FrameworkElement.cs
- EntityDescriptor.cs
- PropertyEmitter.cs
- DateTimeOffsetStorage.cs
- Msec.cs
- AddInToken.cs
- MetadataAssemblyHelper.cs
- Track.cs
- OperationCanceledException.cs
- AssemblyHelper.cs
- FilePrompt.cs
- ImageKeyConverter.cs
- DesignerSerializationVisibilityAttribute.cs
- SelectiveScrollingGrid.cs
- ConnectionPoolRegistry.cs
- DataGridColumnHeaderAutomationPeer.cs
- StructuredTypeEmitter.cs
- XmlSchemaCollection.cs
- DrawingContext.cs
- RouteTable.cs
- DataGridViewButtonColumn.cs
- BamlTreeUpdater.cs