Beispiel #1
0
        public static string ToIncludeString <T>(this Expression <Func <T, object> > selector)
        {
            var members = new List <PropertyInfo>();

            ExpressionHelper.CollectRelationalMembers(selector, members);

            var sb        = new StringBuilder();
            var separator = "";

            foreach (var member in members)
            {
                sb.Append(separator);
                sb.Append(member.Name);
                separator = ".";
            }

            return(sb.ToString());
        }
        /// <summary>
        ///  Evaluates the Linq expression and returns the name of the property or the multiple level deep string representation of the Expression (i.e. prop.Collection.Property).
        /// </summary>
        /// <typeparam name="T">Type being evaluated</typeparam>
        /// <param name="selector">Name of the property per the Linq expression</param>
        /// <returns></returns>
        public static string ToIncludeString <T>([NotNull] this Expression <Func <T, object> > selector)
        {
            Guard.NotNull(selector, nameof(selector));

            // Retrieve member path:
            var members = new List <PropertyInfo>();

            ExpressionHelper.CollectRelationalMembers(selector, members);

            // Build string path:
            var sb        = new StringBuilder();
            var separator = "";

            foreach (var member in members)
            {
                sb.Append(separator);
                sb.Append(member.Name);
                separator = ".";
            }

            // return concatenated string
            return(sb.ToString());
        }