protected override SqlCaluse Select(ParameterExpression exp, SqlCaluse sqlCaluse) { var t = exp.Type; var props = t.GetProperties(); sqlCaluse.SetTableAlias(t); var alia = sqlCaluse.GetTableAlias(t); foreach (PropertyInfo item in props) { if (item.GetAttribute <IgnoreAttribute>() != null) { continue; } var col = item.GetAttribute <ColumnNameAttribute>(); if (col == null) { sqlCaluse.SelectFields.Add($"{alia}{item.Name}"); } else { sqlCaluse.SelectFields.Add($"{alia}{col.Name} {item.Name}"); } } return(sqlCaluse); }
private string FindValue(MemberExpression exp, SqlCaluse sqlCaluse) { if (exp.Expression.NodeType == ExpressionType.Parameter) { string tableAlias = sqlCaluse.GetTableAlias(exp.Member.DeclaringType); var attr = exp.Member.GetAttribute <ColumnNameAttribute>(); if (attr == null) { return(" " + tableAlias + exp.Member.Name); } else { return(" " + tableAlias + attr.Name); } } else { //var v = exp.Expression as ConstantExpression; var v = Expression.Lambda(exp).Compile().DynamicInvoke(); return(sqlCaluse.AddDbParameter(v)); } }
private string CustomHandle(MemberExpression exp, SqlCaluse sqlCaluse, bool aliaRequest = true) { var table = exp.Member.DeclaringType; sqlCaluse.SetTableAlias(table); var alias = sqlCaluse.GetTableAlias(table); var attr = exp.Member.GetAttribute <ColumnNameAttribute>(); if (attr != null) { if (aliaRequest) { return($"{alias}{attr.Name} {exp.Member.Name}"); } else { return($"{alias}{attr.Name}"); } } else { return($"{alias}{exp.Member.Name}"); } }