C#的ORM工具Dos.ORM使用介绍(配置成功,本人在用)

本文介绍了国产ORM框架Dos.ORM,它于2009年发布,2015年开源,在数百个项目应用。其上手简单、轻量级、支持多数据库、高性能且支持Lambda表达式。还说明了使用方法,包括生成实体类、引入dll,同时提醒从官网下载,最好重新编译以避免版本差异问题。

源码下载及学习文档地址:https://www.itdos.com/Dos/ORM/Index.html

一、介绍

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

       为什么使用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框架,必须支持

二、使用方法

1、使用Dos.Tool-master编译生成实体生成工具,生成实体类;

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//     Website: http://ITdos.com/Dos/ORM/Index.html
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using Dos.ORM;

namespace Dos.Model
{
    /// <summary>
    /// 实体类cms_city。(属性说明自动提取数据库字段的描述信息)
    /// </summary>
    [Table("cms_city")]
    [Serializable]
    public partial class cms_city : Entity
    {
        #region Model
		private int _cityid;
		private int _provinceid;
		private string _cityname;
		private string _dialcode;

		/// <summary>
		/// 
		/// </summary>
		[Field("cityid")]
		public int cityid
		{
			get{ return _cityid; }
			set
			{
				this.OnPropertyValueChange("cityid");
				this._cityid = value;
			}
		}
		/// <summary>
		/// 
		/// </summary>
		[Field("provinceid")]
		public int provinceid
		{
			get{ return _provinceid; }
			set
			{
				this.OnPropertyValueChange("provinceid");
				this._provinceid = value;
			}
		}
		/// <summary>
		/// 
		/// </summary>
		[Field("cityname")]
		public string cityname
		{
			get{ return _cityname; }
			set
			{
				this.OnPropertyValueChange("cityname");
				this._cityname = value;
			}
		}
		/// <summary>
		/// 
		/// </summary>
		[Field("dialcode")]
		public string dialcode
		{
			get{ return _dialcode; }
			set
			{
				this.OnPropertyValueChange("dialcode");
				this._dialcode = value;
			}
		}
		#endregion

		#region Method
        /// <summary>
        /// 获取实体中的主键列
        /// </summary>
        public override Field[] GetPrimaryKeyFields()
        {
            return new Field[] {
				_.cityid,
			};
        }
        /// <summary>
        /// 获取列信息
        /// </summary>
        public override Field[] GetFields()
        {
            return new Field[] {
				_.cityid,
				_.provinceid,
				_.cityname,
				_.dialcode,
			};
        }
        /// <summary>
        /// 获取值信息
        /// </summary>
        public override object[] GetValues()
        {
            return new object[] {
				this._cityid,
				this._provinceid,
				this._cityname,
				this._dialcode,
			};
        }
        /// <summary>
        /// 是否是v1.10.5.6及以上版本实体。
        /// </summary>
        /// <returns></returns>
        public override bool V1_10_5_6_Plus()
        {
            return true;
        }
        #endregion

		#region _Field
        /// <summary>
        /// 字段信息
        /// </summary>
        public class _
        {
			/// <summary>
			/// * 
			/// </summary>
			public readonly static Field All = new Field("*", "cms_city");
            /// <summary>
			/// 
			/// </summary>
			public readonly static Field cityid = new Field("cityid", "cms_city", "");
            /// <summary>
			/// 
			/// </summary>
			public readonly static Field provinceid = new Field("provinceid", "cms_city", "");
            /// <summary>
			/// 
			/// </summary>
			public readonly static Field cityname = new Field("cityname", "cms_city", "");
            /// <summary>
			/// 
			/// </summary>
			public readonly static Field dialcode = new Field("dialcode", "cms_city", "");
        }
        #endregion
	}
}

2、ITdos-Dos.ORM-master项目编译生成Dos.ORM.dll、Dos.ORM.MySql.dll,引入项目

3、使用简单:

var db_orm = new DbSession(DatabaseType.MySql, "Data Source=127.0.0.1;Database=ourcms;User Id=root;Password=root;Convert Zero Datetime=True;Allow Zero Datetime=True;");
            var result = db_orm.From<cms_mobile>().Top(10).ToList();
            var result2 = db_orm.FromSql("select * from cms_mobile order by id limit 10").ToList<cms_mobile>();
            var result3 = db_orm.FromSql("select id from cms_mobile order by id limit 10").ToList<int>();

其他更详细的使用方式查看文档。

三、注意事项

1、Dos.ORM官网:https://www.itdos.com/Dos/ORM/Index.html

可以从官网提供的地址下载“Dos.ORM(原Hxj.Data)数据库组件”和“Dos.Tool代码生成器”

本人从https://github.com/itdos/Dos.ORM下载了Dos.orm,从https://github.com/itdos/Dos.Tool下载了Dos.Tool。

注意,下载的使用时用Dos.ORM.Standard版本,最好重新编译生成最新的Dos.ORM.dll、Dos.ORM.MySql.dll和Dos.Tool.exe,本人用下载的生成好的旧版本,出现了下图中的错误。

经检查试验原因为用新版本Dos.Tool.exe生成的实体类与原版本有差别引起

使用中还可能会用到MySql.Data.dll

摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于面向对象、分层架构、ORM及反射+工厂设计模式等。支持.Net1.1及以上版本,可用于Oracle、SqlServer、Sybase、DB2、MySQL、Access、SQLite、PostgreSQL、DM(达梦)、PowerDesigner文件、Informix、Firebird、MaxDB、Excel等和OleDb、ODBC连接的数据库并可自定义,详见文档及安装文件的示例和工具的帮助文档。 关键字: VB/C#.Net实体代码生成工具 实体代码生成工具 EntitysCodeGenerate 预期读者: 软件开发及相关人员 难度等级: 中 当前版本: 4.3 目 录 1 引言 3 2 内容 4 2.1 ORM框架的实现:VB/C#.Net实体代码生成工具(EntitysCodeGenerate) 4 2.2 在开发中的实际应用 5 2.2.1 单个实体对象的数据库操作 6 1、获取一个实体对象信息 6 2、插入一个实体对象信息 6 3、更新一个实体对象信息 6 4、保存一个实体对象信息 6 5、删除一个实体对象信息 7 6、取得实体映射表数值字段的最大值+1 7 2.2.2 多个实体对象的数据库操作 7 1、实体集对象的使用 7 2、结合事务处理 7 2.2.3 数据查询及通用DML操作 9 1、 常用实体对象查询 9 2、 ORM结构化查询 9 (1)、Select查询 10 (2)、From连接查询 10 (3)、Where语句的Condition条件 11 (4)、Order By排序功能 11 (5)、Group By分组条件及排序 12 (6)、结合事务处理的功能 14 3、Delete删除 15 4、Update更新 15 5、Insert插入 16 2.2.4 DbCore+SQL/存储过程 17 1、DbCore+SQL 17 2、DbCore+存储过程 19 2.2.5 Extend辅助扩展功能 20 1、TableHelp辅助扩展 20 2、CommonHelp常用方法扩展 22 2.2.6 ORM的分析及与Xml的交互 22 1、ORM的分析 22 2、与XML的交互 23 3 结束语 23 4 相关下载地址 24 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://www.newhua.com/soft/98941.htm http://www.duote.com/soft/32643.html http://www.crsky.com/soft/25626.html http://download.csdn.net/source/3030634 http://qun.qq.com/air/#60873348/share http://blog.csdn.net/chutao http://lxchutao.blog.163.com http://hi.baidu.com/lxchutao http://download.enet.com.cn/eblog/blog/htm/uid_21280.html
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值