Exemplo n.º 1
0
        public void ResolveSelectExpression()
        {
            if (Walker.IsShallowQuery || Walker.CurrentFromClause.IsSubQuery)
            {
                Resolve(false, true);
            }
            else
            {
                Resolve(true, false);
                IType type = GetDataType();

                if (type.IsEntityType)
                {
                    FromElement fromElement = FromElement;
                    fromElement.IncludeSubclasses = true;                     // Tell the destination fromElement to 'includeSubclasses'.

                    if (UseThetaStyleImplicitJoins)
                    {
                        fromElement.JoinSequence.SetUseThetaStyle(true);                                // Use theta style (for regression)

                        // Move the node up, after the origin node.
                        FromElement origin = fromElement.Origin;

                        if (origin != null)
                        {
                            ASTUtil.MakeSiblingOfParent(origin, fromElement);
                        }
                    }
                }
            }

            FromReferenceNode lhs = GetLhs();

            while (lhs != null)
            {
                CheckSubclassOrSuperclassPropertyReference(lhs, lhs.NextSibling.Text);
                lhs = (FromReferenceNode)lhs.GetChild(0);
            }
        }