Пример #1
0
 public IReadOnlyList <T> Find(Specification <T> specification, int page = 0, int pageSize = 100)
 {
     using (ISession session = SessionFactory.OpenSession())
     {
         return(session.Query <T>()
                .Where(specification.ToExpression())
                .Skip(page * pageSize)
                .Take(pageSize)
                .ToList());
     }
 }
Пример #2
0
        public override Expression <Func <T, bool> > ToExpression()
        {
            var leftExpression  = _left.ToExpression();
            var rightExpression = _right.ToExpression();
            var paramExpr       = Expression.Parameter(typeof(T));
            var exprBody        = Expression.OrElse(leftExpression.Body, rightExpression.Body);

            exprBody = (BinaryExpression) new ParameterReplacer(paramExpr).Visit(exprBody);
            var finalExpr = Expression.Lambda <Func <T, bool> >(exprBody, paramExpr);

            return(finalExpr);
        }