using Ant.Data; using System; using System.Collections; using System.Collections.Generic; using System.Linq.Expressions; namespace Ant.ORM { public interface IQuery { IQuery AsTracking(); IEnumerable AsEnumerable(); /// /// 显示列 /// /// /// /// IQuery Select(Expression> selector); /// /// 查询条件 /// /// /// IQuery Where(Expression> predicate); /// /// 用IN作为查询条件的SQL语句 /// /// /// /// /// /// /// IQuery WhereIn(Expression> propertySelector, params object[] values); /// /// 默认排序 /// /// /// /// IOrderedQuery OrderBy(Expression> predicate); /// /// 降序排序 /// /// /// /// IOrderedQuery OrderByDesc(Expression> predicate); /// /// 跳过序列中的指定位置之前的元素 /// /// /// IQuery Skip(int count); /// /// 提前序列中的指定位置之前的元素(TOP取条数据) /// /// /// IQuery Top(int count); /// /// 对共享公共特性元素进行分组 /// /// /// /// IGroupingQuery GroupBy(Expression> predicate); /// /// 内连接 /// /// /// /// /// IJoiningQuery InnerJoin(IQuery q, Expression> on); /// /// 左关联 /// /// /// /// /// IJoiningQuery LeftJoin(IQuery q, Expression> on); /// /// 右关联 /// /// /// /// /// IJoiningQuery RightJoin(IQuery q, Expression> on); /// /// 全连接 /// /// /// /// /// IJoiningQuery FullJoin(IQuery q, Expression> on); //2017-12-2季健国加 IJoiningQuery InnerJoin(Expression> on); IJoiningQuery LeftJoin(Expression> on); IJoiningQuery RightJoin(Expression> on); IJoiningQuery FullJoin(Expression> on); /// /// 返回序列中的第一个元素 /// /// ResponseModel First(); /// /// /// /// /// ResponseModel First(RequestModel request); /// /// 返回序列中的第一个元素 /// /// /// ResponseModel First(Expression> predicate); /// ///获取一条数据 /// /// ResponseModel FirstOrDefault(); /// /// /// /// /// ResponseModel FirstOrDefault(RequestModel request); /// /// 获取一条数据 /// /// /// /// ResponseModel FirstOrDefault(Expression> predicate, RequestModel request); /// /// 获取列表数据 /// /// ResponseModel ToList(); /// /// /// /// ResponseModel ToList(RequestModel request); /// /// 确定序列中是否有元素满足条件 /// /// ResponseModel Any(); /// /// 确定序列中是否有元素满足条件 /// /// /// ResponseModel Any(Expression> predicate); /// /// 获取数据库记录 /// /// int Count(); /// /// 获取数据库记录 /// /// /// ResponseModel Count(RequestModel request); ResponseModel LongCount(); /// /// /// /// /// /// TResult Max(Expression> selector); /// /// /// /// /// /// TResult Min(Expression> selector); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Sum(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); Tuple Average(Expression> selector, RequestModel request = null); } }