/// <summary> /// Construct equality expressions for source according to list of properties. /// </summary> /// <exception cref="ArgumentNullException"> /// When parameterExp or source or properties is null. /// </exception> /// <typeparam name="TSource">Type of source.</typeparam> /// <param name="parameterExp">Parameter expression.</param> /// <param name="source">Source to construct expression on.</param> /// <param name="properties">List of properties.</param> /// <returns>List of equality expressions.</returns> public static IEnumerable <Expression> ConstructEqualityExpressions <TSource>( this ParameterExpression parameterExp, TSource source, IEnumerable <PropertyInfo> properties) where TSource : class { if (parameterExp == null) { throw new ArgumentNullException("parameterExp"); } if (source == null) { throw new ArgumentNullException("source"); } if (properties == null) { throw new ArgumentNullException("properties"); } foreach (PropertyInfo property in properties) { yield return(parameterExp.ConstructEqualityExpression( source, property)); } }