Esempio n. 1
0
 /// <summary>
 /// Calculates hash of lambda expression
 /// </summary>
 /// <param name="ex">Lambda expression</param>
 /// <param name="another">Another expression to be included into hash</param>
 /// <returns>Hash of expression</returns>
 public static string CalculateHash(this Expression ex, params Expression[] another)
 {
     using (var qh = new QueryHasher())
     {
         qh.Visit(ex);
         foreach (var expression in another)
         {
             qh.Visit(expression);
         }
         return($"OrmQuery_{qh.GenerateHash()}");
     }
 }
        /// <summary>
        /// Calculates hash of lambda expression
        /// </summary>
        /// <param name="ex">Lambda expression</param>
        /// <param name="another">Another expression to be included into hash</param>
        /// <returns>Hash of expression</returns>
        public static ExpressionHashData CalculateHash(this Expression ex, params Expression[] another)
        {
            var result = new ExpressionHashData();

            using (var qh = new QueryHasher())
            {
                var ret = qh.Visit(ex);
                result.ModifiedExpression = ret;

                foreach (var expression in another)
                {
                    qh.Visit(expression);
                }

                //var log = string.Join( "|",qh.Box.ObjectsLog);
                result.Hash = $"OrmQuery_{qh.GenerateHash()}";
            }

            return(result);
        }