public void Initialize(Type modelType)
        {
            if (initialized)
            {
                return;
            }

            initialized = true;

            ParameterExpression parameter          = Expression.Parameter(typeof(object));
            UnaryExpression     modelExpression    = Expression.Convert(parameter, modelType);
            Expression          whereConditionBody = ExpressionHelper.ConvertConditionParts(modelType, Conditions, modelExpression);

            WhereExpression = Expression.Lambda <Func <object, bool> >(whereConditionBody, parameter);
        }