zoukankan      html  css  js  c++  java
  • sql的逆袭!让我们开始无视Linq的存在!强类型,无需实体类!(Moon.Orm的自动实体:GetAutoEntities)

    1.Moon.Orm的自动实体查询方案

    using System;
    using Moon.Orm;
    using System.Windows.Forms;
    using North;
    using System.Diagnostics;
    using System.Collections.Generic;
    namespace Demo
    {
    	class Program
    	{
    		public static readonly Stopwatch sp=new Stopwatch();
    		public static void Main(string[] args)
    		{
    			Moon.Orm.GlobalData.AUTO_COMPLIE_DIRECTORY_PATH=Application.StartupPath;
    			string sql="select top {0} * from Orders Left join Order_Details on Order_Details.OrderID=Orders.OrderID";
    			object ret=DBFactory.GetAutoEntities(sql,null,1);
    			
    			sp.Restart();
    			dynamic ret2=DBFactory.GetAutoEntities(sql,null,200);
    			sp.Stop();
    			Console.WriteLine("dynamic实体:"+sp.Elapsed);
    			
    			
    			sp.Restart();
    			string sql2="select top 200 * from Orders Left join Order_Details on Order_Details.OrderID=Orders.OrderID";
    			var list=moontemp.EntityGetByAdonet.GetList(sql2,DBFactory.DefaultDB);
    			sp.Stop();
    			Console.WriteLine("  纯ado.net:"+sp.Elapsed);
    			Console.Write("Press any key to continue . . . ");
    			Console.ReadKey(true);
    		}
    	}
    }
    

     2.运行结果

    我们可以看出效率和纯ADO.NET差不多.而便捷性大家想想就知道.而且是强类型的,所以无视<匿名类型无法返回MVC视图的问题>

    要求:.net 4.0以上.

    我们可以这么使用了:decimal newMoney=ret2[2].SumMoney+100;

    配置文件的设置:(注意不要注释)

     注意最后的路径有一个\

    3.方法讲解

    object GetAutoEntities(string sqlTemplate,string className,params object[] values)

    sqlTemplate:sql模板,同样的逻辑可以用同一套模板,到时候可以提供查询效率

    className:这个是自己随意取的名字,用于缓存,也可以为null,但效率就低些.如果你给它赋值了,当sql模板有变动时,请你自己清空编译路径中moon_temp....dll

    params object[] values:用于替换模板中的参数的.注意模板的参数形式如  {0} {1} {2}

    3.demo下载

     注意自己附加数据库到你的数据库中,项目中注意修改连接字符串.

    项目及数据库下载

  • 相关阅读:
    如何使用Remoting实现双工(转自Artech)
    解决自定义代码启动Approver Sharepoint 2010 Workflow,出现Failed on Start
    设计模式学习(目录)
    C#面向对象分析
    使用Sharepoint 2010 Client Object Model 通过SSL验证
    .NET 4.0 Location : 查看传感器状态变化
    OLAP和OLTP的 概念和区别
    组织结构及权限模型设计
    维度关系
    PHP正则替换中文让中文无处可躲
  • 原文地址:https://www.cnblogs.com/humble/p/3130609.html
Copyright © 2011-2022 走看看