另类的ASP.NET快速开发架构体系(下)

发表于:2012-2-28 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:秦时明月    来源:51Testing软件测试网采编

  第二部分 高效便捷的ORM架构Moon.net

  1、背景

  针对Qin.Data的架构设计反应出的一些问题进行了全新的架构设计,弥补了多数据源使用不便、同道反应不过ORM、自身架构的瑕疵等问题。

  2、介绍

  Moon .ORM是一个通用数据库处理框架(可以包含MSSQL POSTGRESQL,SQLITE EXCEL MYSQL DB2 ORACLE...只要你愿意实现接口就可以)。很便捷地进行常用数据库操作(增删改查)。其性能是几近纯ADO.NET。对于实体的查询采用emit实现,如果您还不满意可用此框架的代码生成器直接生成纯ADO.NET SQL形式。其主要特色就是性能和便捷的操作。

  3、特色

  1)高性能(该框架采用纯的ADO.NET进行框架,避免Linq以及反射带来的性能损失);

  2)易用性强(配置简单,智能感知,代码生成器的辅助,会sql就可(可以自我性能优化)) ;

  3)多数据库支持(如果需要可自我扩增,热烈欢迎同道加入团队开发中(联系qq:564064202));

  4)强大查询语法糖功能;

  5)多数据源支持;

  6).net framework 2.0原生支持。

  4、配置简单

  1. <appSettings>   
  2.  <add key="dbType" value="MSSQL" /> 
  3.  <!--数据库的类型 还可以写MYSQL,SQLITE,ACCESS等....—>      
  4.  <add key="linkString" value="Server=mainserver;database=HD01SystemDB;Uid=sa;Pwd=123" />    
  5. </appSettings>

  代码功能演示

  1. using System;  
  2. using System.Collections.Generic;  
  3. using Moon.Orm;  
  4. using  MoonDB;  
  5. namespace r  
  6. {  
  7.       
  8.       
  9.       
  10.     class Program  
  11.     {  
  12.         public static void Main(string[] args)  
  13.         {  
  14.                
  15.             //数据添加 
  16.             PersonSet person=new PersonSet();  
  17.             person.Age=133;  
  18.             person.AgePeriod=1;  
  19.             person.IsBeiJing=true;  
  20.             person.Sex=true;  
  21.             person.UserName="秦仕川";  
  22.               
  23.             DBFactory.Add(person);  
  24.             Console.WriteLine("新的数据唯一识别标志:"+person.GetOnlyMark());  
  25.               
  26.             //另类数据添加 
  27.             person.Set(PersonSetTable.UserName,"另类");  
  28.             person.Set(PersonSetTable.Age,12);  
  29.             person.Set(PersonSetTable.AgePeriod,11);  
  30.             person.Set(PersonSetTable.IsBeiJing,false);  
  31.             person.Set(PersonSetTable.Sex,true);  
  32.             DBFactory.Add(person);  
  33.             Console.WriteLine("新的数据11唯一识别标志:"+person.GetOnlyMark());  
  34.               
  35.             //数据删除 
  36.             long ret= DBFactory.DeleteWhen(PersonSetTable.IsBeiJing.Equal(1).And(PersonSetTable.Age.BiggerThan(12)));  
  37.             Console.WriteLine("被删除的条数:"+ret);  
  38.               
  39.             //改数据 
  40.                
  41.                
  42.             person.UserName="另类修改后";  
  43.             person.SetOnlyMark(PersonSetTable.UserName.Equal("另类"));  
  44.             DBFactory.Update(person);  
  45.               
  46.             //查询 
  47.             PersonSet p=DBFactory.GetEntity<PersonSet>(  
  48.                 PersonSetTable.UserName.Equal("另类修改后"));  
  49.             Console.WriteLine(p.Age);  
  50.               
  51.             //查询一个字段 
  52.             int age=DBFactory.GetOneField<int>(PersonSetTable.Age, PersonSetTable.ID.Equal(5));  
  53.             Console.WriteLine(age);  
  54.              Console.Write("Press any key to continue . . . ");  
  55.             Console.ReadKey(true);  
  56.               
  57.                
  58.               
  59.         }  
  60.     }  
  61. }

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号