/// <summary> /// Get max data row for orderby Id /// </summary> /// <param name="orderBy"></param> /// <param name="isTrack"></param> /// <returns></returns> public static async Task <T> MaxAsync(IOrderByClause <T> orderBy, bool isTrack = true) { using (DataRepository <T> repoSystemCode = new DataRepository <T>(new ColligoO365RMOEntities())) { return(await repoSystemCode.MaxAsync(orderBy, isTrack)); } }
/// <summary> /// Get max data row for orderby Id /// </summary> /// <param name="orderBy"></param> /// <param name="isTrack"></param> /// <returns></returns> public async Task <T> MaxAsync(IOrderByClause <T> orderBy, bool isTrack = true) { IQueryable <T> data = isTrack ? this.objectSet.AsQueryable <T>() : this.objectSet.AsNoTracking <T>(); bool isFirstSort = true; data = orderBy.ApplySort(data, isFirstSort); return(await data.FirstOrDefaultAsync()); }
internal OrderByClause( ISelectQuery selectQuery, IOrderByClause clone, Dictionary <ICloneableElement, ICloneableElement> objectTree, Predicate <ICloneableElement> doClone) : base(selectQuery) { Items.AddRange(clone.Items.Select(item => (IOrderByItem)item.Clone(objectTree, doClone))); }
/// <summary> /// 克隆 /// </summary> /// <param name="sqlBuilder">源生成器</param> protected void Clone(SqlBuilderBase sqlBuilder) { EntityMatedata = sqlBuilder.EntityMatedata; _parameterManager = sqlBuilder._parameterManager?.Clone(); EntityResolver = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata); AliasRegister = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister(); _selectClause = sqlBuilder._selectClause?.Clone(this, AliasRegister); _fromClause = sqlBuilder._fromClause?.Clone(AliasRegister); _joinClause = sqlBuilder._joinClause?.Clone(this, AliasRegister); _whereClause = sqlBuilder._whereClause?.Clone(AliasRegister, _parameterManager); _groupByClause = sqlBuilder._groupByClause?.Clone(AliasRegister); _orderByClause = sqlBuilder._orderByClause?.Clone(AliasRegister); _pager = sqlBuilder._pager; }
/// <summary> /// 复制Sql生成器 /// </summary> /// <param name="sqlBuilder">源生成器</param> protected void Clone(SqlBuilderBase sqlBuilder) { EntityMatedata = sqlBuilder.EntityMatedata; _parameterManager = sqlBuilder._parameterManager?.Clone(); EntityResolver = sqlBuilder.EntityResolver ?? new EntityResolver(EntityMatedata); AliasRegister = sqlBuilder.AliasRegister?.Clone() ?? new EntityAliasRegister(); _selectClause = sqlBuilder._selectClause?.Clone(this, AliasRegister); _fromClause = sqlBuilder._fromClause?.Clone(this, AliasRegister); _joinClause = sqlBuilder._joinClause?.Clone(this, AliasRegister, _parameterManager); _whereClause = sqlBuilder._whereClause?.Clone(this, AliasRegister, _parameterManager); _groupByClause = sqlBuilder._groupByClause?.Clone(AliasRegister); _orderByClause = sqlBuilder._orderByClause?.Clone(AliasRegister); Pager = sqlBuilder.Pager; OffsetParam = sqlBuilder.OffsetParam; LimitParam = sqlBuilder.LimitParam; UnionItems = sqlBuilder.UnionItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList(); CteItems = sqlBuilder.CteItems.Select(t => new BuilderItem(t.Name, t.Builder.Clone())).ToList(); }
public void Init( IInsertClause insert, IUpdateClause update, IDeleteClause delete, ISelectClause select, IFromClause from, IWhereClause where, IGroupByClause groupBy, IWhereClause having, IOrderByClause orderBy, LinkedList <IUnion> unions, ISelectQuery parentSelect, ICreateTableStatement createTable, bool parameterDependent, List <ISqlParameter> parameters) { Insert = insert; Update = update; Delete = delete; Select = select; From = from; Where = where; GroupBy = groupBy; Having = having; OrderBy = orderBy; Unions = unions; ParentSelect = parentSelect; CreateTable = createTable; IsParameterDependent = parameterDependent; Parameters.AddRange(parameters); foreach (var col in select.Columns) { col.Parent = this; } Select.SetSqlQuery(this); From.SetSqlQuery(this); Where.SetSqlQuery(this); GroupBy.SetSqlQuery(this); Having.SetSqlQuery(this); OrderBy.SetSqlQuery(this); }
/// <summary> /// 清空OrderBy子句 /// </summary> public ISqlBuilder ClearOrderBy() { _orderByClause = CreateOrderByClause(); return(this); }
/// <summary> /// 清空OrderBy子句 /// </summary> public void ClearOrderBy() { _orderByClause = CreateOrderByClause(); }
public async Task <ListResultDto <Employee> > GetAllPaging(string txtFirstOrLastName, string orderByField, string sortOrder, int page, int pageSize) { var totalRow = await _employeeRepository.Count(); var orderClause = new IOrderByClause <Employee>[] { new OrderByClause <Employee, int>(one => one.Id, SortDirection.Ascending) }; if (sortOrder == "Asc") { if (orderByField == "FirstName") { orderClause = new IOrderByClause <Employee>[] { new OrderByClause <Employee, string>(one => one.FirstName, SortDirection.Ascending) }; } else if (orderByField == "LastName") { orderClause = new IOrderByClause <Employee>[] { new OrderByClause <Employee, string>(one => one.LastName, SortDirection.Ascending) }; } } else { if (sortOrder == "Desc") { if (orderByField == "FirstName") { orderClause = new IOrderByClause <Employee>[] { new OrderByClause <Employee, string>(one => one.FirstName, SortDirection.Descending) }; } else if (orderByField == "LastName") { orderClause = new IOrderByClause <Employee>[] { new OrderByClause <Employee, string>(one => one.LastName, SortDirection.Descending) }; } } } var items = await _employeeRepository.GetMultiSortingPaging( null, orderClause, page, pageSize, null); if (!String.IsNullOrEmpty(txtFirstOrLastName) && txtFirstOrLastName != "null") { txtFirstOrLastName = txtFirstOrLastName.ToLower(); items = await _employeeRepository.GetMultiSortingPaging( x => x.FirstName.ToLower().Contains(txtFirstOrLastName) || x.LastName.ToLower().Contains(txtFirstOrLastName), orderClause, page, pageSize, null); } return(new ListResultDto <Employee>() { Total = totalRow, Items = items, }); }
public static IUnionStatement OrderBy(this IUnionStatement union, IOrderByClause orderby) { union.OrderBy = orderby; return(union); }
public static ISelectStatement OrderBy(this ISelectStatement select, IOrderByClause orderby) { select.OrderBy = orderby; return(select); }
public static IUnionStatement OB(this IUnionStatement union, IOrderByClause orderby) { return(OrderBy(union, orderby)); }
public static ISelectStatement OB(this ISelectStatement select, IOrderByClause orderby) { return(OrderBy(select, orderby)); }