protected void AddDefaultOrderByToQueryGenerator(string orderByColumn, bool isDesc, NHibernateDynamicQueryGenerator <DomainType> queryGenerator) { //没有排序字段用主键来排序 if (orderByColumn == string.Empty) { queryGenerator.AddOrderBy(Property.ForName(PkPropertyName[0]).Desc()); } else { if (orderByColumn.Contains(".")) { string tableAliasName = orderByColumn.Split('.')[0]; if (!queryGenerator.HasIncludeTable(tableAliasName)) { InClude_Parent_Table(tableAliasName, queryGenerator); } } if (isDesc) { queryGenerator.AddOrderBy(Property.ForName(orderByColumn).Desc()); } else { queryGenerator.AddOrderBy(Property.ForName(orderByColumn).Asc()); } } }
protected void AddQueryFiltersToQueryGenerator(List <QueryFilter> filters, NHibernateDynamicQueryGenerator <DomainType> queryGenerator) { //构造Filter查询条件 foreach (QueryFilter queryFilter in filters) { if (!queryFilter.FilterFieldName.Contains(".")) { ICriterion whereClause = queryFilter.GenerateNhibernateCriterion(GetFieldTypeByFieldName(queryFilter.FilterFieldName)); if (whereClause != null) { queryGenerator.AddWhereClause(whereClause); } } else { string tableAliasName = queryFilter.FilterFieldName.Split('.')[0]; if (!queryGenerator.HasIncludeTable(tableAliasName)) { InClude_Parent_Table(tableAliasName, queryGenerator); } ICriterion whereClause = queryFilter.GenerateNhibernateCriterion(GetFieldTypeByFieldName(queryFilter.FilterFieldName, tableAliasName)); if (whereClause != null) { queryGenerator.AddWhereClause(whereClause); } } } }