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
- Rectangle.cs
- RowVisual.cs
- PropertyChangedEventArgs.cs
- ObjectPersistData.cs
- NavigatorOutput.cs
- Token.cs
- ServiceEndpointElement.cs
- Int32.cs
- ServerProtocol.cs
- handlecollector.cs
- PageBreakRecord.cs
- DelegateArgument.cs
- HttpTransportElement.cs
- ObjectReferenceStack.cs
- counter.cs
- XmlArrayAttribute.cs
- Help.cs
- Expression.cs
- RegionData.cs
- ListViewTableRow.cs
- RectIndependentAnimationStorage.cs
- TransformerInfoCollection.cs
- OleCmdHelper.cs
- AudioSignalProblemOccurredEventArgs.cs
- OleDbCommand.cs
- PageContentAsyncResult.cs
- ImportCatalogPart.cs
- XmlElementAttribute.cs
- TdsRecordBufferSetter.cs
- CodeTypeDeclarationCollection.cs
- XmlSerializationReader.cs
- TransformerConfigurationWizardBase.cs
- XmlCharacterData.cs
- ActivationServices.cs
- DescendantOverDescendantQuery.cs
- ListControl.cs
- HttpRuntime.cs
- OleDbParameter.cs
- NotCondition.cs
- DeclaredTypeElementCollection.cs
- Encoding.cs
- PackagingUtilities.cs
- ExpandoObject.cs
- SqlConnection.cs
- SolidBrush.cs
- CodeObjectCreateExpression.cs
- ColumnResizeUndoUnit.cs
- NameValueSectionHandler.cs
- CommandEventArgs.cs
- MarkupCompiler.cs
- FontCollection.cs
- InvalidOperationException.cs
- DataColumnPropertyDescriptor.cs
- StickyNoteAnnotations.cs
- TargetControlTypeCache.cs
- DataControlFieldCollection.cs
- SignedXml.cs
- IssuedTokenParametersEndpointAddressElement.cs
- UndoEngine.cs
- SoapServerMethod.cs
- AccessViolationException.cs
- HtmlValidatorAdapter.cs
- CompilerInfo.cs
- PictureBox.cs
- DelegatingConfigHost.cs
- StatusBarItemAutomationPeer.cs
- CodeAttributeDeclarationCollection.cs
- GridViewDeleteEventArgs.cs
- BaseDataListComponentEditor.cs
- ScalarRestriction.cs
- FtpRequestCacheValidator.cs
- InstalledFontCollection.cs
- StorageBasedPackageProperties.cs
- ThousandthOfEmRealDoubles.cs
- GradientBrush.cs
- Section.cs
- TransformedBitmap.cs
- SQLDecimalStorage.cs
- Delegate.cs
- TargetControlTypeAttribute.cs
- HtmlFormParameterWriter.cs
- FormView.cs
- ConfigsHelper.cs
- SqlOuterApplyReducer.cs
- BoundColumn.cs
- DocumentViewerBaseAutomationPeer.cs
- _OSSOCK.cs
- DockProviderWrapper.cs
- ContentDisposition.cs
- StylusPointPropertyInfo.cs
- PageThemeParser.cs
- AmbientProperties.cs
- BitmapSource.cs
- XdrBuilder.cs
- WinInetCache.cs
- IUnknownConstantAttribute.cs
- LogicalExpr.cs
- Camera.cs
- columnmapfactory.cs
- AnnouncementEndpointElement.cs