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
- ObjectContextServiceProvider.cs
- ContentFilePart.cs
- UserControlBuildProvider.cs
- WindowsListViewItem.cs
- PageRanges.cs
- AuthenticationManager.cs
- KernelTypeValidation.cs
- XamlParser.cs
- AsmxEndpointPickerExtension.cs
- ClusterRegistryConfigurationProvider.cs
- DeploymentExceptionMapper.cs
- EntitySetBase.cs
- ChangeProcessor.cs
- XmlLoader.cs
- ErrorReporting.cs
- IRCollection.cs
- ListDictionary.cs
- LinqDataSourceDisposeEventArgs.cs
- ConstraintConverter.cs
- SQLDoubleStorage.cs
- TreeNodeMouseHoverEvent.cs
- DataListAutoFormat.cs
- AssemblyCollection.cs
- HuffmanTree.cs
- CodeLinePragma.cs
- XmlTextReader.cs
- DllHostedComPlusServiceHost.cs
- localization.cs
- DateTimeValueSerializer.cs
- PagerSettings.cs
- SmiMetaDataProperty.cs
- WizardPanel.cs
- BadImageFormatException.cs
- TextBoxLine.cs
- ValidatorCompatibilityHelper.cs
- RewritingPass.cs
- NegationPusher.cs
- KerberosSecurityTokenProvider.cs
- ProgressChangedEventArgs.cs
- TrustSection.cs
- ResXResourceReader.cs
- DataGridSortCommandEventArgs.cs
- WindowInteropHelper.cs
- Merger.cs
- WebPartTransformerAttribute.cs
- UnauthorizedWebPart.cs
- Registry.cs
- ChannelSinkStacks.cs
- MarkupExtensionSerializer.cs
- DbReferenceCollection.cs
- Literal.cs
- XmlNullResolver.cs
- HttpCookieCollection.cs
- XmlEventCache.cs
- ReadOnlyCollection.cs
- BaseProcessor.cs
- NamespaceDisplay.xaml.cs
- DBDataPermissionAttribute.cs
- BookmarkWorkItem.cs
- Monitor.cs
- Signature.cs
- unitconverter.cs
- RichTextBox.cs
- ItemCollection.cs
- DetailsViewDeleteEventArgs.cs
- WriteFileContext.cs
- HashCryptoHandle.cs
- ComponentDispatcherThread.cs
- TableLayoutSettings.cs
- StringComparer.cs
- CrossAppDomainChannel.cs
- ToolboxItemCollection.cs
- XmlSchemaGroupRef.cs
- ModelFactory.cs
- Rotation3D.cs
- VisualBrush.cs
- BaseTemplateBuildProvider.cs
- TextElementEnumerator.cs
- _ConnectionGroup.cs
- ReferenceService.cs
- SamlDoNotCacheCondition.cs
- ApplicationFileCodeDomTreeGenerator.cs
- SafeBitVector32.cs
- HandleRef.cs
- ObjectReferenceStack.cs
- ToolStripItemRenderEventArgs.cs
- ImageField.cs
- SubclassTypeValidator.cs
- AxImporter.cs
- XslException.cs
- BinaryWriter.cs
- WindowsScrollBar.cs
- WaitForChangedResult.cs
- safelink.cs
- IgnoreDataMemberAttribute.cs
- AssociationProvider.cs
- EntityContainerRelationshipSetEnd.cs
- EndEvent.cs
- XmlValidatingReader.cs
- StringComparer.cs