索引:

目录索引

一.安装

  在 VS 中执行一下 package 命令:  

 PM> Install-Package MyDAL

二.API-快速使用

  1.命名空间,只需:

 using MyDAL;

  2.准备好一个 XConnection 对象,目前支持 MySQL / SQL Server ,后续会支持  Oracle / Postgre SQL ... 等等:

    以 MySQL 为例,如下:

 //
// Nuget : Package : MySql.Data
//
// 不同版本 mysql 连接字符串一般如下:
// "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;"
// "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;"
// "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;allowPublicKeyRetrieval=true;"
//
var Conn =
new XConnection
(
new MySqlConnection
("Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;allowPublicKeyRetrieval=true;")
);

  3.新增一条数据:

             var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");
var m15 = new AlipayPaymentRecord
{
Id = pk,
CreatedOn = DateTime.Parse("2018-08-20 19:12:05.933786"),
PaymentRecordId = Guid.Parse("e94f747e-1a6d-4be6-af51-016558c05b29"),
OrderId = Guid.Parse("f60f08e7-9678-41a8-b4aa-016558c05afc"),
TotalAmount = 0.010000000000000000000000000000M,
Description = null,
PaymentSN = "",
PayedOn = DateTime.Parse("2018-08-20 20:36:35.720525"),
CanceledOn = null,
PaymentUrl = "https://openapi.xxx?charset=UTF-8&app_id=zzz&version=1.0"
}; // 新增一条数据: AlipayPaymentRecord
var res15 = await Conn.CreateAsync(m15);

    以 MySQL 为例,生成 SQL 如下:

 insert into `AlipayPaymentRecord`
(`Id`,`CreatedOn`,`PaymentRecordId`,`OrderId`,`TotalAmount`,`Description`,`PaymentSN`,`PayedOn`,`CanceledOn`,`PaymentUrl`)
values
(?Id_2,?CreatedOn_3,?PaymentRecordId_4,?OrderId_5,?TotalAmount_6,
5 ?Description_7,?PaymentSN_8,?PayedOn_9,?CanceledOn_10,?PaymentUrl_11);

  4.删除一条数据:

             var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");

             // 删除一条数据: AlipayPaymentRecord
await Conn.DeleteAsync<AlipayPaymentRecord>(it=>it.Id==pk);

    以 MySQL 为例,生成 SQL 如下:

 delete
from `AlipayPaymentRecord`
where `Id`=?Id_1;

  5.修改一条数据:

             var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");

             // 修改一条数据: AlipayPaymentRecord
var res1 = await Conn.UpdateAsync<AlipayPaymentRecord>(it=>it.Id==pk1, new // where 条件: it=>it.Id==pk1
{
Description = "new desc", // 修改 AlipayPaymentRecord 字段 Description 的值为: "new desc"
PaymentUrl = "new url" // 修改 AlipayPaymentRecord 字段 PaymentUrl 的值为: "new url"
});

    以 MySQL 为例,生成 SQL 如下:

 update `AlipayPaymentRecord`
set `Description`=?Description_1,
`PaymentUrl`=?PaymentUrl_2
where `Id`=?Id_3;

  6.单表 查询一条数据:

             var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d");

             // 查询一条数据: AlipayPaymentRecord
var res11 = await Conn.QueryOneAsync<AlipayPaymentRecord>(it=>it.Id==pk1);

    以 MySQL 为例,生成 SQL 如下:

 select *
from `AlipayPaymentRecord`
where `Id`=?Id_1
limit 0,1;

  7.多表连接 查询一组数据:  

             var res4 = await Conn
.Queryer(out AspnetUsers user4, out AspnetUserRoles userRole4, out AspnetRoles role4)
.From(() => user4)
.InnerJoin(() => userRole4)
.On(() => user4.Id == userRole4.UserId)
.InnerJoin(() => role4)
.On(() => userRole4.RoleId == role4.Id)
.Where(() => user4.NickName.StartsWith("刘"))
.OrderBy(() => user4.UserName)
.ThenOrderBy(() => user4.AgentLevel, OrderByEnum.Asc)
.QueryListAsync<AspnetUsers>();

    以 MySQL 为例,生成 SQL 如下:

 select user4.`*`
from `AspNetUsers` as user4
inner join AspNetUserRoles as userRole4
on user4.`Id`=userRole4.`UserId`
inner join AspNetRoles as role4
on userRole4.`RoleId`=role4.`Id`
where user4.`NickName` like ?NickName_6
order by user4.`UserName` desc ,user4.`AgentLevel` asc ;

  8.与表对应的 Model 如下:  

     /*
* CREATE TABLE `alipaypaymentrecord` (
* `Id` char(36) NOT NULL,
* `CreatedOn` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
* `PaymentRecordId` char(36) NOT NULL,
* `OrderId` char(36) NOT NULL,
* `TotalAmount` decimal(65,30) NOT NULL,
* `Description` longtext,
* `PaymentSN` longtext,
* `PayedOn` datetime(6) DEFAULT NULL,
* `CanceledOn` datetime(6) DEFAULT NULL,
* `PaymentUrl` longtext,
* PRIMARY KEY (`Id`)
*) ENGINE=InnoDB DEFAULT CHARSET=utf8
*/
[XTable(Name = "AlipayPaymentRecord")] // XTableAttribute 指明 该 Model 对应 DB 中的 table 名.
public class AlipayPaymentRecord
{
public Guid Id { get; set; }
public DateTime CreatedOn { get; set; }
public Guid PaymentRecordId { get; set; }
public Guid OrderId { get; set; }
public decimal TotalAmount { get; set; }
public string Description { get; set; }
public string PaymentSN { get; set; }
public DateTime? PayedOn { get; set; }
public DateTime? CanceledOn { get; set; }
public string PaymentUrl { get; set; }
}

  9.快速查看 语句 对应生成的 SQL,如下:

    在 VS 输出 窗口 可以看到 语句执行前 对应 生成 的 参数化 SQL 例如 -- 新增如下:

如果你喜欢这个平台框架,别忘了在 Github 上给点个 Star(星) 啊~~

                                         蒙

                                    2018-10-22 18:30 周一

                                    2018-11-18 16:53 周日

                                    2018-12-27 21:30 周四

                                    2019-02-07 23:55 周四

                                    2019-02-24 17:38 周日

                                    2019-04-12 17:56 周五

                                    2019-05-05 15:38 周日

                                    2019-05-20 17:50 周一

MyDAL - 快速使用的更多相关文章

  1. 快速构建H5单页面切换骨架

    在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用 ...

  2. .net core快速上手

    2014年11月12日的Connect ();开发者活动上宣布将.NET堆栈基于MIT协议开源,并且提供开源保证,托管在Github上.当时的版本与最终目标相距甚远,然而有一点可以肯定的是,这是一个与 ...

  3. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  4. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  5. 快速搭建springmvc+spring data jpa工程

    一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...

  6. 如何快速优化手游性能问题?从UGUI优化说起

    WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文 ...

  7. Photoshop将普通照片快速制作二次元漫画风格效果

    今天为大家分享Photoshop将普通照片快速制作二次元漫画风格效果,教程很不错,对于喜欢漫画的朋友可以参考本文,希望能对大家有所帮助! 一提到日本动画电影,大家第一印象肯定是宫崎骏,但是日本除了宫崎 ...

  8. CRL快速开发框架系列教程十三(嵌套查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

随机推荐

  1. 最快1天搭建短视频APP!阿里云短视频解决方案上线

    短视频行业的发展前景乐观是毋庸置疑的,整个短视频的市场规模一直在增长,网络数据显示2018年已经突破100亿大关,在2019年预测将超过200亿.那么,对于短视频从业者来讲,要持续推动业务的发展,必须 ...

  2. 简述Java中的final关键字

    final关键字可用于修饰类.方法和变量,final修饰的类不能被继承:final修饰的方法不可被重写:final修饰的变量不可被改变. 1. final类 final修饰的类不能被继承意思是fina ...

  3. 兼容IE8浏览器移除class样式的方法

    项目中发现,IE8下不兼容JQ的removeClass和addClass,页面无效果 网上找了很多方法都没有效果,最终找到一个很好的笨方法 var div=document.getElementByI ...

  4. DataPipeline成功入选微软加速器 企业创新力获业界专家认可

    近日,微软加速器•北京公布最终入选的第13期创新企业名单.作为国内领先的“iPaaS+AI”一站式数据融合服务提供商DataPipeline,历经多轮角逐,在上千家企业激烈竞争中,成功入选. 高手过招 ...

  5. 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现

    1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...

  6. “Validation failed for one or more entities”异常的解决办法

    日志中出现Entity Framework修改数据库时的错误: Validation failed for one or more entities. See 'EntityValidationErr ...

  7. web server性能优化浅谈

    作者:ZhiYan,Jack47 转载请保留作者和原文出处 Update: 2018.8.8 在无锁小节增加了一些内容 性能优化,优化的东西一定得在主路径上,结合测量的结果去优化.不然即使性能再好,逻 ...

  8. Java引用详解-StrongReference SoftReference WeakReference PhantomReference

    1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:    强引用  >  软引用  >  弱引用  >  虚引用 ⑴强引用(StrongR ...

  9. java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener异常解决

    在启动Dubbo项目时,出现该异常 java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener 解决,引入 <d ...

  10. Fastadmin安装以及各种问题解决

    FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架 https://www.fastadmin.net/ 参照官方文档安装,还是有坑的 首先注意:无需下载PHP.Th ...