Пример #1
0
        private bool TryResolveEntityContainerMemberAccess(
            EntityContainer entityContainer,
            string name,
            out ExpressionResolution resolution)
        {
            EntitySetBase outSet;

            if (this.TypeResolver.Perspective.TryGetExtent(entityContainer, name, this._parserOptions.NameComparisonCaseInsensitive, out outSet))
            {
                resolution = (ExpressionResolution) new ValueExpression((DbExpression)outSet.Scan());
                return(true);
            }
            EdmFunction functionImport;

            if (this.TypeResolver.Perspective.TryGetFunctionImport(entityContainer, name, this._parserOptions.NameComparisonCaseInsensitive, out functionImport))
            {
                resolution = (ExpressionResolution) new MetadataFunctionGroup(functionImport.FullName, (IList <EdmFunction>) new EdmFunction[1]
                {
                    functionImport
                });
                return(true);
            }
            resolution = (ExpressionResolution)null;
            return(false);
        }
        private bool TryResolveEntityContainerMemberAccess(
            EntityContainer entityContainer, string name, out ExpressionResolution resolution)
        {
            EntitySetBase entitySetBase;
            EdmFunction   functionImport;

            if (TypeResolver.Perspective.TryGetExtent(
                    entityContainer, name, _parserOptions.NameComparisonCaseInsensitive /*ignoreCase*/, out entitySetBase))
            {
                resolution = new ValueExpression(entitySetBase.Scan());
                return(true);
            }
            else if (TypeResolver.Perspective.TryGetFunctionImport(
                         entityContainer, name, _parserOptions.NameComparisonCaseInsensitive /*ignoreCase*/, out functionImport))
            {
                resolution = new MetadataFunctionGroup(functionImport.FullName, new[] { functionImport });
                return(true);
            }
            else
            {
                resolution = null;
                return(false);
            }
        }