/// <summary>
        /// 查询数据条数
        /// </summary>
        /// <param name="searchExpression"></param>
        /// <param name="session"></param>
        /// <returns></returns>
        private int GetCount(ISearchExpression searchExpression, NHibernate.ISession session)
        {
            Dictionary <string, object> paramNames = new Dictionary <string, object>();
            string q = CreateQueryCountString(searchExpression, session.SessionFactory, paramNames);

            NHibernate.IQuery query = session.CreateQuery(q);
            foreach (KeyValuePair <string, object> kvp in paramNames)
            {
                IList arr = kvp.Value as IList;
                if (arr == null)
                {
                    query.SetParameter(kvp.Key, kvp.Value);
                }
                else
                {
                    query.SetParameterList(kvp.Key, arr);
                }
            }

            IList list = query.List();

            return(Feng.Utils.ConvertHelper.ToInt(list[0]).Value);
        }
        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="searchExpression"></param>
        /// <param name="searchOrders"></param>
        /// <param name="session"></param>
        /// <returns></returns>
        private System.Collections.IEnumerable GetData(ISearchExpression searchExpression, IList <ISearchOrder> searchOrders, NHibernate.ISession session)
        {
            Dictionary <string, object> paramNames = new Dictionary <string, object>();
            string q = CreateQueryString(searchExpression, searchOrders, session.SessionFactory, paramNames);

            NHibernate.IQuery query = session.CreateQuery(q);
            foreach (KeyValuePair <string, object> kvp in paramNames)
            {
                IList arr = kvp.Value as IList;
                if (arr == null)
                {
                    query.SetParameter(kvp.Key, kvp.Value);
                }
                else
                {
                    query.SetParameterList(kvp.Key, arr);
                }
            }
            OnQueryCreated(query);

            IList <T> list = query.List <T>();

            return(list);
        }