Ejemplo n.º 1
0
        public ReturnPageResult GetCount()
        {
            //按照id降序排列,取第10页的前10条
            //return GetsPageResult(c.Condition(c - "id" ^(10,10)) );

            //从前端传过来一个查询JSON格式

            /*{
             *     value:{
             *         id:10000
             *     },
             *     sql:"c>id ^c - id ^(3,10)",
             *     unions:[
             *         "tb_table1",
             *         "tb_table2"
             *     ]
             * }*/

            //模拟POST

            VasilyProtocal <TestEntity> vp = new VasilyProtocal <TestEntity>();

            vp.Script   = "c>id ^c - id ^(3,10)";
            vp.Instance = new TestEntity()
            {
                id = 1000
            };

            UseUnion("td_teacher1", "td_teacher2");
            return(GetsPageResult(vp));
        }
Ejemplo n.º 2
0
        public void TestLikeScript3()
        {
            SqlMaker <Relation2>       package = new SqlMaker <Relation2>();
            VasilyProtocal <Relation2> vp      = "c%StudentName ^ c+Id-ClassId  & c%ClassId ";

            Assert.Equal("([StudentName] LIKE @StudentName AND [ClassId] LIKE @ClassId) ORDER BY [Id] ASC,[ClassId] DESC",
                         vp.Full);
        }
Ejemplo n.º 3
0
        public void TestLikeScript2()
        {
            SqlMaker <Relation2>       package = new SqlMaker <Relation2>();
            VasilyProtocal <Relation2> vp      = "c % ClassId ^ c+Id-ClassId & c<=Id&(c==StudentName|c!= ClassId)^(3,10) & c%StudentName";

            Assert.Equal("((([ClassId] LIKE @ClassId AND [Id] <= @Id) AND ([StudentName] = @StudentName OR [ClassId] <> @ClassId)) AND [StudentName] LIKE @StudentName) ORDER BY [Id] ASC,[ClassId] DESC OFFSET 20 ROW FETCH NEXT 10 rows only",
                         vp.Full);
        }
Ejemplo n.º 4
0
        public void TestNormalScript3()
        {
            SqlMaker <Relation2>       package = new SqlMaker <Relation2>();
            VasilyProtocal <Relation2> vp      = "c+Id-ClassId ^ c<=Id&(c==StudentName|c!= ClassId)^(3,10)";

            Assert.Equal("([Id] <= @Id AND ([StudentName] = @StudentName OR [ClassId] <> @ClassId)) ORDER BY [Id] ASC,[ClassId] DESC OFFSET 20 ROW FETCH NEXT 10 rows only",
                         vp.Full);
        }
Ejemplo n.º 5
0
        public void TestPageCondition1()
        {
            SqlMaker <Relation2>       package = new SqlMaker <Relation2>();
            SqlCondition <Relation2>   c       = new SqlCondition <Relation2>();
            VasilyProtocal <Relation2> vp      = ((c > "StudentId" | c == "ClassId") & c != "ClassName") ^ (2, 10);

            vp.Instance = new { StudentId = 1, ClassId = 2, ClassName = "abc" };

            Assert.Equal(

                "(([StudentId] > @StudentId OR [ClassId] = @ClassId) AND [ClassName] <> @ClassName) OFFSET 10 ROW FETCH NEXT 10 rows only",

                vp.Full

                );
        }
Ejemplo n.º 6
0
        public void TestPageCondition2()
        {
            SqlMaker <Relation>     package = new SqlMaker <Relation>();
            SqlCondition <Relation> c       = new SqlCondition <Relation>();


            VasilyProtocal <Relation> vp = c > "StudentId" | c == "ClassId" & c != "Id" ^ (2, 10);

            vp.Instance = new { StudentId = 1, ClassId = 2, ClassName = "abc" };


            Assert.Equal(

                "(`StudentId` > @StudentId OR (`ClassId` = @ClassId AND `Id` <> @Id)) LIMIT 10,10",

                vp.Full

                );
        }
Ejemplo n.º 7
0
 public ReturnResult VasilyLinkDelete(VasilyProtocal <T> vp)
 {
     return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Delete(vp.Instance)));
 }
Ejemplo n.º 8
0
 public ReturnPageResult VasilyLinkPageGets(VasilyProtocal <T> vp)
 {
     return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Gets <object>(vp.Instance), driver.CountWithCondition(vp)));
 }
Ejemplo n.º 9
0
 public ReturnResult VasilyLinkGets(VasilyProtocal <T> vp)
 {
     return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Gets <object>(vp.Instance)));
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 用条件查询实例结果集,用条件查询总数
 /// </summary>
 /// <param name="vp">实例与查询条件</param>
 /// <param name="cp_count">实例与查询条件</param>
 /// <param name="message">附加信息</param>
 /// <returns></returns>
 protected ReturnPageResult GetsPageResult(VasilyProtocal <T> vp, string message = "查询失败!")
 {
     return(Result(driver.Gets(vp), driver.CountWithCondition(vp), message));
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 删除操作的结果返回
 /// </summary>
 /// <param name="cp">实例与查询条件</param>
 /// <param name="message">附加信息</param>
 /// <returns></returns>
 protected ReturnResult DeleteResult(VasilyProtocal <T> vp, string message = "删除失败!", ForceDelete flag = ForceDelete.No)
 {
     return(Result(driver.Delete(vp, flag), message));
 }
Ejemplo n.º 12
0
 /// <summary>
 /// 更新操作的结果返回
 /// </summary>
 /// <param name="cp">实例与查询条件</param>
 /// <param name="message">附加信息</param>
 /// <returns></returns>
 protected ReturnResult ModifyResult(VasilyProtocal <T> cp, string message = "更新失败!")
 {
     return(Result(driver.Modify(cp), message));
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 用条件查询实例结果集
 /// </summary>
 /// <param name="cp">实例与查询条件</param>
 /// <param name="message">附加信息</param>
 /// <returns></returns>
 protected ReturnResult GetsResult(VasilyProtocal <T> vp, string message = "查询失败!")
 {
     return(Result(driver.Gets(vp), message));
 }
Ejemplo n.º 14
0
 public SqlLink <T> Conditions(VasilyProtocal <T> vp)
 {
     _sqlCondition = vp.Full;
     return(this);
 }