# DbFrame **Repository Path**: mmmm96/DbFrame ## Basic Information - **Project Name**: DbFrame - **Description**: 数据访问框架 ORM 基于 Dapper - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2018-08-31 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DbFrame #### 项目介绍 数据访问框架 ORM 基于 Dapper 使用Lambda表达式生产Sql语句 #### 基本语法 ``` using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DbFrame.Test { using Models; using DbFrame; using DbFrame.Class; using Dapper; using System.Data; class Program { static void Main(string[] args) { System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch(); s.Start(); DBContext.Initialization("Server=.;Database=AppDB;User ID=sa;Password=123456;"); //如果是 mysql 或者其他 数据库 则初始化不一样 var _MySqlExtend = new MySqlExtend();//这是一个 举例 初始化 mysql DBContext db = new DBContext(); List li = new List(); var __Sys_UserM_0 = db.Find(select => new { SqlString = "top 1 *" }, w => w.User_CreateTime.SqlString("CONVERT(varchar(100),@F, 23)>" + DateTime.Now.ToDateTimeFormat("yyyy-MM-dd")), orderby => new { desc = orderby.User_CreateTime }); var __Sys_UserM_1 = db.Find(select => new { SqlString = "top 1 *" }, w => w.User_CreateTime.SqlString("CONVERT(varchar(100),@F, 23)>getdate()"), orderby => new { desc = orderby.User_CreateTime }); var __Sys_UserM_2 = db.Find(select => new { SqlString = "top 1 *" }, w => w.User_CreateTime.SqlStringCompare("CONVERT(varchar(100),@F, 23)") > DateTime.Now, orderby => new { desc = orderby.User_CreateTime }); string value = "123"; //修改 db.EditCustomSet(set => new { User_IsDelete = set.User_IsDelete + 1, User_Name = "23123", SqlString = "User_IsDelete+=" + 1, }, w => w.User_ID == Guid.Empty); var Iquery = db.Query((a, b) => new { SqlString_1 = " case when a.Member_Num==1 then '我是1' else '我是else' end Member_Num ", a.Member_Name, a.Member_Sex, }) .LeftJoin((a, b) => a.Member_UserID == b.User_ID, "b") .Where((a, b) => a.Member_Sex == "男") .OrderBy((a, b) => new { desc = a.Member_Sex, SqlString_1 = " case when a.Member_Num==1 then '我是1' else '我是else' end Member_Num " }); Iquery = db.Query((a, b) => @" case when a.Member_Num==1 then '我是1' else '我是else' end Member_Num, a.Member_Name, a.Member_Sex, ") .LeftJoin((a, b) => a.Member_UserID == b.User_ID, "b") .Where((a, b) => a.Member_Sex == "男") .OrderBy((a, b) => "a.Member_Sex desc"); var _tosql = Iquery.ToSQL(); var _tolist = Iquery.ToList(); var _tolistdic = Iquery.ToList>(); var _getpar = Iquery.GetSqlParameters(); for (int i = 0; i < 10; i++) { var id = db.Add(new Sys_UserM() { User_Email = i + "test@qq.com", User_LoginName = i + "hzyNew", User_Name = i + "hzyTestNew", User_Pwd = i + "123" }, li); if (!db.Edit(() => new Sys_UserM { User_Name = "修改过" + i + "hzyTestNew" }, w => w.User_ID == id.ToGuid(), li)) { Console.WriteLine("错误!"); } } db.Delete(w => w.User_CreateTime > DateTime.Now.AddDays(-1), li); if (!db.Commit(li)) { Console.WriteLine("事务提交失败!"); } var _Sys_UserM = new Sys_UserM(); _Sys_UserM.User_Email = "1123@QQ.COM"; _Sys_UserM.User_LoginName = "admin"; _Sys_UserM.User_Name = "hzy"; _Sys_UserM.User_Pwd = "123"; //验证实体 if (db.CheckModel(_Sys_UserM)) { db.Add(_Sys_UserM); } else { Console.WriteLine(db.ErrorMessge); } Console.WriteLine(" 耗时:" + (s.ElapsedMilliseconds * 0.001) + " s"); Console.ReadKey(); } } /// /// MySql 扩展 /// public class MySqlExtend { private IDbConnection _IDbConnection = null; public MySqlExtend() { DBContext.Initialization("Server=.;Database=AppDB;User ID=sa;Password=123456;", "SELECT SCOPE_IDENTITY();", (ConnectionString) => { _IDbConnection = new MySql.Data.MySqlClient.MySqlConnection(ConnectionString); return _IDbConnection; }, (SqlStr, Page, PageSize, Param) => { var _Total = this._IDbConnection.QuerySingle("Select Count(1) From (" + SqlStr + ") As t", Param); int Num = (Page - 1) * PageSize; SqlStr += " limit " + Num + "," + PageSize; return new Paging() { Table = this._IDbConnection.ExecuteReader(SqlStr, Param).ToDataTable(), Total = _Total }; }, (TabName, FieldNum, Where, Param) => { return @"SELECT IFNULL(MAX(CONVERT(INT," + FieldNum + ")),0) FROM " + TabName + " WHERE 1=1 " + Where; }); } } /// /// Oracle 扩展 /// public class OracleExtend { IDbConnection _IDbConnection = null; public OracleExtend() { //同 mysql Extend 配置 } } } ```