public void Run(IDbConnectionProvider provider, List <Animal> datas) { _provider = provider; _excutor = new JasmineSqlExcutor(_provider); _datas = datas; testSingleRowInsert(); testSingleRowInsertPartial(); testBulkInsert(); testBulKInsertPartial(); testDelete(); testFullQuery(); testFullQueryConditional(); testPartialQuery(); testPartialQuery1(); testUpdate(); testUpdateBulk(); }
static void Main(string[] args) { /* * * Raw sql generate ability * */ create(); query(); //queryPartial(); //queryPartial(); //queryPartial(); //queryPartialCondition(); //queryWith(); //insert(); /* * create table */ // excutor.Create<Animal>(); var provider = new SqlServerConnectionProvider("Server=HW09;Database=Test;Trusted_Connection=True;"); var excutor = new JasmineSqlExcutor(provider); excutor.Create <Animal>(); excutor.DeleteAll <Animal>(); int dataSize = 1000; Console.WriteLine($"test sqlexcutor and dapper speed,data size is {dataSize} row"); var connetion = provider.Rent(); //data var datas = new List <Animal>(); for (int i = 0; i < dataSize; i++) { var animal = new Animal(); animal.Name = i.ToString(); datas.Add(animal); } Start("single row insert"); startWatch(); foreach (var item in datas) { connetion.Execute("insert into animal(name,age,canfly) values (@Name,@Age,@CanFly)", item); } PrintDapper(); excutor.DeleteAll <Animal>(); startWatch(); foreach (var item in datas) { excutor.Insert <Animal>(item); } PrintExcutor(); End(); excutor.DeleteAll <Animal>(); Start("test single row partial insert"); connetion = provider.Rent(); startWatch(); foreach (var item in datas) { connetion.Execute("insert into animal(name,age) values (@Name,@Age)", item); } PrintDapper(); excutor.DeleteAll <Animal>(); startWatch(); foreach (var item in datas) { excutor.InsertPartial <Animal>(item, null, "Name", "Age"); } PrintExcutor(); End(); Start(" full query"); startWatch(); var result = connetion.Query <Animal>("select * from animal"); PrintDapper(); startWatch(); result = excutor.Query <Animal>(); PrintExcutor(); End(); excutor.DeleteAll <Animal>(); Start("batch insert"); startWatch(); connetion.Execute("insert into animal(name,age,canfly) values(@Name,@Age,@CanFly)", datas); PrintDapper(); excutor.DeleteAll <Animal>(); startWatch(); excutor.BatchInsert <Animal>(datas); PrintExcutor(); End(); excutor.DeleteAll <Animal>(); Start("test batch insert partial...."); startWatch(); connetion.Execute("insert into animal(name,age) values(@Name,@Age)", datas); PrintDapper(); excutor.DeleteAll <Animal>(); startWatch(); excutor.BatchInsertPartial <Animal>(new string[] { "Name", "Age" }, datas); PrintExcutor(); End(); foreach (var item in excutor.QueryTopOrderByDesc <Animal>(10, "Name")) { Console.WriteLine(item.Name); } Start("test delete"); startWatch(); connetion.Execute("delete from animal where name in @ids", new { ids = new string[] { "2", "3", "4" } }); PrintDapper(); startWatch(); excutor.Delete <Animal>("name in @ids", new { ids = new string[] { "4", "5", "6" } }); PrintExcutor(); End(); Start("test delete2 ,test cache is useless? "); startWatch(); connetion.Execute("delete from animal where name in @ids", new { ids = new string[] { "2", "3", "4" } }); PrintDapper(); startWatch(); excutor.Delete <Animal>("name in @ids", new { ids = new string[] { "4", "5", "6" } }); PrintExcutor(); End(); Start("test query conditional"); startWatch(); connetion.Query <Animal>("select * from animal where name=@name", new { name = "99" }); PrintDapper(); startWatch(); excutor.QueryConditional <Animal>("name=@name", new { name = "99" }); PrintExcutor(); Start("test select top "); startWatch(); excutor.QueryTop <Animal>(20); PrintExcutor(); End(); Start("test select order by "); startWatch(); var results = excutor.QueryPartialConditionalOrderByAsc <Animal>("age>10", null, "name", "name"); PrintExcutor(); foreach (var item in results) { Console.WriteLine(item.Name); } End(); Console.Read(); }