源码下载及学习文档地址: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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐