Esempio n. 1
0
        /// <summary>
        /// Gets a flatted list of all conditions associated with this query
        /// </summary>
        /// <returns></returns>
        internal virtual List <Condition> GetConditions()
        {
            var listConditions = new List <Condition>();

            if (WhereCondition != null)
            {
                listConditions.AddRange(WhereCondition.GetAllConditions());
            }

            /// All Conditions from Join
            listConditions.AddRange(ListJoin.Select(r => r.Condition.GetAllConditions()).SelectMany(r => r));

            /// All Conditions from joined Queries
            listConditions.AddRange(ListJoin.Select(r => r.Query.GetConditions()).SelectMany(r => r));

            /// All Conditions from FromQuery
            if (FromQuery != null)
            {
                listConditions.AddRange(FromQuery.Item1.GetConditions());
            }

            return(listConditions);
        }