protected override Expression VisitParameter(ParameterExpression p)
        {
            SingleEntityView op = null;

            if (p.Name == _lParamName)
            {
                op = _left;
            }
            if (p.Name == _rParamName)
            {
                op = _right;
            }

            Assertion.IsNotNull(op, "parameter expression invalid.");

            if (!string.IsNullOrEmpty(op.Alias))
            {
                _str.Append(_tr.GetEscapedTableName(op.Alias));
            }
            else
            {
                var map = _cache.GetMapInfo(p.Type, true);
                _str.Append(_tr.GetEscapedTableName(map.Table.LocalName));
            }

            return(p);
        }
 protected void CheckParameterName(string paramName, SingleEntityView view)
 {
     if ((!string.IsNullOrEmpty(view.Alias)) && paramName != view.Alias)
     {
         ParseExceptionHelper.ThrowParameterNameNotMatchViewAlias(paramName, view.Alias, view.EntityType);
     }
 }
Example #3
0
        private void Visit(SingleEntityView sv)
        {
            var map = _cache.GetMapInfo(sv.EntityType, true);

            _str.Append(_tr.GetEscapedTableName(map.Table.LocalName));
            if (!string.IsNullOrEmpty(sv.Alias))
            {
                _str.Append(SPACE).Append(_tr.GetEscapedTableName(sv.Alias));
            }
        }
        public virtual StringBuilder GetJoinEquation(JoinView view)
        {
            _left  = GetMostLeftSingleView(view.Left);
            _right = GetMostLeftSingleView(view.Right);

            _str = new StringBuilder();
            this.Visit(view.JoinKey);
            _str.UnBracketing(StringPair.Parenthesis);
            return(_str);
        }
        private void Visit(SingleEntityView s)
        {
            var map = _cache.GetMapInfo(s.EntityType, true);

            string prefix = s.Alias ?? map.Table.LocalName;

            foreach (var pMap in map.PropertyMaps)
            {
                _str.Append(_tr.GetEscapedTableName(prefix)).Append(_tr.MemberAccess).Append(_tr.GetEscapedColumnName(pMap.ColumnName))
                .Append(_tr.As).Append(_tr.GetEscapedColumnName(prefix + pMap.ColumnName)).Append(_tr.ColumnDelimiter);
            }
        }
Example #6
0
        public static string ChooseNameFromView(this ParameterExpression p, IEnumerable <SingleEntityView> svList, IObjectMapInfoCache cache)
        {
            var matchType = from v in svList
                            where v.EntityType == p.Type
                            select v;

            switch (matchType.Count())
            {
            case 0:
                ParseExceptionHelper.ThrowTypeNotDefinedInView(p);
                break;

            case 1:
                SingleEntityView view = matchType.First();
                if ((!string.IsNullOrEmpty(view.Alias)) && view.Alias != p.Name)
                {
                    ParseExceptionHelper.ThrowParameterNameNotMatchViewAlias(p.Name, view.Alias, view.EntityType);
                }

                if (!string.IsNullOrEmpty(view.Alias))
                {
                    return(view.Alias);
                }
                else
                {
                    var map = cache.GetMapInfo(p.Type, true);
                    return(map.Table.LocalName);
                }

            default:
                var q = from v in matchType
                        where v.Alias == p.Name
                        select v;

                switch (q.Count())
                {
                case 0:
                    ParseExceptionHelper.ThrowNoAliasForParameterName(p);
                    break;

                case 1:
                    return(q.First().Alias);

                default:
                    ParseExceptionHelper.ThrowMultiTypeHaveSameAlias(p);
                    break;
                }

                break;
            }
            return(string.Empty);
        }
Example #7
0
 private void VisitViewAlias(SingleEntityView view)
 {
     _list.Add(view);
 }