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
ORM系列之一:Dos.ORM的更多相关文章
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- dos.orm学习地址
os.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内.Net用户量最多.最活跃.最完善的国产ORM.初期开发过程参考了NBear与MySo ...
- Dos.ORM Select查询 自定义列
自定义列 .Select( p = >new{ test = p.id}) // 同sql 列名 as 新列名 如下是 自己在写代码的例子,查询,分页,where条件,排序 var where ...
- ORM系列之Entity FrameWork详解
一. 谈情怀 从第一次接触开发到现在(2018年),大约有六年时间了,最初阶段连接数据库,使用的是[SQL语句+ADO.NET],那时候,什么存储过程.什么事务 统统不理解,生硬的将SQL语句传入SQ ...
- dos.orm的事务处理
dos.orm也包含事务处理,没有太多封装,这里有几个简单的示例代码. using (DbTrans trans = DbSession.Default.BeginTransaction()) { D ...
- dos.orm
引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...
- Dos.ORM - 目录、介绍
引言: Dos.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内用户量最大.最活跃.最完善的国产ORM.初期开发过程中参考了NBear与My ...
- Dos.ORM logo.Net轻量级开源ORM框架 Dos.ORM
http://www.oschina.net/p/dos-orm http://www.oschina.net/project/lang/194/csharp http://www.cnblogs.c ...
- dos.ORM配置和使用
处理oralce,sqlserver,access及其他常用数据库,下载和学习地址 1.web.config配置数据库连接字符串,以及数据库类型: <connectionStrings>& ...
随机推荐
- Codeforces 682B New Skateboard(DP)
题目大概说给一个数字组成的字符串问有几个子串其代表的数字(可以有前导0)能被4整除. dp[i][m]表示字符串0...i中mod 4为m的后缀的个数 通过在i-1添加str[i]字符转移,或者以st ...
- 【原】iOS学习44之动画
1. 简单动画 1> UIImageView GIF 动画 GIF图的原理是:获取图片,存储在图片数组中,按照图片数组的顺序将图片以一定的速度播放 UIImageView *showGifima ...
- background-attachment 定义背景图片随滚动轴的移动方式
- Android 魅族等SmartBar适配
通过反射获取是否含有SmartBar: /** * 判断是否有SmartBar */ private boolean hasSmartBar() { // SP存储是否显示SmartBar if (! ...
- ACM 一种排序
一种排序 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复:还知道这个长方形的宽和长,编号.长.宽都是整数 ...
- ASP.NET状态保持方案若干
客户端方案: 1.ViewState 2.隐藏域 3.cookie 大小4KB限制,不消耗服务器资源,可配置到期时间,但安全性不高,还被客户端禁用. 4.QueryString 方法简单,但不安全,有 ...
- thinkphp常用Config.php配置项
<?php return array( //'配置项'=>'配置值' 'DB_HOST' => 'localhost', 'DB_USER' => 'root', 'DB_PW ...
- PHP面向对象学习一
1. 抽象性 , 2. 封装性 ,3.共享性 ,4. 强调对象结构而不是程序结构 面向对象的三大特点(封装,继承,多态)缺一不可 class MyPc{ ———创建一个名为 MyPc的类,class ...
- UpdatePanel完成后调用js
引言: asp.net 微软引入了UpdatePanel 使用起来很方便 如果 我们想UpdatePanel加载完成后做一些事情 需要使用js <script type="text/j ...
- ArcGIS几种数据格式
ArcGIS几种数据格式 ArcInfo常用以下格式的数据:shp.Coverage..Raster CAD和Geodatabase.各种数据的组织形式不一样,其中shp.Coverage.Raste ...