public void loop() { ConsoleTitleUtil.ShowTestTitle("loop"); string looppage = @" <table><!-- BEGIN newphotos --> <tr><td>{#Title#}</td><td>{#CreateTime#}</td></tr><!-- END newphotos --> </table> "; Template loopTemplate = new Template(); loopTemplate.InitContent(looppage); // 给循环块设值 IBlock loopBlock = loopTemplate.GetBlock("newphotos"); for (int i = 0; i < 5; i++) { loopBlock.Set("Title", "一百航的诗篇" + i); loopBlock.Set("CreateTime", DateTime.Now.ToString()); loopBlock.Next(); } Console.WriteLine(loopTemplate); }
public void FindCondition_NoJoinTable() { ConsoleTitleUtil.ShowTestTitle("FindCondition_NoJoinTable"); // 不联表查询 IList <TArticle> articles = db.find <TArticle>("Member.Id=:mid").set("mid", 7).select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list(); //art.Select( "Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name" ); //IList articles = art.Find( "Member.Id=:mid" ).Set( "mid",7 ).List(); Assert.AreEqual(1, articles.Count); TArticle article = articles[0]; Assert.IsNotNull(article); Assert.IsNotNull(article.Title); //sql缓存测试 IList <TArticle> articles2 = db.find <TArticle>("Member.Id=:mid").set("mid", 7).select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list(); //art2.Select( "Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name" ); //IList articles2 = art2.Find( "Member.Id=:mid" ).Set( "mid",7 ).List(); Assert.AreEqual(1, articles2.Count); TArticle article2 = articles2[0]; Assert.IsNotNull(article2); Assert.IsNotNull(article2.Title); }
public void FindById() { ConsoleTitleUtil.ShowTestTitle("FindById"); // 基类TDataRoot,子类TPost和TTopic //子类简单查询 TPost post = TPost.findById(3) as TPost; Assert.IsNotNull(post); Assert.AreEqual(3, post.Id); Console.WriteLine("Id:{0} Title:{1}", post.Id, post.Title); TPost post2 = TPost.findById(11) as TPost; Assert.IsNotNull(post2); //多态查询:正确判断结果是相应子类 TDataRoot root = TDataRoot.findById(6); Assert.IsNotNull(root); Assert.AreEqual(6, root.Id); Assert.AreEqual(typeof(TTopic), root.GetType()); //针对属性的多态查询 Assert.AreEqual(typeof(TTopicCategory), root.Category.GetType()); }
public void FindById_ContextCache() { ConsoleTitleUtil.ShowTestTitle("FindById_ContextCache"); //复杂关联find TArticle art = TArticle.findById(1); Console.WriteLine("article 1 title is : " + art.Title); Assert.AreEqual("狂人日记", art.Title); //一级缓存 TMember member = TMember.findById(13); Console.WriteLine("member 13 name is : " + member.Name); Assert.AreEqual("袁世凯", member.Name); TCat cat = TCat.findById(8); Console.WriteLine("cat 8 name is " + cat.Name); Assert.AreEqual("武侠小说", cat.Name); TBoard board = TBoard.findById(9); Console.WriteLine("board 9 name is : " + board.Name); Assert.AreEqual("board_互联网络", board.Name); }
public void UpdateCat() { ConsoleTitleUtil.ShowTestTitle("UpdateCat"); TCat cat = TCat.findById(10); Console.WriteLine("\n读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode()); Assert.AreEqual("国内新闻10", cat.Name); cat.Name = "糊播新闻10"; db.update(cat); Console.WriteLine("\n更新 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode()); cat = TCat.findById(10); Console.WriteLine("\n重新读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode()); Assert.AreEqual("糊播新闻10", cat.Name); // Id 不可以修改 //------------------------------------------------ cat.Id = 101; cat.update(); TCat newCat = TCat.findById(101); Assert.IsNull(newCat); }
//------------------------- Insert ------------------------- public void InsertArticle() { ConsoleTitleUtil.ShowTestTitle("InsertArticle"); TArticle art = new TArticle(); art.Member = TMember.findById(13); art.Cat = TCat.findById(8); art.Board = TBoard.findById(9); art.Author = "54鲁迅"; art.Title = "狂人日记"; art.CreateTime = DateTime.Now; art.ChannelId = 18; art.IsDelete = 0; art.OrderId = 5; art.insert(); int id = art.Id; art.Member = TMember.findById(2); art.Cat = TCat.findById(10); art.Board = TBoard.findById(11); art.Author = "周做人"; art.Title = "论雷锋大的倒掉"; art.CreateTime = DateTime.Now; art.ChannelId = 12; art.IsDelete = 0; art.OrderId = 8; art.insert(); id = id + 1; Assert.AreEqual(id, art.Id); art.Member = TMember.findById(7); art.Cat = TCat.findById(4); art.Board = TBoard.findById(4); art.Author = "嵇康"; art.Title = "与善举员绝交数"; art.CreateTime = DateTime.Now; art.ChannelId = 4; art.IsDelete = 0; art.OrderId = 9; art.insert(); id = id + 1; Assert.AreEqual(id, art.Id); art.Member = TMember.findById(8); art.Cat = TCat.findById(7); art.Board = TBoard.findById(3); art.Author = "羽化"; art.Title = "许三管买血迹"; art.CreateTime = DateTime.Now; art.ChannelId = 4; art.IsDelete = 0; art.OrderId = 15; art.insert(); id = id + 1; Assert.AreEqual(id, art.Id); Console.WriteLine("添加 article 成功!"); }
public void FindAll() { ConsoleTitleUtil.ShowTestTitle("FindAll"); Console.WriteLine("__tpost__"); // 子类直接查询:这个最简单,没有额外考虑 //IList list = TPost.findAll(); IList list = db.findAll <TPost>(); Assert.AreEqual(list.Count, 20); foreach (TPost post in list) { Assert.AreEqual(typeof(TPostCategory), post.Category.GetType()); //检索实体属性的时候,使用了FindBy方法 Console.WriteLine("Id:{0} Title:{1}", post.Id, post.Title); } Console.WriteLine("__ttopic__"); //IList topicList = TTopic.findAll(); IList topicList = db.findAll <TTopic>(); Assert.AreEqual(topicList.Count, 23); foreach (TTopic post in topicList) { Assert.AreEqual(typeof(TTopicCategory), post.Category.GetType()); Console.WriteLine("Id:{0} Title:{1}", post.Id, post.Title); } Console.WriteLine("__findAll__"); //多态查询:将子类查询结果合并,并且根据多态查询所属分类 IList list2 = TDataRoot.findAll(); Assert.AreEqual(46, list2.Count); int rootDataCount = 0; foreach (TDataRoot root in list2) { if (root.GetType() == typeof(TPost)) { Assert.AreEqual(typeof(TPostCategory), root.Category.GetType()); } else if (root.GetType() == typeof(TTopic)) { Assert.AreEqual(typeof(TTopicCategory), root.Category.GetType()); } else if (root.GetType() == typeof(TDataRoot)) { rootDataCount += 1; Assert.AreEqual(typeof(TCategory), root.Category.GetType()); } Console.WriteLine("id:{1} [type]{0} [categoryType]:{3} title:{2}", Entity.GetInfo(root).FullName, root.Id, root.Title, root.Category.GetType()); } Assert.AreEqual(3, rootDataCount); }
public void FindCondition_Simply3() { ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply"); TCat mycat = TCat.find("Id=" + 3).first(); Assert.IsNotNull(mycat); Assert.AreEqual("娱乐电影", mycat.Name); }
public void GetCat() { ConsoleTitleUtil.ShowTestTitle("GetCat"); TCat cat = TCat.findById(20); Assert.AreEqual("国际新闻20", cat.Name); Console.WriteLine("\n读取 TCat{{Id:{0},Name:{1}}} code:{2} \n", cat.Id, cat.Name, cat.GetHashCode()); }
public void FindCondition_LikeParams() { ConsoleTitleUtil.ShowTestTitle("FindCondition_LikeParams"); List <TCat> cats = TCat.find("Name like '%'+:t+'%'").set("t", "新闻").list(); Assert.AreEqual(2, cats.Count); Assert.AreEqual("国际新闻", cats[0].Name); Assert.AreEqual("国内新闻", cats[1].Name); }
public void FindCondition_Simply4() { ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply"); IList <TArticle> articles = TArticle.find("OrderId=" + 9).list(); Assert.AreEqual(1, articles.Count); TArticle art = articles[0]; Assert.AreEqual("嵇康", art.Author); }
public void DeleteCat() { ConsoleTitleUtil.ShowTestTitle("DeleteCat"); int retval = TCat.delete(30); Assert.AreEqual(1, retval); // 删除了一条记录 Console.WriteLine("\n删除 {0} 条记录 \n", retval); TCat mycat = TCat.findById(30); Assert.IsNull(mycat); }
public void UpdateACat() { ConsoleTitleUtil.ShowTestTitle("UpdateCat"); TCat cat = TCat.findById(2); Assert.AreEqual("国际新闻", cat.Name); cat.Name = "这里不是新闻"; cat.update(); TCat newcat = TCat.findById(cat.Id); Assert.AreEqual("这里不是新闻", newcat.Name); }
public void FindById_Simply() { ConsoleTitleUtil.ShowTestTitle("FindById_Simply"); //简易find TCat cat = TCat.findById(3); Console.WriteLine("cat name is : " + cat.Name); Assert.AreEqual("娱乐电影", cat.Name); TCat nullCat = TCat.findById(99999999); Assert.IsNull(nullCat); }
public void FindCondition_Simply2() { ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply"); IList <TCat> cats = TCat.find("Id>" + 5).select("Id,Name,ArticleCount").list(); Assert.AreEqual(7, cats.Count); foreach (TCat cat in cats) { Assert.Greater(cat.Id, 0); Assert.IsNotNull(cat.Name); } }
public void FindCondition_IncludeAll() { ConsoleTitleUtil.ShowTestTitle("FindCondition_IncludeAll"); IList <TArticle> articles = TArticle.find("").list(); Assert.AreEqual(4, articles.Count); foreach (TArticle myart in articles) { Assert.IsNotNull(myart.Title); Assert.IsNotNull(myart.Cat.Name); Assert.IsNotNull(myart.Board.Name); } }
public void InsertMember() { ConsoleTitleUtil.ShowTestTitle("InsertMember"); TMember member = new TMember(); member.Name = "张三"; member.insert(); member.Name = "屈原"; member.insert(); member.Name = "李白"; member.insert(); member.Name = "嵇康"; member.insert(); member.Name = "庄子"; member.insert(); member.Name = "杜甫"; member.insert(); member.Name = "苏轼"; member.insert(); member.Name = "李世民"; member.insert(); member.Name = "诸葛亮"; member.insert(); member.Name = "曹操"; member.insert(); member.Name = "司马迁"; member.insert(); member.Name = "孙中山"; member.insert(); member.Name = "袁世凯"; member.insert(); member.Name = "毛泽东"; member.insert(); Console.WriteLine("添加 member 成功!"); }
public void FindAll_Simply() { ConsoleTitleUtil.ShowTestTitle("FindAll_Simply"); IList <TCat> results = TCat.findAll(); Assert.AreEqual(12, results.Count); foreach (TCat cat in results) { Assert.Greater(cat.Id, 0); Assert.IsNotNull(cat.Name); Console.WriteLine("TCat {0} - {1}", cat.Id, cat.Name); } }
public void FindCondition_OrderBy() { ConsoleTitleUtil.ShowTestTitle("FindCondition_OrderBy"); IList <TCat> results = db.find <TCat>("order by Id desc").list(); Assert.AreEqual(12, results.Count); foreach (TCat cat in results) { Assert.Greater(cat.Id, 0); Assert.IsNotNull(cat.Name); Console.WriteLine("TCat {0} - {1}", cat.Id, cat.Name); } }
public void FindCondition_Simply() { ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply"); List <TCat> cats = db.find <TCat>("Id>:myid").set("myid", 5).select("Id,Name,ArticleCount").list(); Assert.AreEqual(7, cats.Count); foreach (TCat cat in cats) { Assert.Greater(cat.Id, 0); Assert.IsNotNull(cat.Name); Console.WriteLine(cat.Id); } }
public void FindCondition_JoinTable() { ConsoleTitleUtil.ShowTestTitle("FindCondition_JoinTable"); // 需要联表查询 IList <TArticle> articles = TArticle.find("Member.Id=:mid and Cat.Name=:catname order by Id desc, Member.Id asc").set("mid", 7).set("catname", "音像世界").select("Id,Title,Member.Id,Cat.Name,Cat.ArticleCount,Board.Name").list(); Assert.AreEqual(1, articles.Count); TArticle article = articles[0]; Assert.IsNotNull(article); Assert.IsNotNull(article.Title); Assert.IsNotNull(article.Cat.Name); Assert.IsNotNull(article.Board.Name); }
public void ZDelete() { ConsoleTitleUtil.ShowTestTitle("Delete"); int id = 2; TBoard bd = TBoard.findById(id); Assert.IsNotNull(bd); Assert.AreEqual(id, bd.Id); db.delete(bd); TBoard myboard = TBoard.findById(id); Assert.IsNull(myboard); }
public void loopThird() { ConsoleTitleUtil.ShowTestTitle("loopThird"); string looppage = @" <table> <!-- BEGIN newphotos --> <tr><td>{#Title#}</td><td>{#CreateTime#}</td></tr> <tr><td colspan=2><!-- BEGIN item --> {#Name#} <!-- BEGIN suitem --> {#SubName#}<br/><!-- END suitem --> <!-- END item --></td></tr> <!-- END newphotos --> </table> "; Template t = new Template(); t.InitContent(looppage); IBlock block = t.GetBlock("newphotos"); for (int i = 0; i < 3; i++) { block.Set("Title", "mytitle" + i); block.Set("CreateTime", "190" + i); IBlock block2 = block.GetBlock("item"); for (int k = 0; k < 3; k++) { block2.Set("Name", "nameis" + k); IBlock subblock = block2.GetBlock("suitem"); for (int j = 0; j < 3; j++) { subblock.Set("SubName", "xxsub" + j); subblock.Next(); } block2.Next(); } block.Next(); } Console.WriteLine(t); }
public void FindCondition_Simply4() { ConsoleTitleUtil.ShowTestTitle("FindCondition_Simply4"); IList <TArticle> articles = db.find <TArticle>("OrderId=" + 9).list(); Assert.AreEqual(1, articles.Count); TArticle art = articles[0]; Assert.AreEqual("嵇康", art.Author); IList <TCat> cats = TArticle.find("OrderId=" + 9).listChildren <TCat>("Cat"); Assert.AreEqual(1, cats.Count); Assert.AreEqual("音像世界", cats[0].Name); }
public void Delete() { ConsoleTitleUtil.ShowTestTitle("Delete"); //子类删除:删除子类的同时,也要删除父类中的数据 TPost post = TPost.findById(11) as TPost; Assert.IsNotNull(post); db.delete(post); post = TPost.findById(11) as TPost; Assert.IsNull(post); //父类删除:同时删除子类 TDataRoot.delete(13); Assert.IsNull(TDataRoot.findById(13)); }
public void InsertCat() { ConsoleTitleUtil.ShowTestTitle("InsertCat"); TCat cat = new TCat(); cat.Name = "国内新闻"; cat.insert(); cat.Name = "国际新闻"; cat.insert(); cat.Name = "娱乐电影"; cat.insert(); cat.Name = "音像世界"; cat.insert(); cat.Name = "游戏广场"; cat.insert(); cat.Name = "文学艺术"; cat.insert(); cat.Name = "电视剧本"; cat.insert(); cat.Name = "武侠小说"; cat.insert(); cat.Name = "互联网络"; cat.insert(); cat.Name = "软件服务"; cat.insert(); cat.Name = "笑话幽默"; cat.insert(); cat.Name = "金融期货"; cat.insert(); Console.WriteLine("添加 cat 成功!"); }
public void InsertBoard() { ConsoleTitleUtil.ShowTestTitle("InsertBoard"); TBoard board = new TBoard(); board.Name = "board_国内新闻"; board.insert(); board.Name = "board_国际新闻"; board.insert(); board.Name = "board_娱乐电影"; board.insert(); board.Name = "board_音像世界"; board.insert(); board.Name = "board_游戏广场"; board.insert(); board.Name = "board_文学艺术"; board.insert(); board.Name = "board_电视剧本"; board.insert(); board.Name = "board_武侠小说"; board.insert(); board.Name = "board_互联网络"; board.insert(); board.Name = "board_软件服务"; board.insert(); board.Name = "board_笑话幽默"; board.insert(); board.Name = "board_金融期货"; board.insert(); Console.WriteLine("添加 board 成功!"); }
public void Update() { ConsoleTitleUtil.ShowTestTitle("Update"); //子类更新:父类相应属性也要更新 TPost post = TPost.findById(3) as TPost; post.Title = "**更新之后的子类"; db.update(post); string sql = "select title from Tdataroot where id=3"; string title = wojilu.Data.EasyDB.ExecuteScalar(sql, wojilu.Data.DbContext.getConnection(post.GetType())) as string; Assert.IsNotNull(title); Assert.AreEqual(post.Title, title); //父类更新:其实是真实的底层子类更新,同上 }
public void FindAll_IncludeAll() { ConsoleTitleUtil.ShowTestTitle("FindAll_Include"); IList <TArticle> arts = TArticle.findAll(); Assert.AreEqual(4, arts.Count); foreach (TArticle a in arts) { Assert.Greater(a.Id, 0); Assert.IsNotNull(a.Title); Assert.IsNotNull(a.Member.Name); Assert.IsNotNull(a.Cat.Name); Assert.IsNotNull(a.Board.Name); Console.WriteLine(a.Title + "\t" + a.Member.Name + "\t" + a.Cat.Name + "\t" + a.Board.Name); } }
public void InsertCat() { ConsoleTitleUtil.ShowTestTitle("InsertCat"); TCat cat = new TCat(); cat.Id = 10; cat.Name = "国内新闻10"; db.insert(cat); cat.Name = "国际新闻20"; cat.Id = 20; db.insert(cat); cat.Name = "金融期货30"; cat.Id = 30; db.insert(cat); Console.WriteLine("\n添加 cat 成功!\n\n"); }