System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.FindFunction C# (CSharp) Method

FindFunction() private method

Finds a function with the given namespaceName, functionName and argumentTypes
private FindFunction ( string namespaceName, string functionName, IList argumentTypes, bool isGroupAggregateFunction, Expression Expression ) : EdmFunction
namespaceName string
functionName string
argumentTypes IList
isGroupAggregateFunction bool
Expression System.Linq.Expressions.Expression
return EdmFunction
        private EdmFunction FindFunction(
            string namespaceName, string functionName, IList<TypeUsage> argumentTypes, bool isGroupAggregateFunction, Expression Expression)
        {
            // find the function
            IList<EdmFunction> candidateFunctions;
            if (!_perspective.TryGetFunctionByName(namespaceName, functionName, false /* ignore case */, out candidateFunctions))
            {
                ThrowUnresolvableFunction(Expression);
            }

            Debug.Assert(null != candidateFunctions && candidateFunctions.Count > 0, "provider functions must not be null or empty");

            bool isAmbiguous;
            var function = FunctionOverloadResolver.ResolveFunctionOverloads(
                candidateFunctions, argumentTypes, isGroupAggregateFunction, out isAmbiguous);
            if (isAmbiguous || null == function)
            {
                ThrowUnresolvableFunctionOverload(Expression, isAmbiguous);
            }
            return function;
        }