索引:html
目錄索引mysql
一.安裝sql
在 VS 中執行一下 package 命令: api
1 PM> Install-Package MyDAL
二.API-快速使用app
1.命名空間,只需:框架
1 using MyDAL;
2.準備好一個 XConnection 對象,目前支持 MySQL / SQL Server ,後續會支持 Oracle / Postgre SQL ... 等等:ui
以 MySQL 爲例,以下:url
1 // 2 // Nuget : Package : MySql.Data 3 // 4 // 不一樣版本 mysql 鏈接字符串通常以下: 5 // "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;" 6 // "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;" 7 // "Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;allowPublicKeyRetrieval=true;" 8 // 9 var Conn = 10 new XConnection 11 ( 12 new MySqlConnection 13 ("Server=localhost; Database=MyDAL_TestDB; Uid=SkyUser; Pwd=Sky@4321;SslMode=none;allowPublicKeyRetrieval=true;") 14 );
3.新增一條數據:spa
1 var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d"); 2 var m15 = new AlipayPaymentRecord 3 { 4 Id = pk, 5 CreatedOn = DateTime.Parse("2018-08-20 19:12:05.933786"), 6 PaymentRecordId = Guid.Parse("e94f747e-1a6d-4be6-af51-016558c05b29"), 7 OrderId = Guid.Parse("f60f08e7-9678-41a8-b4aa-016558c05afc"), 8 TotalAmount = 0.010000000000000000000000000000M, 9 Description = null, 10 PaymentSN = "2018082021001004180510465833", 11 PayedOn = DateTime.Parse("2018-08-20 20:36:35.720525"), 12 CanceledOn = null, 13 PaymentUrl = "https://openapi.xxx?charset=UTF-8&app_id=zzz&version=1.0" 14 }; 15 16 // 新增一條數據: AlipayPaymentRecord 17 var res15 = await Conn.CreateAsync(m15);
以 MySQL 爲例,生成 SQL 以下:code
1 insert into `AlipayPaymentRecord` 2 (`Id`,`CreatedOn`,`PaymentRecordId`,`OrderId`,`TotalAmount`,`Description`,`PaymentSN`,`PayedOn`,`CanceledOn`,`PaymentUrl`) 3 values 4 (?Id_2,?CreatedOn_3,?PaymentRecordId_4,?OrderId_5,?TotalAmount_6,
5 ?Description_7,?PaymentSN_8,?PayedOn_9,?CanceledOn_10,?PaymentUrl_11);
4.刪除一條數據:
1 var pk = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d"); 2 3 // 刪除一條數據: AlipayPaymentRecord 4 await Conn.DeleteAsync<AlipayPaymentRecord>(it=>it.Id==pk);
以 MySQL 爲例,生成 SQL 以下:
1 delete 2 from `AlipayPaymentRecord` 3 where `Id`=?Id_1;
5.修改一條數據:
1 var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d"); 2 3 // 修改一條數據: AlipayPaymentRecord 4 var res1 = await Conn.UpdateAsync<AlipayPaymentRecord>(it=>it.Id==pk1, new // where 條件: it=>it.Id==pk1 5 { 6 Description = "new desc", // 修改 AlipayPaymentRecord 字段 Description 的值爲: "new desc" 7 PaymentUrl = "new url" // 修改 AlipayPaymentRecord 字段 PaymentUrl 的值爲: "new url" 8 });
以 MySQL 爲例,生成 SQL 以下:
1 update `AlipayPaymentRecord` 2 set `Description`=?Description_1, 3 `PaymentUrl`=?PaymentUrl_2 4 where `Id`=?Id_3;
6.單表 查詢一條數據:
1 var pk1 = Guid.Parse("8f2cbb64-8356-4482-88ee-016558c05b2d"); 2 3 // 查詢一條數據: AlipayPaymentRecord 4 var res11 = await Conn.QueryOneAsync<AlipayPaymentRecord>(it=>it.Id==pk1);
以 MySQL 爲例,生成 SQL 以下:
1 select * 2 from `AlipayPaymentRecord` 3 where `Id`=?Id_1 4 limit 0,1;
7.多表鏈接 查詢一組數據:
1 var res4 = await Conn 2 .Queryer(out AspnetUsers user4, out AspnetUserRoles userRole4, out AspnetRoles role4) 3 .From(() => user4) 4 .InnerJoin(() => userRole4) 5 .On(() => user4.Id == userRole4.UserId) 6 .InnerJoin(() => role4) 7 .On(() => userRole4.RoleId == role4.Id) 8 .Where(() => user4.NickName.StartsWith("劉")) 9 .OrderBy(() => user4.UserName) 10 .ThenOrderBy(() => user4.AgentLevel, OrderByEnum.Asc) 11 .QueryListAsync<AspnetUsers>();
以 MySQL 爲例,生成 SQL 以下:
1 select user4.`*` 2 from `AspNetUsers` as user4 3 inner join AspNetUserRoles as userRole4 4 on user4.`Id`=userRole4.`UserId` 5 inner join AspNetRoles as role4 6 on userRole4.`RoleId`=role4.`Id` 7 where user4.`NickName` like ?NickName_6 8 order by user4.`UserName` desc ,user4.`AgentLevel` asc ;
8.與表對應的 Model 以下:
1 /* 2 * CREATE TABLE `alipaypaymentrecord` ( 3 * `Id` char(36) NOT NULL, 4 * `CreatedOn` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), 5 * `PaymentRecordId` char(36) NOT NULL, 6 * `OrderId` char(36) NOT NULL, 7 * `TotalAmount` decimal(65,30) NOT NULL, 8 * `Description` longtext, 9 * `PaymentSN` longtext, 10 * `PayedOn` datetime(6) DEFAULT NULL, 11 * `CanceledOn` datetime(6) DEFAULT NULL, 12 * `PaymentUrl` longtext, 13 * PRIMARY KEY (`Id`) 14 *) ENGINE=InnoDB DEFAULT CHARSET=utf8 15 */ 16 [XTable(Name = "AlipayPaymentRecord")] // XTableAttribute 指明 該 Model 對應 DB 中的 table 名. 17 public class AlipayPaymentRecord 18 { 19 public Guid Id { get; set; } 20 public DateTime CreatedOn { get; set; } 21 public Guid PaymentRecordId { get; set; } 22 public Guid OrderId { get; set; } 23 public decimal TotalAmount { get; set; } 24 public string Description { get; set; } 25 public string PaymentSN { get; set; } 26 public DateTime? PayedOn { get; set; } 27 public DateTime? CanceledOn { get; set; } 28 public string PaymentUrl { get; set; } 29 }
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 週一