protected override System.Linq.Expressions.Expression VisitMemberAccess(System.Linq.Expressions.MemberExpression m) { if (m.Expression is System.Linq.Expressions.ParameterExpression) { MemberInfo memberInfo = m.Member; string text = string.Empty; if (this.ExcuteType == DMSExcuteType.SELECT) { Type valueType = memberInfo.ReflectedType; DMSTableKeys key = this.TableKeys.Where(q => q.AssemblyQualifiedName == valueType.AssemblyQualifiedName).LastOrDefault(); if (key != null) { text = key.TableSpecialName; if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } this._strSql.Append(text); this._strSql.Append(this.Provider.TableToken); } text = GetMemberInfoName(memberInfo.Name); if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } _strSql.Append(text); } } return(base.VisitMemberAccess(m)); }
protected override System.Linq.Expressions.Expression VisitMemberAccess(System.Linq.Expressions.MemberExpression m) { if (m.Expression is System.Linq.Expressions.ParameterExpression) { string text = string.Empty; MemberInfo memberInfo = m.Member; if (memberInfo != null) { this._CurrentMemberInfo = memberInfo; Type valueType = memberInfo.ReflectedType; DMSTableKeys key = this.TableKeys.Where(q => q.AssemblyQualifiedName == valueType.AssemblyQualifiedName).LastOrDefault(); if (key != null) { text = key.TableSpecialName; if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } this._strSql.Append(text); this._strSql.Append(this.Provider.TableToken); } text = GetMemberInfoName(memberInfo.Name); if (this.SplitExpression.TableMapping.TokenFlag == true) { text = this.Provider.BuildColumnName(text); } _strSql.Append(text); } } else if (m.Expression is System.Linq.Expressions.MemberExpression) { //q.UserName.Length string name = m.Member.Name; if (MemberProperties.ContainsKey(name)) { this.MethodFunc(MemberProperties[name], m.Expression); } return(m); } return(base.VisitMemberAccess(m)); }