Example #1
0
        private void ParseSelectPhrase(SelectPhrase pharse)
        {
            if (pharse is AggregatePhrase)
            {
                _sb.Append((pharse as AggregatePhrase).AggregateType);
            }

            _sb.Append(SQL_SERVER_KEYWORD.LP);
            _sb.Append(SQL_SERVER_KEYWORD.LPS);
            _sb.Append(pharse.TableName);
            _sb.Append(SQL_SERVER_KEYWORD.Dot);
            _sb.Append(pharse.Name);
            _sb.Append(SQL_SERVER_KEYWORD.RPS);
            _sb.Append(SQL_SERVER_KEYWORD.RP);

            if (!string.IsNullOrEmpty(pharse.Alias))
            {
                _sb.Append(SQL_SERVER_KEYWORD.WhiteSpace);
                _sb.Append(SQL_SERVER_KEYWORD.Alias);
            }

            _sb.Append(SQL_SERVER_KEYWORD.WhiteSpace);
            var splitChar = (pharse.Next is FromPhrase) ? SQL_SERVER_KEYWORD.WhiteSpace : SQL_SERVER_KEYWORD.Comma;

            _sb.Append(splitChar);
        }
        public async Task <T> GetResult <T>()
        {
            var list = await GetRawResult();

            if (!string.IsNullOrEmpty(WherePhrase))
            {
                list = list.AsQueryable().Where(WherePhrase).ToList();
            }

            if (!string.IsNullOrEmpty(OrderByPhrase))
            {
                list = list.AsQueryable().OrderBy(OrderByPhrase).ToList();
            }

            if (!string.IsNullOrEmpty(SelectPhrase) && !SelectPhrase.Equals("User"))
            {
                return((T)list.AsQueryable().Select($"new({SelectPhrase})"));
            }
            else
            {
                return((T)list);
            }
        }