Ejemplo n.º 1
0
        /// <summary>
        /// 生成统计表的类型集合
        /// </summary>
        /// <typeparam name="K">生成类型</typeparam>
        /// <returns>类型集合</returns>
        public List <K> GetObjectList <K>() where K : class, new()
        {
            AggregateTableMapping aggregateMapping = AggregateTableMapping.GetAggregateMapping(typeof(K));
            List <K> list = _context.QueryDynamicAggregateList(_enetityMapping, aggregateMapping, _dataFieldInfoDictionary, _aggregateFunctionDictionary, _query, _having, _order, _level) as List <K>;

            return(list);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 动态统计数据到数据集合中
 /// </summary>
 /// <param name="mapping">数据映射</param>
 /// <param name="amapping">统计结果类型</param>
 /// <param name="dataFieldInfoDictionary">统计字段信息</param>
 /// <param name="aggregateFunctionDictionary">统计方法信息</param>
 /// <param name="query">查询表达式</param>
 /// <param name="having">统计查询表达式</param>
 /// <param name="order">排序表达式</param>
 /// <param name="level">安全级别</param>
 /// <returns>数据集合</returns>
 internal IList QueryDynamicAggregateList(DataEntityMapping mapping, AggregateTableMapping amapping, Dictionary <string, DataFieldInfo> dataFieldInfoDictionary, Dictionary <string, AggregateFunction> aggregateFunctionDictionary, QueryExpression query, AggregateHavingExpression having, OrderExpression order, SafeLevel level)
 {
     if (amapping.RelateType != null && amapping.RelateType != mapping.ObjectType)
     {
         throw new LightDataException(string.Format(RE.AggregateTypeIsNotSpecifyType, amapping.RelateType.FullName));
     }
     using (IDbCommand command = _dataBase.Factory.CreateDynamicAggregateCommand(mapping, dataFieldInfoDictionary, aggregateFunctionDictionary, query, having, order))
     {
         IList       items = CreateList(amapping.ObjectType);
         IEnumerable ie    = QueryDataReader(amapping, command, null, level);
         foreach (object obj in ie)
         {
             items.Add(obj);
         }
         return(items);
     }
 }