Moon.ORM- 4.4 隆重发布,在性能和使用便捷上一挑群雄(mysoft,cyq,pdf)

从性能上讲目前没有性能与moon可比的框架(非纯ADO.NET),便捷上除了实体框架,大家自己使用各框架便可知道.不过我挺喜欢PDF的思路,可以几乎不用反射实现,所以性能很高.在此表示无意战争,只是告诉我的那帮Moon.Orm支持者及还不理解ORM的朋友一点性能上看见.

第一部分论性能

4.4对自动编译方法进行了重构.

例如:

List<North.Orders> list=DBFactory.GetEntitiesH<North.Orders>(OrdersTable.OrderID.BiggerThan(0),"实体所在的程序集");

看代码.

/*

 * 

 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件

 */

using System;

using CYQ.Data;

using CYQ.Data.Table;

using CYQ.Entity;

using CYQ.Entity.MyNorthWind;

using MDB;

using Moon.Orm;

using MySoft.Data;

using North;

using PWMIS.DataMap.Entity;



namespace Demo

{

    class Program

    {

        public static void Main(string[] args)

        {

            //---------可能有预处理,这些不管----------------

            PDF.NorthWind.Customers pdft = new PDF.NorthWind.Customers();

            

            OQL qt= new OQL(pdft);

            qt.Select().Where(qt.Condition.AND(pdft.CustomerID,">",1));

            

            var resultt = EntityQuery<PDF.NorthWind.Customers >.QueryList(qt);

            //

            PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelperByConnectionName("pdf");

            using(MAction actiont = new MAction(TableNames.Customers))

            {

                if (actiont.Fill("CustomerID>1"))//查询ID>888的结果中取ID最大的的单行数据

                {

                    var listt=actiont.Select().ToList<North.Customers>();

                }

            }

            DbSession dbSession = new DbSession(new MySoft.Data.SqlServer9.SqlServer9Provider(System.Configuration.ConfigurationSettings.AppSettings["linkString"]));

         

            //dbSession.CacheOff();

            //第一次动态编译

            var test=DBFactory.GetEntitiesH<North.Customers>(CustomersTable.CustomerID.BiggerThan(0),"demo.exe");

            

            var listMysoft=dbSession.From<MySoft.Customers>().Where(MySoft.Customers._.CustomerID>0).ToList<MySoft.Customers>();

            //======================================

            

            long t1=DateTime.Now.Ticks;

            for (int i = 0; i < 800; i++) {

                PDF.NorthWind.Customers pdf = new PDF.NorthWind.Customers();

                

                OQL q = new OQL(pdf);

                q.Select().Where(q.Condition.AND(pdf.CustomerID,">",1));

                

                var result = EntityQuery<PDF.NorthWind.Customers >.QueryList(q);

            }

            long t2=DateTime.Now.Ticks;

            Console.WriteLine("PDF.NET: "+(t2-t1));

            

            long a1=DateTime.Now.Ticks;

            for (int i = 0; i < 800; i++) {//注意我们还多获取了一个实体数据从>0

                var test2=DBFactory.GetEntitiesH<North.Customers>(CustomersTable.CustomerID.BiggerThan(0),"demo.exe");

            }

            var  a2=DateTime.Now.Ticks;

            Console.WriteLine("Moon.Orm:"+(a2-a1));

            

            long c1=DateTime.Now.Ticks;

            for (int i = 0; i < 800; i++) {

                

                using(MAction action = new MAction(TableNames.Customers))

                {

                    if (action.Fill("CustomerID>1"))//查询ID>888的结果中取ID最大的的单行数据

                    {

                        var list=action.Select().ToList<North.Customers>();

                    }

                }

            }

            var c2=DateTime.Now.Ticks;

            Console.WriteLine("CYQ.DATA:"+(c2-c1));

            

            var m1=DateTime.Now.Ticks;

            for (int i = 0; i < 800; i++) {

                var list2=dbSession.From<MySoft.Customers>().Where(MySoft.Customers._.CustomerID>0).ToList<MySoft.Customers>();

                 

            }

            var m2=DateTime.Now.Ticks;

            Console.WriteLine("MySoft:  "+(m2-m1));

            Console.Write("Press any key to continue . . . ");

            Console.ReadKey(true);

        }

    }

}

运行结果:

第二部分 开发使用便捷性

第一步:打开企业版代码生成器

 

 

第二步:填写项目数据库

第三步:生成实体集或者实体类文件

 

 

第四步:引入实体集或实体类文件到您开发的项目中.

第五步:复制链接字符串

 


 

第六步:粘贴到你项目的配置文件appsettings中

 

 

似乎有的框架不支持可空类型,这个有点不舒服.

测试代码: 


 数据库文件(sql文件)

 

 

 QQ群技术交流:   

     216965349

 

你可能感兴趣的:(orm)