예제 #1
0
        private string Table <M>(UiMethodEnum type)
        {
            var tableName = string.Empty;

            if (type != UiMethodEnum.JoinQueryListAsync)
            {
                tableName = GetTableName(typeof(M));
            }

            return(tableName);
        }
예제 #2
0
        private string Table <M>(UiMethodEnum type)
        {
            var tableName = string.Empty;

            if (type != UiMethodEnum.JoinQueryListAsync)
            {
                //tableName = GetTableName(typeof(M));
                var key = DC.SC.GetKey(typeof(M).FullName, DC.Conn.Database);
                tableName = DC.SC.GetModelTableName(key);
            }

            return(tableName);
        }
예제 #3
0
        /**********************************************************************************************************/

        protected async Task <PagingList <T> > PagingListAsyncHandle <T>(UiMethodEnum sqlType, bool single)
        {
            var result = new PagingList <T>();

            result.PageIndex = DC.PageIndex.Value;
            result.PageSize  = DC.PageSize.Value;
            PreExecuteHandle(sqlType);
            result.TotalCount = await DC.DS.ExecuteScalarAsync <int>();

            if (single)
            {
                result.Data = await DC.DS.ExecuteReaderSingleColumnAsync <T>();
            }
            else
            {
                result.Data = await DC.DS.ExecuteReaderMultiRowAsync <T>();
            }
            return(result);
        }
예제 #4
0
        /**********************************************************************************************************/

        protected void PreExecuteHandle(UiMethodEnum method)
        {
            DC.DPH.SetParameter();
            DC.Method = method;
            DC.SqlProvider.GetSQL();
        }
예제 #5
0
파일: Impler.cs 프로젝트: BestHYC/MyDAL
        protected async Task <PagingList <VM> > PagingListAsyncHandle <M, VM>(int pageIndex, int pageSize, UiMethodEnum sqlType)
            where VM : class
        {
            var result = new PagingList <VM>();

            DC.PageIndex = result.PageIndex = pageIndex;
            DC.PageSize  = result.PageSize = pageSize;
            PreExecuteHandle(sqlType);
            result.TotalCount = await DC.DS.ExecuteScalarAsync <int>();

            result.Data = await DC.DS.ExecuteReaderMultiRowAsync <VM>();

            return(result);
        }
예제 #6
0
        internal List <string> GetSQL <M>(UiMethodEnum type, int?pageIndex = null, int?pageSize = null)
        {
            var list = new List <string>();

            //
            switch (type)
            {
            case UiMethodEnum.CreateAsync:
                list.Add($" insert into {Table<M>(type)} {GetColumns()} values {GetValues()} ;");
                break;

            case UiMethodEnum.CreateBatchAsync:
                list.Add(
                    $" LOCK TABLES {Table<M>(type)} WRITE; " +
                    $" \r\n /*!40000 ALTER TABLE {Table<M>(type)} DISABLE KEYS */; " +
                    $" \r\n insert into  {Table<M>(type)} {GetColumns()} \r\n VALUES {GetValues()} ; " +
                    $" \r\n /*!40000 ALTER TABLE {Table<M>(type)} ENABLE KEYS */; " +
                    $" \r\n UNLOCK TABLES; "
                    );
                break;

            case UiMethodEnum.DeleteAsync:
                list.Add($" delete {From()} {Table<M>(type)} {Wheres()} ; ");
                break;

            case UiMethodEnum.UpdateAsync:
                list.Add($" update {Table<M>(type)} \r\n set {DC.SqlProvider.GetUpdates()} {Wheres()} ;");
                break;

            case UiMethodEnum.QueryFirstOrDefaultAsync:
                list.Add($"select {Columns()} {From()} {Table<M>(type)} {Wheres()} ; ");
                break;

            case UiMethodEnum.JoinQueryFirstOrDefaultAsync:
                list.Add($" select {Columns()} {From()} {Joins()} {Wheres()} ; ");
                break;

            case UiMethodEnum.QueryListAsync:
                list.Add($"select {Columns()} {From()} {Table<M>(type)} {Wheres()} ; ");
                break;

            case UiMethodEnum.JoinQueryListAsync:
                list.Add($" select {Columns()} {From()} {Joins()} {Wheres()} ; ");
                break;

            case UiMethodEnum.QueryPagingListAsync:
                var wherePart8 = Wheres();
                list.Add($"select count(*) {From()} {Table<M>(type)} {wherePart8} ; ");
                list.Add($"select {Columns()} {From()} {Table<M>(type)} {wherePart8} {GetOrderByPart<M>()} {Limit(pageIndex,pageSize)}  ; ");
                break;

            case UiMethodEnum.JoinQueryPagingListAsync:
                var wherePart9 = Wheres();
                list.Add($"select count(*) {From()} {Joins()} {wherePart9} ; ");
                list.Add($"select {Columns()} {From()} {Joins()} {wherePart9} {GetOrderByPart()} {Limit(pageIndex,pageSize)}  ; ");
                break;

            case UiMethodEnum.QueryAllPagingListAsync:
                list.Add($"select count(*) {From()} {Table<M>(type)} ; ");
                list.Add($"select * {From()} {Table<M>(type)} {GetOrderByPart<M>()} {Limit(pageIndex,pageSize)}  ; ");
                break;

            case UiMethodEnum.QuerySingleValueAsync:
                list.Add($" select {GetSingleValuePart()} {From()} {Table<M>(type)} {Wheres()} ; ");
                break;

            case UiMethodEnum.ExistAsync:
                list.Add($" select count(*) {From()} {Table<M>(type)} {Wheres()} ; ");
                break;

            case UiMethodEnum.QueryAllAsync:
                list.Add($" select * {From()} {Table<M>(type)} ; ");
                break;
            }

            //
            if (XDebug.Hint)
            {
                XDebug.SQL = list;
                var paras = DC.GetParameters();
                XDebug.Parameters = DC
                                    .Conditions
                                    .Where(it => DC.IsParameter(it))
                                    .Select(it =>
                {
                    return($"key:【{it.Param}】;val:【{it.CsValue}】;param【{it.DbValue}】.");
                })
                                    .ToList();
            }

            //
            return(list);
        }