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
- ColorComboBox.cs
- Utils.cs
- TypeViewSchema.cs
- CustomActivityDesigner.cs
- FaultDescription.cs
- DataServiceQueryException.cs
- Block.cs
- BaseInfoTable.cs
- RadioButtonPopupAdapter.cs
- FileFormatException.cs
- TypeRestriction.cs
- ISO2022Encoding.cs
- MatrixTransform.cs
- BooleanKeyFrameCollection.cs
- RegexMatchCollection.cs
- DynamicILGenerator.cs
- DataSourceXmlClassAttribute.cs
- FixedTextSelectionProcessor.cs
- ReplyAdapterChannelListener.cs
- ListViewGroupItemCollection.cs
- Int64.cs
- ZipIOExtraFieldPaddingElement.cs
- ResolveCriteriaCD1.cs
- WeakReferenceEnumerator.cs
- ConstrainedDataObject.cs
- WebPartConnectionsEventArgs.cs
- PocoEntityKeyStrategy.cs
- TextDpi.cs
- IChannel.cs
- PropertyItem.cs
- ForceCopyBuildProvider.cs
- CompleteWizardStep.cs
- ExpressionBuilderCollection.cs
- FieldMetadata.cs
- VisualStyleInformation.cs
- ContourSegment.cs
- Brush.cs
- DbSetClause.cs
- DrawingContextWalker.cs
- UrlPath.cs
- ServicePoint.cs
- Encoding.cs
- DrawingContext.cs
- TakeQueryOptionExpression.cs
- TextSimpleMarkerProperties.cs
- Substitution.cs
- DirectoryLocalQuery.cs
- AnnouncementSendsAsyncResult.cs
- SerializationInfo.cs
- SQLDouble.cs
- ChangeTracker.cs
- FreezableOperations.cs
- ServiceModelTimeSpanValidator.cs
- Collection.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- NameValueCollection.cs
- BinHexDecoder.cs
- Win32PrintDialog.cs
- SimpleBitVector32.cs
- ActionMessageFilterTable.cs
- Visual.cs
- DataGridToolTip.cs
- ObjectDataSourceMethodEventArgs.cs
- Vector3DCollectionValueSerializer.cs
- ContractMapping.cs
- SkipQueryOptionExpression.cs
- FileVersion.cs
- WindowAutomationPeer.cs
- CodeTypeDeclarationCollection.cs
- DbXmlEnabledProviderManifest.cs
- SoapFault.cs
- GeneralTransformGroup.cs
- XmlUtilWriter.cs
- ACL.cs
- SiteMapNode.cs
- SendMailErrorEventArgs.cs
- XmlChildNodes.cs
- RegexCode.cs
- ProxyElement.cs
- WebDescriptionAttribute.cs
- ListDictionary.cs
- Type.cs
- smtppermission.cs
- MediaElement.cs
- CopyNamespacesAction.cs
- RelatedPropertyManager.cs
- StatusBarDrawItemEvent.cs
- MemoryStream.cs
- ClientSideQueueItem.cs
- EnumBuilder.cs
- XmlWellformedWriter.cs
- RuleCache.cs
- ApplicationCommands.cs
- DetailsViewRowCollection.cs
- SettingsPropertyWrongTypeException.cs
- BackStopAuthenticationModule.cs
- PathData.cs
- SelectionRangeConverter.cs
- TdsParameterSetter.cs
- XmlAttribute.cs