예제 #1
0
        public List <dynamic> getDynamicQuery(int id, DTO.SearchOptions o)
        {
            var rdef                  = dbset.Single(a => a.ID == id);
            var meta                  = SqlServerUtils.getMetadata(DataContext, rdef.sqlquery);
            var queryType             = buildQueryType(meta);
            Task <List <object> > raw = dbFactory.Get().Query <dynamic>().FromSql(
                //Task<List<object>> raw = db.Get().Database.SqlQuery(
                //queryType,
                rdef.sqlquery,
                new SqlParameter {
                ParameterName = "beginDate", Value = o.beginDate
            },
                new SqlParameter {
                ParameterName = "endDate", Value = o.endDate
            },
                new SqlParameter {
                ParameterName = "dwccardnum", Value = o.dwccardnum
            }).ToListAsync();

            // TODO catch exception and handle here
            raw.Wait();
            var results = raw.Result;

            return(results);
        }
예제 #2
0
 public List <QueryMetadata> getColumns(string tableName)
 {
     if (tableName == null)
     {
         throw new ArgumentNullException("tableName can't be null");
     }
     return(SqlServerUtils.getMetadata(DataContext, "select top 0 * from " + tableName));
 }
예제 #3
0
        public void getDynamicQuery_test_all_metadata()
        {
            // arrange
            var context = frb.ToFactory().Get();
            var reports = frb.ToRepoReports().GetAllQ();

            foreach (var r in reports)
            {
                var result = SqlServerUtils.getMetadata(context, r.sqlquery);
                Assert.IsTrue(result.Count > 2);
            }
            // act
            // assert
        }