<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
做.Net這麼多年,出現了很多很多ORM框架,比如Dapper,Sqlsugar,Freesql等等。在之前的專案中,用到的ORM框架也大多數是這幾個老牌的框架。
不過最近園子關於.NET ORM HiSql的討論挺多的,本系列將通過不斷學習 HiSql官網教學,嘗試將之前使用SqlSuger ORM的一個專案,使用HiSql框架實現相關功能,看看hisql能帶給我們哪些驚喜。
HiSql GitGub地址
HiSql官網教學
專案介紹:專案是一個通用的後臺管理系統,包含選單管理、許可權管理、組織架構、使用者管理等等。
資料庫採用SqlServer 2016;前端使用Element-UI;後端採用.Net5 Web Api。
1、安裝 HiSql 核心包、 HiSql.SqlServer。
2、在專案中新建類檔案 HiSqlSetupExtension.cs, 用於注入資料庫設定,hisql資料庫存取物件。
using HiSql; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; namespace H.CRM.Action.API.Helper { public static class HiSqlSetupExtension { public static IServiceCollection AddHiSqlSetup(this IServiceCollection services) { //注入HiSqlConfig services.AddTransient<HiSqlConfig>(); //注入HiSqlClient services.AddTransient<HiSqlClient>((d) => { var config = d.GetService<HiSqlConfig>(); var hisql = new HiSqlClient(config); return hisql; }); return services; } } class HiSqlConfig : ConnectionConfig { static readonly NLog.Logger logger = NLog.LogManager.GetLogger("HiSqlSetup"); public HiSqlConfig(IConfiguration configuration) { DbType = DBType.SqlServer; DbServer = "HISQL"; ConnectionString = configuration.GetSection("ConnectionStrings:Admin").Value; Schema = "dbo"; SqlExecTimeOut = 1000 * 5; AppEvents = new AopEvent() { OnDbDecryptEvent = (connstr) => { //解密連線欄位 return connstr; }, OnLogSqlExecuting = (sql, param) => { //sql執行前 紀錄檔記錄 (非同步) #if DEBUG logger.Trace($"執行前sql:{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}"); #endif }, OnLogSqlExecuted = (sql, param) => { #if DEBUG //sql執行後 紀錄檔記錄 (非同步) logger.Trace($"執行後sql:{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}"); #endif }, OnSqlError = (sqlEx) => { //sql執行錯誤後 紀錄檔記錄 (非同步) logger.Error($"執行錯誤:{sqlEx.Message} sql:{sqlEx.Sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}"); }, OnTimeOut = (int timer) => { //logger.Trace($"執行超時:{timer} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}"); } }; } } }
3、在 Startup 中的ConfigureServices方法中,新增 hisql的使用。
//注入Hisql相關 services.AddHiSqlSetup();
4、新建 控制器 HiSqlController,新增初始化方法。
using Microsoft.AspNetCore.Mvc; using HiSql; using System.Linq; namespace HSMB.Admin.WebApi.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class HiSqlController : ControllerBase { private readonly HiSqlClient sqlClient; public HiSqlController( HiSqlClient hiSqlClient ) { this.sqlClient = hiSqlClient; } [HttpGet, HttpPost] public IActionResult Install() { sqlClient.CodeFirst.InstallHisql(); var tables = sqlClient.DbFirst.GetTables().ToList().Where(t=>t.TabName.StartsWith("H")); return new JsonResult(tables); } } }
5、啟動專案後,存取 專案地址 http://localhost:8868/api/hisql/Install 初始化hisql。
如圖表示初始化成功,同時在資料庫也可以看到,系統建立了下圖的4個基礎表:
到此,專案就完成了HiSql的引入了,後面就可以愉快的使用HiSql各個功能。
到此這篇關於.NET整合ORM框架HiSql的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45