原创

Dos.ORM(原Hxj.Data)- 目录、介绍

 335839  2015/05/02 20:36:43

car_5

引言:

Dos.ORM(原Hxj.Data)2009年发布、2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大、最活跃、最完善的国产ORM。初期开发过程中参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,后期参考EF的Lambda语法进行大量扩展。

为什么选择Dos.ORM(原Hxj.Data)?

上手简单,0学习成本。使用方便,按照sql书写习惯编写C#.NET代码。功能强大。

高性能,接近手写Sql。

体积小(不到150kb,仅一个dll)。

完美支持Sql Server(2000至最新版),MySql,Oracle,Access,Sqlite等数据库。

支持大量Lambda表达式写法,国产ORM支持度最高,开源中国ORM排行前三。

不需要像NHibernateXML配置,不需要像EF的各种数据库连接驱动

众多成熟企业软件、互联网项目已应用此框架。

遵循MIT开源协议,除不允许改名,其它随意定制修改

Dos团队持续更新升级,任何Bug反馈都会立即得到解决。

创始人博客:http://www.cnblogs.com/huxj/    

官方网站:http://ITdos.com/Dos/ORM/Index.html    

交流QQ群:60831381    

 写法预览
一句代码配置:        
public class DB{public static readonly DbSession Context = new DbSession("connectionStringsName");}
开始使用:        
DB.Context.From<Model.table1>()    //Model.table1类通过Dos.ORM实体生成器生成
    .Select(d => new { d.id, d.price })
        //Sql:SELECT id,price FROM table1
    //.Select<table2,table3>((a,b,c) => a.id, b.name, c.sex)
        //Sql:SELECT table1.id, table2.name, table3.sex
    .LeftJoin<table2>((a, b) => a.id == b.id)
        //Sql:LEFT JOIN Table2 ON table1.id = table2.id
    .Where(d => (d.id != 2 && d.name.In("com","net")) || d.sex != null)    
        //Sql:WHERE (id <> 2 AND name IN('com','net')) OR sex IS NOT NULL
    .GroupBy(d => new { d.name, d.sex })    //Sql:GROUP BY name,sex
    .OrderBy(d => new { d.createTime, d.name })
        //Sql:ORDER BY createTime,name
    .Having(d => d.name != '')    //Sql:HAVING name <> ''
    .Top(5)    //取前5条数据
    .Page(10, 2)    //每页10条数据,取第2页
    .ToList();    //默认返回List<table1>,也可自定义Map类.ToList<T>();

 特别感谢以下群友为Dos.ORM做出贡献,以及资金赞助的朋友。

Dos.Tool代码生成器

用于生成Dos.ORM专用实体类,以及自定义模板生成业务逻辑代码等等。

开源中国: http://www.oschina.net/p/dos-tools-entitydesigner

GitHub:https://github.com/itdos/Dos.Tool

Dos.ORM.Demo

含初级玩法demo之mvc简单三层(同时也是mvc学习者的入门教程)、中级玩法demo之repository、性能对比测试、数据库等

开源中国: http://git.oschina.net/ITdos/Dos.ORM.Demo

GitHub:https://github.com/itdos/Dos.ORM.Demo