注冊博客園帳號也有好幾年了,之前注冊帳號主要是為了看別人的文章下載東西的時候方便。從來沒有寫過什么博客,一直以為只要注冊了帳號就可以寫博客,最近用到了才發現還得申請一下,于是就申請了博客,算了也不扯這么多沒用的了,直接進入主題吧!
網上開源的ORM工具也不少,開源中國上就有不少,很多都下載試用過,不過感覺用起來都不是很方便,園子里面也有不少人分享自己寫的ORM工具,用過一個叫 MySoft.Data 的ORM工具,感覺里面的鏈式調用函數的寫法不錯,但是用起來感覺也有些不如意的地方,于是某個周末的晚上自己研究人家的代碼就想著自己來實現一個ORM工具,又扯遠了...
自己弄得這個ORM工具也不知道起什么名字好,于是就直接就叫 ORM,寫這個的時候參考過 MySoft.Data、 NBearLite、PetaPoco ,整個設計的感覺不算太好,反正就是憑著自己的感覺來寫的,接口用的比較少,抽象類用到的比較多,支持多數據庫,但是只在SqlServer和SQLite中測試過,其他數據庫還沒有測試,可以實現較復雜的查詢,增刪改、事務等操作,ORM沒有經過系統的測試,也就是自己寫些小例子測試一下,所以穩定性、性能方面不敢保證,建議大家先不要用到項目中去,大家可以下載代碼自己改改、測試測試然后再在項目中使用。
下面說下用法吧,ORM 中所有類都用的一個命名空間就叫 ORM,只是在代碼中對不能作用的類做了些分類放在不同文件夾,但都是一個命名空間。
首先要創建一個 IDbsession 對象:
<!--數據庫連接字符串如下--><add name="connStr" connectionString="Data Source=.;Initial Catalog=dbName;Persist Security Info=True;User ID=sa;PassWord=******"IDbSession db = DbSession.New('connStr');生成實體類:
namespace ORM.Demo.Model { using System; using ORM; public partial class SysUser2Role : TableEntity { private Guid? _SysUser2RoleOID; /// <summary> /// SysUser2RoleOID /// </summary> public Guid? SysUser2RoleOID { get { return _SysUser2RoleOID; } set { _SysUser2RoleOID = value; } } private static NormalField __SysUser2RoleOID = new NormalField("SysUser2Role", "SysUser2RoleOID"); /// <summary> /// SysUser2RoleOID /// </summary> [PrimaryKey()] public static NormalField SysUser2RoleOID_ { get { return __SysUser2RoleOID; } } private string _SysUserOID; /// <summary> /// SysUserOID /// </summary> public string SysUserOID { get { return _SysUserOID; } set { _SysUserOID = value; } } private static NormalField __SysUserOID = new NormalField("SysUser2Role", "SysUserOID"); /// <summary> /// SysUserOID /// </summary> public static NormalField SysUserOID_ { get { return __SysUserOID; } } private string _SysRoleOID; /// <summary> /// SysRoleOID /// </summary> public string SysRoleOID { get { return _SysRoleOID; } set { _SysRoleOID = value; } } private static NormalField __SysRoleOID = new NormalField("SysUser2Role", "SysRoleOID"); /// <summary> /// SysRoleOID /// </summary> public static NormalField SysRoleOID_ { get { return __SysRoleOID; } } private string _CreateUserOID; /// <summary> /// CreateUserOID /// </summary> public string CreateUserOID { get { return _CreateUserOID; } set { _CreateUserOID = value; } } private static NormalField __CreateUserOID = new NormalField("SysUser2Role", "CreateUserOID"); /// <summary> /// CreateUserOID /// </summary> public static NormalField CreateUserOID_ { get { return __CreateUserOID; } } private DateTime? _UpdateTime; /// <summary> /// UpdateTime /// </summary> public DateTime? UpdateTime { get { return _UpdateTime; } set { _UpdateTime = value; } } private static NormalField __UpdateTime = new NormalField("SysUser2Role", "UpdateTime"); /// <summary> /// UpdateTime /// </summary> public static NormalField UpdateTime_ { get { return __UpdateTime; } } private static FieldAll _All; public static FieldAll All { get { _All = _All ?? new FieldAll(typeof(SysUser2Role)); return _All; } } }}namespace ORM.Demo.Model { using System; using ORM; public partial class SysRole : TableEntity { private Guid? _SysRoleOID; /// <summary> /// SysRoleOID /// </summary> public Guid? SysRoleOID { get { return _SysRoleOID; } set { _SysRoleOID = value; } } private static NormalField __SysRoleOID = new NormalField("SysRole", "SysRoleOID"); /// <summary> /// SysRoleOID /// </summary> [PrimaryKey()] public static NormalField SysRoleOID_ { get { return __SysRoleOID; } } private string _RoleName; /// <summary> /// RoleName /// </summary> public string RoleName { get { return _RoleName; } set { _RoleName = value; } } private static NormalField __RoleName = new NormalField("SysRole", "RoleName"); /// <summary> /// RoleName /// </summary> public static NormalField RoleName_ { get { return __RoleName; } } private string _CreateUserOID; /// <summary> /// CreateUserOID /// </summary> public string CreateUserOID { get { return _CreateUserOID; } set { _CreateUserOID = value; } } private static NormalField __CreateUserOID = new NormalField("SysRole", "CreateUserOID"); /// <summary> /// CreateUserOID /// </summary> public static NormalField CreateUserOID_ { get { return __CreateUserOID; } } private string _Remark; /// <summary> /// Remark /// </summary> public string Remark { get { return _Remark; } set { _Remark = value; } } private static NormalField __Remark = new NormalField("SysRole", "Remark"); /// <summary> /// Remark /// </summary> public static NormalField Remark_ { get { return __Remark; } } private DateTime? _UpdateTime; /// <summary> /// UpdateTime /// </summary> public DateTime? UpdateTime { get { return _UpdateTime; } set { _UpdateTime = value; } } private static NormalField __UpdateTime = new NormalField("SysRole", "UpdateTime"); /// <summary> /// UpdateTime /// </summary> public static NormalField UpdateTime_ { get { return __UpdateTime; } } private static FieldAll _All; public static FieldAll All { get { _All = _All ?? new FieldAll(typeof(SysRole)); return _All; } } }}namespace ORM.Demo.Model { using System; using ORM; public partial class SysUser2Role : TableEntity { private Guid? _SysUser2RoleOID; /// <summary> /// SysUser2RoleOID /// </summary> public Guid? SysUser2RoleOID { get { return _SysUser2RoleOID; } set { _SysUser2RoleOID = value; } } private static NormalField __SysUser2RoleOID = new NormalField("SysUser2Role", "SysUser2RoleOID"); /// <summary> /// SysUser2RoleOID /// </summary> [PrimaryKey()] public static NormalField SysUser2RoleOID_ { get { return __SysUser2RoleOID; } } private string _SysUserOID; /// <summary> /// SysUserOID /// </summary> public string SysUserOID { get { return _SysUserOID; } set { _SysUserOID = value; } } private static NormalField __SysUserOID = new NormalField("SysUser2Role", "SysUserOID"); /// <summary>
新聞熱點
疑難解答