/// <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); }