protected DataCountingEventArgs OnCounting(ICondition condition, string includes)
        {
            var args = new DataCountingEventArgs(this.Name, condition, includes);

            this.OnCounting(args);
            return(args);
        }
        protected virtual void OnCounting(DataCountingEventArgs args)
        {
            var e = this.Counting;

            if (e != null)
            {
                e(this, args);
            }
        }
        protected virtual bool OnCounting(DataCountContext context)
        {
            var e = this.Counting;

            if (e == null)
            {
                return(false);
            }

            var args = new DataCountingEventArgs(context);

            e(this, args);
            return(args.Cancel);
        }