Пример #1
0
 /// <summary>
 /// 获取总数
 /// </summary>
 /// <typeparam name="TQueryForm"></typeparam>
 /// <param name="mapper"></param>
 /// <param name="session"></param>
 /// <param name="command"></param>
 /// <param name="statementName"></param>
 /// <param name="form"></param>
 /// <param name="enableLog"></param>
 /// <returns></returns>
 public static int GetCount<TQueryForm>(ISqlMapper mapper, ISqlMapSession session, IDbCommand command, string statementName, TQueryForm form, bool enableLog = true)
     where TQueryForm : IQueryForm
 {
     IPagingSQL paging = PagingSQLFactory.Create(mapper.DataSource.DbProvider.Name);
     var sql = mapper.GetRuntimeSql(statementName, form, session);
     var countsql = paging.GetCountSQL(sql);
     command.Connection = session.Connection;
     command.CommandText = countsql;
     var paramString = BuildParams(mapper, statementName, form, command);
     if (command.Connection.State != ConnectionState.Open) command.Connection.Open();
     int count = (int)command.ExecuteScalar();
     if (enableLog)
     {
         SimpleLogger logger = new SimpleLogger();
         logger.Write(sql, true);
         logger.Write(paramString, true);
     }
     return count;
 }