Example #1
0
        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());
                }
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }