Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }