技术开发 频道

.NET开发框架:另类的MVC架构和ORM系统

  第二部分 高效便捷的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.配置简单

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

 

  代码功能演示

using System;

  using System.Collections.Generic;

  using Moon.Orm;

  using MoonDB;

  namespace r

  {

  class Program

  {

  
public static void Main(string[] args)

  {

  
//数据添加

  PersonSet person
=new PersonSet();

  person.Age
=133;

  person.AgePeriod
=1;

  person.IsBeiJing
=true;

  person.Sex
=true;

  person.UserName
="秦仕川";

  DBFactory.Add(person);

  Console.WriteLine(
"新的数据唯一识别标志:"+person.GetOnlyMark());

  
//另类数据添加

  person.Set(PersonSetTable.UserName,
"另类");

  person.Set(PersonSetTable.Age,
12);

  person.Set(PersonSetTable.AgePeriod,
11);

  person.Set(PersonSetTable.IsBeiJing,
false);

  person.Set(PersonSetTable.Sex,
true);

  DBFactory.Add(person);

  Console.WriteLine(
"新的数据11唯一识别标志:"+person.GetOnlyMark());

  
//数据删除

  
long ret= DBFactory.DeleteWhen(PersonSetTable.IsBeiJing.Equal(1).And(PersonSetTable.Age.BiggerThan(12)));

  Console.WriteLine(
"被删除的条数:"+ret);

  
//改数据

  person.UserName
="另类修改后";

  person.SetOnlyMark(PersonSetTable.UserName.Equal(
"另类"));

  DBFactory.Update(person);

  
//查询

  PersonSet p
=DBFactory.GetEntity(

  PersonSetTable.UserName.Equal(
"另类修改后"));

  Console.WriteLine(p.Age);

  
//查询一个字段

  
int age=DBFactory.GetOneField(PersonSetTable.Age, PersonSetTable.ID.Equal(5));

  Console.WriteLine(age);

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

  Console.ReadKey(
true);

  }

  }

  }

 

  实体代码生成器

  数据库升级问题(我们常常面临数据库表的变动问题)

  Moon.ORM中不必担心这些东西,因为实体全由代码生成器生成,更新一次数据库,你重新生成一次DLL(代码生成器带有编译功能)

0
相关文章