Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlWindowCollection.cs
- ToolStripComboBox.cs
- ColumnWidthChangedEvent.cs
- FlagsAttribute.cs
- TextDecorationCollection.cs
- ResourcePermissionBaseEntry.cs
- UICuesEvent.cs
- ToolStripMenuItem.cs
- AuditLevel.cs
- TextLine.cs
- ThemeInfoAttribute.cs
- ListDictionary.cs
- HandlerFactoryWrapper.cs
- PerspectiveCamera.cs
- WindowsAltTab.cs
- ScalarType.cs
- HttpClientChannel.cs
- FileChangesMonitor.cs
- MatrixAnimationUsingPath.cs
- DataGridViewImageColumn.cs
- AttachmentService.cs
- ChangeNode.cs
- DataGridViewCheckBoxColumn.cs
- isolationinterop.cs
- NumberSubstitution.cs
- XmlSchemaInclude.cs
- MenuItemBinding.cs
- InputLanguageManager.cs
- DependencyPropertyHelper.cs
- DockPanel.cs
- StylusDownEventArgs.cs
- DecimalConverter.cs
- PriorityItem.cs
- CreateUserWizardStep.cs
- EntityViewContainer.cs
- DebugView.cs
- Privilege.cs
- OracleConnectionString.cs
- DispatcherFrame.cs
- DrawingServices.cs
- Section.cs
- VersionPair.cs
- DelayedRegex.cs
- Version.cs
- RowsCopiedEventArgs.cs
- ImageClickEventArgs.cs
- ReliabilityContractAttribute.cs
- ClientRoleProvider.cs
- ProcessModule.cs
- MailWebEventProvider.cs
- ScriptResourceAttribute.cs
- CacheVirtualItemsEvent.cs
- AliasedSlot.cs
- VBIdentifierDesigner.xaml.cs
- TheQuery.cs
- WebPartPersonalization.cs
- AppliesToBehaviorDecisionTable.cs
- WindowsRebar.cs
- SchemaComplexType.cs
- XmlWellformedWriter.cs
- PersistenceProviderElement.cs
- ToolStripDropTargetManager.cs
- ResourceSet.cs
- CompilerWrapper.cs
- nulltextnavigator.cs
- CanonicalXml.cs
- WeakReferenceEnumerator.cs
- LiteralTextContainerControlBuilder.cs
- XmlBindingWorker.cs
- TableCell.cs
- MatchingStyle.cs
- QuadraticBezierSegment.cs
- FunctionMappingTranslator.cs
- WebPartVerbsEventArgs.cs
- RemotingAttributes.cs
- TextRenderer.cs
- DataGridAddNewRow.cs
- QilFunction.cs
- CodeTypeDeclarationCollection.cs
- QueueTransferProtocol.cs
- XamlWriter.cs
- ContentHostHelper.cs
- DocumentOrderQuery.cs
- JsonMessageEncoderFactory.cs
- Hashtable.cs
- coordinator.cs
- PieceNameHelper.cs
- SoapSchemaMember.cs
- MessageDecoder.cs
- QuaternionRotation3D.cs
- EncoderExceptionFallback.cs
- XhtmlBasicImageAdapter.cs
- DataGridPageChangedEventArgs.cs
- LogRestartAreaEnumerator.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- DbConnectionHelper.cs
- DbParameterCollectionHelper.cs
- SplitterEvent.cs
- SplineKeyFrames.cs
- QueryableDataSourceEditData.cs