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
- ObjectSecurity.cs
- ViewGenerator.cs
- MaterializeFromAtom.cs
- TabletDeviceInfo.cs
- DetailsView.cs
- NullableBoolConverter.cs
- Pen.cs
- Vector.cs
- KnownIds.cs
- InstanceDataCollectionCollection.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- CompositeKey.cs
- Variant.cs
- InteropEnvironment.cs
- _LocalDataStoreMgr.cs
- ResourcesBuildProvider.cs
- OleServicesContext.cs
- GifBitmapDecoder.cs
- CriticalHandle.cs
- ScriptResourceHandler.cs
- TreeNode.cs
- ListSourceHelper.cs
- StatusInfoItem.cs
- ObjectQuery_EntitySqlExtensions.cs
- _KerberosClient.cs
- TimelineClockCollection.cs
- DerivedKeySecurityToken.cs
- JsonReader.cs
- DataColumnCollection.cs
- ToolboxSnapDragDropEventArgs.cs
- Group.cs
- DataGridViewButtonColumn.cs
- CodeDomConfigurationHandler.cs
- DocumentViewer.cs
- ParallelTimeline.cs
- CallId.cs
- OutputScopeManager.cs
- XmlRawWriter.cs
- ItemAutomationPeer.cs
- SecurityUniqueId.cs
- SchemaSetCompiler.cs
- SelectedDatesCollection.cs
- DllNotFoundException.cs
- ScriptReferenceBase.cs
- CollectionChangeEventArgs.cs
- ToolStripDropDownClosingEventArgs.cs
- SelectedDatesCollection.cs
- TreeNodeSelectionProcessor.cs
- FilterFactory.cs
- TableCell.cs
- LinearQuaternionKeyFrame.cs
- FocusWithinProperty.cs
- EntityConnectionStringBuilderItem.cs
- Separator.cs
- AssemblyAssociatedContentFileAttribute.cs
- CodeTypeReferenceExpression.cs
- BamlRecordReader.cs
- CollectionViewProxy.cs
- LayoutTable.cs
- SqlDataSourceCommandEventArgs.cs
- arabicshape.cs
- CacheManager.cs
- Attributes.cs
- AttributeSetAction.cs
- RotateTransform.cs
- AssemblyAssociatedContentFileAttribute.cs
- BulletChrome.cs
- WebPartEditorCancelVerb.cs
- DSASignatureDeformatter.cs
- TypedReference.cs
- MailSettingsSection.cs
- RewritingProcessor.cs
- IdnElement.cs
- XmlSchemaSimpleContentRestriction.cs
- VarRefManager.cs
- TextLineResult.cs
- TypeBuilderInstantiation.cs
- Compiler.cs
- HostingEnvironment.cs
- RootBrowserWindowProxy.cs
- DBBindings.cs
- SizeConverter.cs
- TextEditorThreadLocalStore.cs
- NestPullup.cs
- JsonWriter.cs
- CompatibleComparer.cs
- ColumnCollection.cs
- FileSystemInfo.cs
- GridItemCollection.cs
- FileDialog_Vista_Interop.cs
- FixedSOMLineRanges.cs
- TdsParameterSetter.cs
- WebEventTraceProvider.cs
- ModuleConfigurationInfo.cs
- log.cs
- TheQuery.cs
- ListViewSortEventArgs.cs
- LocatorBase.cs
- XPathArrayIterator.cs
- AutoScrollHelper.cs