Exemple #1
0
        /// <summary>
        /// Specifies the related objects to include in the query results using
        /// a lambda expression listing the path members.
        /// </summary>
        /// <returns>A new System.Data.Objects.ObjectQuery&lt;T&gt; with the defined query path.</returns>
        public static ObjectQuery <T> Include <T>(this ObjectQuery <T> query, Expression <Func <T, object> > path)
        {
            // Retrieve member path:
            List <ExtendedPropertyInfo> members = new List <ExtendedPropertyInfo>();

            EntityFrameworkHelper.CollectRelationalMembers(path, members);

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

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

            // Apply Include:
            return(query.Include(sb.ToString()));
        }