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]
View Code

  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; }
    }
}
View Code

  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();
        }
    }
}
View Code

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

  

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

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

 

原文地址:https://www.cnblogs.com/qianxingdewoniu/p/5991413.html