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); } }
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); } }
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); }
private void VisitViewAlias(SingleEntityView view) { _list.Add(view); }