ORM系列之一:Dos.ORM

来源:互联网 发布:初中生在哪学编程 编辑:程序博客网 时间:2024/06/04 01:17

ORM系列之一:Dos.ORM

阅读目录

引言

1.为什么使用Dos.ORM

2.配置

3.开始使用

  3.1. 物理表

  3.2. 实体类

  3.3. 使用方法

引言

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

1.为什么使用Dos.ORM 

  选择Dos.ORM的理由:

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

  2.轻量级,只有一个dll文件(不到200KB),相比于EF,NHibernate这些重量级的ORM框架,实在是太小。

  3.支持各种不同主流数据库,例如:SQL Server,MySql,Oracle,Sqlite,Access等等。

  4.高性能,接近手写sql

  5.支持Lambda表达式写法

  6.国产的优秀ORM框架,必须支持

2.配置

  Dos.ORM的配置非常简单,只需要简单的一句代码即可,不过配置文件中必须存在对应的节点,不然运行时会报错。

  配置代码如下:

  

  配置文件信息如下:

  

  就是这么简单,一句话搞定。

3.使用Dos.ORM

  3.1. 物理表

  正式使用Dos.ORM框架之前,我们要先创建对应的表,该实例中只创建一个简单的学生表,代码脚本如下:  

  
复制代码
CREATE TABLE [dbo].[T_Student](    [Id] [uniqueidentifier] NOT NULL,    [Name] [varchar](50) NULL,    [IDNumber] [varchar](50) NULL,    [MobilePhone] [varchar](50) NULL,    [ClassId] [uniqueidentifier] NULL,    [CreateTime] [datetime] NOT NULL, CONSTRAINT [PK_TableSqlServer] PRIMARY KEY CLUSTERED (    [Id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
复制代码

  3.2. 实体类

  创建好表之后,接着我们就要创建对应的实体类,当然这个可以通过工具去自动生成,此处我们还是手动去创建,切记,实体类必须派生自Entity.cs,而且必须增加Table特性指定对应的物理表,具体实体如下: 

  
复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Dos.ORM;namespace QYH.DosORM.Test.Model{    [Table("T_Student")]    [Serializable]   public class Student:Entity    {        public Guid Id { get; set; }        public string Name { get; set; }        public string IDNumber { get; set; }        public string MobilePhone { get; set; }        public Guid? ClassId { get; set; }        public DateTime CreateTime { get; set; }    }}
复制代码

  3.3使用方法

  一切准备就绪,现在就可以使用Dos.ORM了,一个非常简单的查询实例,具体实现代码如下:  

  
复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Dos.ORM;using QYH.DosORM.Test.Model;namespace QYH.DosORM.Test{    class Program    {        static void Main(string[] args)        {            var list = DB.Context.FromSql("SELECT TOP 5 * FROM T_Student")                .ToList<Student>();            foreach (var item in list)            {                Console.WriteLine(item.Name+" "+item.IDNumber);            }            Console.Read();        }    }}
复制代码

  成功查询出5条数据,结果如下:

  

 

    Dos.ORM虽然是个轻量级的ORM框架,但是功能还是比较强大的,不仅支持普通的查询,还支持关联查询、分页、排序、分组等等。

  具体的可以参考官网:http://www.itdos.com/Dos/ORM/Index.html


原创粉丝点击