예제 #1
0
        /// <summary>
        /// Where条件过滤--扩展
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="source">数据源</param>
        /// <param name="criteria">查询条件</param>
        /// <returns></returns>
        public static IQueryable <T> Filter <T>(this IQueryable <T> source, ICriteria <T> criteria) where T : class, IAggregateRoot
        {
            if (criteria == null)
            {
                return(source);
            }
            var predicate = criteria.GetPredicate();

            if (predicate == null)
            {
                return(source);
            }
            return(source.Where(predicate));
        }
예제 #2
0
        /// <summary>
        /// 添加查询条件
        /// </summary>
        /// <typeparam name="TEntity">实体类型</typeparam>
        /// <param name="source">数据源</param>
        /// <param name="criteria">查询条件对象</param>
        public static IQueryable <TEntity> Where <TEntity>(this IQueryable <TEntity> source, ICriteria <TEntity> criteria) where TEntity : class
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (criteria == null)
            {
                throw new ArgumentNullException(nameof(criteria));
            }
            var predicate = criteria.GetPredicate();

            if (predicate == null)
            {
                return(source);
            }
            return(source.Where(predicate));
        }
예제 #3
0
 /// <summary>
 /// 添加查询条件
 /// </summary>
 /// <param name="criteria">查询条件</param>
 /// <returns></returns>
 public IQuery <TEntity, TKey> Filter(ICriteria <TEntity> criteria)
 {
     And(criteria.GetPredicate());
     return(this);
 }