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
- SizeF.cs
- ActivityCollectionMarkupSerializer.cs
- SevenBitStream.cs
- _ListenerResponseStream.cs
- XmlObjectSerializerContext.cs
- CellCreator.cs
- D3DImage.cs
- TriState.cs
- MeshGeometry3D.cs
- CertificateManager.cs
- CultureTableRecord.cs
- BinarySerializer.cs
- ErrorRuntimeConfig.cs
- CodeDOMUtility.cs
- DataSourceListEditor.cs
- InternalMappingException.cs
- RichTextBoxConstants.cs
- ContentPlaceHolder.cs
- Attribute.cs
- DbResourceAllocator.cs
- EventLogHandle.cs
- AttributeUsageAttribute.cs
- ListManagerBindingsCollection.cs
- WebPartManager.cs
- ExplicitDiscriminatorMap.cs
- EntityCommandDefinition.cs
- WhiteSpaceTrimStringConverter.cs
- ReadWriteObjectLock.cs
- SoapElementAttribute.cs
- ConfigurationPermission.cs
- Blend.cs
- IntranetCredentialPolicy.cs
- PassportAuthenticationEventArgs.cs
- ToolTip.cs
- Vector.cs
- SchemaConstraints.cs
- RegexCapture.cs
- XmlSchemaExternal.cs
- UriParserTemplates.cs
- UInt32Converter.cs
- SignedPkcs7.cs
- PerformanceCounterLib.cs
- ComplusEndpointConfigContainer.cs
- MemoryFailPoint.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- BitmapImage.cs
- Vector3D.cs
- XmlException.cs
- ObjectDataSourceDesigner.cs
- ResourceExpressionBuilder.cs
- MatrixAnimationBase.cs
- Image.cs
- StreamInfo.cs
- HtmlContainerControl.cs
- ToolStripLocationCancelEventArgs.cs
- UIElementParagraph.cs
- EnumMember.cs
- ErrorTableItemStyle.cs
- CapiSymmetricAlgorithm.cs
- HitTestParameters3D.cs
- ApplicationContext.cs
- Window.cs
- Point4D.cs
- MatrixAnimationUsingKeyFrames.cs
- APCustomTypeDescriptor.cs
- BigInt.cs
- unsafenativemethodsother.cs
- SoapCodeExporter.cs
- ITreeGenerator.cs
- FontUnitConverter.cs
- ProcessModule.cs
- SqlWebEventProvider.cs
- DataSourceUtil.cs
- DataGridColumnCollection.cs
- GeneralTransform2DTo3DTo2D.cs
- XmlNodeComparer.cs
- CmsInterop.cs
- PlaceHolder.cs
- SqlUnionizer.cs
- VirtualizedItemProviderWrapper.cs
- CounterSample.cs
- ColorIndependentAnimationStorage.cs
- ListViewItem.cs
- StubHelpers.cs
- CreationContext.cs
- ZoneMembershipCondition.cs
- IdentifierCollection.cs
- ProxyFragment.cs
- ExecutedRoutedEventArgs.cs
- AspCompat.cs
- WebPartZoneCollection.cs
- SimpleType.cs
- DispatcherHookEventArgs.cs
- EntityDataSourceWizardForm.cs
- UserControlBuildProvider.cs
- DetailsView.cs
- CodeIdentifier.cs
- EUCJPEncoding.cs
- SoapServerMessage.cs
- Serializer.cs