Beispiel #1
0
 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));
 }
Beispiel #2
0
 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));
 }