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
- Rect.cs
- IpcChannel.cs
- TreeWalkHelper.cs
- HierarchicalDataBoundControl.cs
- HuffCodec.cs
- OutputCacheProfile.cs
- DataGridViewTopLeftHeaderCell.cs
- WeakReference.cs
- SQLDoubleStorage.cs
- UrlAuthorizationModule.cs
- GeneralTransform2DTo3D.cs
- Calendar.cs
- Evaluator.cs
- OletxDependentTransaction.cs
- MethodExpr.cs
- XMLDiffLoader.cs
- CommonObjectSecurity.cs
- SubpageParaClient.cs
- DelegateSerializationHolder.cs
- CacheEntry.cs
- URL.cs
- UntypedNullExpression.cs
- CorePropertiesFilter.cs
- MultiView.cs
- GlyphsSerializer.cs
- Pick.cs
- InternalDispatchObject.cs
- DocumentCollection.cs
- HybridDictionary.cs
- DBAsyncResult.cs
- AnchoredBlock.cs
- RC2.cs
- UniqueSet.cs
- DataPagerField.cs
- ImageButton.cs
- ItemCheckedEvent.cs
- XmlUtil.cs
- PerformanceCounterNameAttribute.cs
- InvokePattern.cs
- LongMinMaxAggregationOperator.cs
- SerializerProvider.cs
- CodeIdentifier.cs
- FormatPage.cs
- ValidationSummary.cs
- ValuePatternIdentifiers.cs
- RoutedPropertyChangedEventArgs.cs
- Symbol.cs
- Util.cs
- ProjectedSlot.cs
- EdmSchemaError.cs
- DateBoldEvent.cs
- TextMarkerSource.cs
- XmlSchemaSimpleTypeUnion.cs
- SecurityTokenProvider.cs
- CodeGenerator.cs
- SmtpAuthenticationManager.cs
- ConfigurationValidatorBase.cs
- AxisAngleRotation3D.cs
- GlyphsSerializer.cs
- NavigatorOutput.cs
- XmlSortKeyAccumulator.cs
- XmlDocument.cs
- CompositeControl.cs
- DataContractJsonSerializerOperationBehavior.cs
- ResourcePermissionBase.cs
- DataGridViewRowPostPaintEventArgs.cs
- TextTrailingWordEllipsis.cs
- TraversalRequest.cs
- KeyEvent.cs
- _AutoWebProxyScriptWrapper.cs
- ObjectDataSourceSelectingEventArgs.cs
- EraserBehavior.cs
- Int16Converter.cs
- DESCryptoServiceProvider.cs
- StringReader.cs
- SymbolResolver.cs
- DiscoveryMessageSequence.cs
- VirtualDirectoryMappingCollection.cs
- BulletedListEventArgs.cs
- Span.cs
- GraphicsContainer.cs
- Span.cs
- TextBoxLine.cs
- GridItem.cs
- BulletChrome.cs
- Base64WriteStateInfo.cs
- RecognizerBase.cs
- XhtmlBasicObjectListAdapter.cs
- KnownTypesHelper.cs
- TopClause.cs
- TrustManagerPromptUI.cs
- GeneralTransform2DTo3DTo2D.cs
- JsonXmlDataContract.cs
- SmtpDigestAuthenticationModule.cs
- HMACSHA512.cs
- TextRangeSerialization.cs
- TraceListener.cs
- CalendarDataBindingHandler.cs
- DataColumnChangeEvent.cs
- WindowsSolidBrush.cs