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
- FieldMetadata.cs
- CapabilitiesState.cs
- ConditionalExpression.cs
- InheritablePropertyChangeInfo.cs
- ScrollContentPresenter.cs
- FontDialog.cs
- PermissionListSet.cs
- SettingsPropertyValueCollection.cs
- RequestQueue.cs
- Win32PrintDialog.cs
- CodeGenerationManager.cs
- SchemaEntity.cs
- QueryContinueDragEventArgs.cs
- MessageHeaderDescriptionCollection.cs
- SoapAttributes.cs
- WorkflowIdleElement.cs
- ChangePasswordDesigner.cs
- SocketPermission.cs
- DrawTreeNodeEventArgs.cs
- Figure.cs
- RC2.cs
- StringUtil.cs
- ByteStack.cs
- EventLogQuery.cs
- DownloadProgressEventArgs.cs
- InheritanceContextChangedEventManager.cs
- QilIterator.cs
- CodeCatchClauseCollection.cs
- RelationshipManager.cs
- XmlReader.cs
- WorkflowLayouts.cs
- XamlSerializerUtil.cs
- CommandTreeTypeHelper.cs
- JoinSymbol.cs
- Array.cs
- HttpCapabilitiesEvaluator.cs
- LogExtent.cs
- PictureBox.cs
- TextEndOfParagraph.cs
- NamedObjectList.cs
- SoapTypeAttribute.cs
- LocationReferenceValue.cs
- ListControl.cs
- PathFigureCollectionConverter.cs
- FontSizeConverter.cs
- BinHexEncoder.cs
- DeviceSpecificDialogCachedState.cs
- NativeMethods.cs
- EventSinkActivity.cs
- ArcSegment.cs
- SafeNativeMethodsOther.cs
- TextTrailingCharacterEllipsis.cs
- Highlights.cs
- DataObjectSettingDataEventArgs.cs
- RecognizedWordUnit.cs
- WindowsListViewGroupSubsetLink.cs
- BlockUIContainer.cs
- ControlIdConverter.cs
- GridViewRowCollection.cs
- DataComponentNameHandler.cs
- MetafileHeaderWmf.cs
- Context.cs
- InProcStateClientManager.cs
- PreservationFileWriter.cs
- SupportsEventValidationAttribute.cs
- CodeCommentStatementCollection.cs
- OperatingSystemVersionCheck.cs
- TextDpi.cs
- SimpleType.cs
- TransformConverter.cs
- InputEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- ScriptingScriptResourceHandlerSection.cs
- TargetControlTypeCache.cs
- ArrayList.cs
- ReferencedAssembly.cs
- brushes.cs
- WebRequestModuleElement.cs
- SafeTimerHandle.cs
- EntityParameterCollection.cs
- IxmlLineInfo.cs
- BounceEase.cs
- KeyFrames.cs
- AccessDataSource.cs
- CqlBlock.cs
- METAHEADER.cs
- NativeMethods.cs
- DataControlLinkButton.cs
- NodeFunctions.cs
- ResourceDictionaryCollection.cs
- NameScopePropertyAttribute.cs
- XmlFormatReaderGenerator.cs
- RegexCompiler.cs
- TreeNodeClickEventArgs.cs
- NegatedCellConstant.cs
- SynchronizingStream.cs
- FileNotFoundException.cs
- RotateTransform3D.cs
- XmlAnyAttributeAttribute.cs
- SocketPermission.cs