ExternalCalls.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / 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  and returns .
        /// Guarantees type match of lambda variables and . 
        /// Passes thru all excepions coming from .
        ///  
        static internal DbLambda CompileFunctionDefinition( 
            string functionFullName,
            string functionDefinition, 
            IList 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.
//---------------------------------------------------------------------- 
// 
//      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  and returns .
        /// Guarantees type match of lambda variables and . 
        /// Passes thru all excepions coming from .
        ///  
        static internal DbLambda CompileFunctionDefinition( 
            string functionFullName,
            string functionDefinition, 
            IList 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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK