private string GetExpressionString(Expression expression) { var lambdaExpression = expression as LambdaExpression; if (lambdaExpression != null) { var dynamicObject = lambdaExpression.Compile().DynamicInvoke(); if (IsSimpleType(dynamicObject.GetType())) { _dbConvention.ToValueNameConvention(dynamicObject.ToString()); } } var memberExpression = expression as MemberExpression; if (memberExpression != null) { //if (memberExpression.Expression.Type.ReflectedType != null) var quntifiedName = IsSimpleType(memberExpression.Expression.Type.BaseType) ? _dbConvention.ToValueNameConvention(memberExpression.Expression.Type.Name): _dbConvention.ToQuantifiedNameConvention(memberExpression.Expression.Type.Name, memberExpression.Member.Name); return(quntifiedName); } var constantExpression = expression as ConstantExpression; if (constantExpression != null) { return(_dbConvention.ToValueNameConvention(constantExpression.Value.ToString())); } var methodCallExpression = expression as MethodCallExpression; if (methodCallExpression != null) { var dynamicValue = Expression.Lambda(expression).Compile().DynamicInvoke().ToString(); return(_dbConvention.ToValueNameConvention(dynamicValue)); } return(string.Empty); }
public static string GetTypeName(this MemberExpression memberExpression, BaseConvension convension) { var tuple = Tuple.Create <string, string>(memberExpression.Member.Name, memberExpression.Member.DeclaringType.Name); return(convension.ToQuantifiedNameConvention(memberExpression.Member.DeclaringType.Name, memberExpression.Member.Name)); }