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

时间: 2025-01-10 23:53:09

ORM系列之一:Dos.ORM的相关文章

dos.orm

引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,后期参考EF的Lambda语法进行大量扩展. 参考:http://www.itdos.com/dos/orm/index.html 为什么选择Dos.ORM(原Hxj.Data)? 上手简单,0学习成本.使用方便,按照sql书写习惯编写C#.NET代码.功

CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3

Dos.ORM Select查询 自定义列

自定义列 .Select( p = >new{ test = p.id}) // 同sql 列名 as 新列名 如下是 自己在写代码的例子,查询,分页,where条件,排序 var where = new Where<INCOM_TERMINALFAULT>(); where.And(a=>a.SA==1); where.And<X_CAR_DATABASE>((a, b) => b.CARNUMBERSID.Like("2")); DataT

Dos.ORM使用教程

Dos.C#.Net使用 Dos.ORM(原Hxj.Data)于2009年发布,并发布实体生成工具.在开发过程参考了多个ORM框架,特别是NBear,MySoft.EF.Dapper等.吸取了他们的一些精华,加入自己的新思想.该组件已在上百个成熟企业项目中应用 为什么选择Dos.ORM(原Hxj.Data)? 上手简单,0学习成本.使用方便,按照sql书写习惯编写C#.NET代码.功能强大 高性能(与Dapper媲美,接近手写Sql) 体积小(不到150kb,仅一个dll) 完美支持Sql Se

Android ORM系列之GreenDao关联关系映射

上一篇文章对greenDao有一个整体的把握 Android ORM系列之GreenDao最佳实践.这篇文章将重点介绍GreenDao的关联关系的映射以及实体类的生成. 在GreenDao中,实体类的生成是通过Entity类来进行的,可以说一个Entity对象对应一个实体类.实体类中的属性可以通过Entity对象的方法进行添加,GreenDao会根据我们添加的属性自动生成实体类.我们可以通过一系列方法进行操作. 可以自定义一张表的表名 entity.setTableName("test"

Dos.ORM - 目录、介绍

引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与MySoft,吸取了他们的一些精华,加入新思想,后期参考EF的Lambda语法进行大量扩展. 上手简单,0学习成本.使用方便,按照sql书写习惯编写C#.NET代码.功能强大. 高性能,接近手写Sql. 体积小(不到150kb,仅一个dll). 完美支持Sql Server(2000至最新版),MySq

Dos.ORM 配合AmazeUI 从头开始搭建后台框架(2)

周六日双休又因为家里突然来了一个新伙伴一只小蓝猫所以就没有对我自己搭的框架做进一步操作 但是今天上班因为要用外网做数据导入以至于有空完成了登录功能,写的很简陋但是以后大家拿去用换为自己 的逻辑就OK了 废话不多说 开搞~ 在这里我是使用的Email和password 来做登录的大家酌情改自己用的时候 [HttpPost] public JsonResult Logion(string Email, string Pwd) { //判断账号密码是否输入正确 UserInfo list = Base

Dos.ORM修改数据遇到的问题

2019年11月6日,今天使用Dos.ORM进行数据的批量修改,出现修改一条数据造成所有数据相应状态改变的情况,代码如下: 按照一步步调试的方式,排查出原因:生成的orm实体类缺少 主键 的标识,该原因造成修改单条数据造成所有数据被修改. 解决方法:数据表设置主键,将对应的orm实体重新生成,覆盖. 总结:出现问题不要怕,一步步进行调试,总会找到原因. 原文地址:https://www.cnblogs.com/monte-meng/p/11806995.html

orm.TextField undefined (type orm.Ormer has no field or method TextField)

今天用go语言的orm的时候,操作text类型插入数据库时候,进行类型转时候上面总爆红,orm.TextField undefined (type orm.Ormer has no field or method TextField),显示这个错. 解决方法是把orm的包起一个别名 像这样. 原文地址:https://www.cnblogs.com/miria-486/p/10229286.html