距离上次写Gc.Db框架已经有一段时间了,最近默默对框架代码已经做了不少优化和功能,且已经提交至nuget,大家如果想使用此框架,可以通过nuget搜索:Gc.Db进行下载和安装包。
本篇文章主要是介绍现目前为止,Gc.Db框架功能特性和演示代码,后期会完善此框架帮助文档,同时将也会将代码在git上进行开源,请大家多多指教。
Gc.Db是一套基于ADO.Net数据库快速开发框架和轻量级半ORM框架。特点如下:
1.支持数据库有MSSql、MySql、Oracle、Access。
2.对各数据库操作完全是基于接口设计,能够与各种IOC框架很好集成,便于程序解耦。
3.对单表提供了ORM功能,同时又封装ado.net常用SQL语句、参数化SQL语句、存储过程方法,为MSSql、MySql单表提供了分页功能,提供了开发效率。
4.支持单库事务操作。
Gc.Db配置相关简单,只需在主键、是否需要获取自动增长、是否获取自动增长值,目前对SqlSver和MySQL支持配置自动增长和获取自动增长值特性。Gc.Db配置和示例代码如下。
(1) 创建实体类,添加字段,配置主键,配置自动增长和获取自动增长值采用是的是缺省配置,默认是false.
using Gc.Db; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestGcDb { public class UserInfo { [Column("UserId", true)] public int UserId { get; set; } public string UserName { get; set; } public int Age { get; set; } public DateTime CreateTime { get; set; } } }
(2)创建一个对数据库操作示例类,添加了些对数据访问常用方法。
using Gc.Db; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Gc.Db; using System.Data; namespace TestGcDb { public class UserInfoDao { //因为此演示代码是用的sqlserver,如果是mysql:MySqlDb,oracle:OracleSqlDb,同时各数据连接串 private ISqlDb msDb = new MsSqlDb(); //数据库连接,请根据各自数据库进行配置数据库连接串 private string msDbConnStr = "Data Source=.;Initial Catalog=testdb;User ID=sa;Password=123456;"; /// <summary> /// 添加数据 /// </summary> public void Add() { UserInfo model = new UserInfo() { UserId = , UserName = "abc", Age = , CreateTime = DateTime.Now }; msDb.Insert<UserInfo>(msDbConnStr, model); } /// <summary> /// 根据主键删除数据 /// </summary> public void Delete() { ; msDb.Delete<UserInfo>(msDbConnStr, uid); } /// <summary> /// 修改数据 /// </summary> public void Update() { UserInfo model = GetModel(); if (model != null) { model.CreateTime = DateTime.Now; msDb.Update<UserInfo>(msDbConnStr, model); } } /// <summary> /// 获取单条数据 /// </summary> /// <returns></returns> public UserInfo GetModel() { ; UserInfo model = msDb.Find<UserInfo>(msDbConnStr, uid); return model; } /// <summary> /// 查询object to in /// </summary> /// <param name="uid"></param> public int GetObject() { ; string sqlStr="select count(*) from UserInfo"; object data = msDb.ExecuteScalar(msDbConnStr, sqlStr); if (data != null) { num = Convert.ToInt32(data); } return num; } /// <summary> /// 数据查询 /// </summary> public void GetList() { //查询列表 List<UserInfo> list1 = msDb.Where<UserInfo>(msDbConnStr); List<UserInfo> list2 = msDb.Where<UserInfo>(msDbConnStr, "UserId>0"); List<UserInfo> list3 = msDb.Where<UserInfo>(msDbConnStr, "", null, "CreateTime desc"); List<UserInfo> list4 = msDb.Where<UserInfo>(msDbConnStr, }, "CreateTime desc"); //查询分页列表 PageDataResult<List<UserInfo>> result = msDb.GetPageList<UserInfo>(msDbConnStr, , ); List<UserInfo> list6 = result.Data; int toatl = result.TotalCount; } /// <summary> /// 事务用法 /// </summary> /// <param name="uid"></param> public void TransOperator1() { msDb.BeginTransaction(); ; i <= ; i++) { UserInfo model = new UserInfo() { UserId = i, UserName = "abc" + i.ToString(), Age = , CreateTime = DateTime.Now }; msDb.Insert<UserInfo>(msDbConnStr, model); } msDb.CloseTransaction(); } /// <summary> /// 事务用法2 /// </summary> /// <param name="uid"></param> public void TransOperator2() { msDb.BeginTransaction(); msDb.Delete<UserInfo>(msDbConnStr, ); msDb.ExecuteWithParam(msDbConnStr, "delete from UserInfo where Userid=2", null); msDb.ExecuteWithParam(msDbConnStr, }); msDb.CloseTransaction(); } } }