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)); }
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); }
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); }
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); }
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 ); }
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 ); }
public ReturnResult VasilyLinkDelete(VasilyProtocal <T> vp) { return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Delete(vp.Instance))); }
public ReturnPageResult VasilyLinkPageGets(VasilyProtocal <T> vp) { return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Gets <object>(vp.Instance), driver.CountWithCondition(vp))); }
public ReturnResult VasilyLinkGets(VasilyProtocal <T> vp) { return(Result(SqlLink <T> .Load(driver).Fields(vp.Fields).Conditions(vp).Gets <object>(vp.Instance))); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
public SqlLink <T> Conditions(VasilyProtocal <T> vp) { _sqlCondition = vp.Full; return(this); }