Ejemplo n.º 1
0
        protected void PrepareArgs(EntityQueryArgsBase args)
        {
            if (args.EntityList == null)
            {
                //必须使用 NewListFast,否则使用 NewList 会导致调用了 NotifyLoaded,
                //这样,不但不符合设计(这个列表需要在客户端才调用 NotifyLoaded),还会引发树型实体列表的多次关系重建。
                args.EntityList = Repo.NewListFast();
            }

            args.SetQueryType(FinalDataPortal.CurrentIEQC.QueryType);
        }
Ejemplo n.º 2
0
        ///// <summary>
        ///// 所有使用 IQuery 的数据查询,在调用完应 queryBuilder 之后,都会执行此此方法。
        ///// 所以子类可以重写此方法实现统一的查询条件逻辑。
        ///// (例如,对于映射同一张表的几个子类的查询,可以使用此方法统一对所有方法都过滤)。
        /////
        ///// 默认实现为:
        ///// * 如果还没有进行排序,则进行默认的排序。
        ///// * 如果单一参数实现了 IPagingCriteria 接口,则使用其中的分页信息进行分页。
        ///// </summary>
        ///// <param name="args"></param>
        //protected virtual void OnPropertyQuerying(PropertyQueryArgs args)
        //{
        //    //如果没有指定 OrderNo 字段,则按照Id 排序。
        //    if (args.FetchType != FetchType.Count && !args.PropertyQuery.HasOrdered)
        //    {
        //        args.PropertyQuery.OrderBy(Entity.IdProperty, OrderDirection.Ascending);
        //    }

        //    //默认对分页进行处理。
        //    if (args.Filter == null)
        //    {
        //        var pList = CurrentIEQC.Parameters;
        //        if (pList.Length == 1)
        //        {
        //            var userCriteria = pList[0] as IPagingCriteria;
        //            if (userCriteria != null) { args.PropertyQuery.Paging(userCriteria.PagingInfo); }
        //        }
        //    }
        //}

        #endregion

        private void PrepareArgs(EntityQueryArgsBase args)
        {
            if (args.EntityList == null)
            {
                //必须使用 NewListFast,否则使用 NewList 会导致调用了 NotifyLoaded,
                //这样,不但不符合设计(这个列表需要在客户端才调用 NotifyLoaded),还会引发树型实体列表的多次关系重建。
                args.EntityList = (Repo as EntityRepository).NewListFast();
            }

            args.SetQueryType(CurrentIEQC.QueryType);
        }