コード例 #1
0
ファイル: TestBase.cs プロジェクト: anlei-fu/Jasmine
        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();
        }
コード例 #2
0
        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();
        }