这篇文章主要讲解了“.NET如何集成ORM框架HiSql”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET如何集成ORM框架HiSql”吧!
做.Net这么多年,出现了很多很多ORM框架,比如Dapper,Sqlsugar,Freesql等等。在之前的项目中,用到的ORM框架也大多数是这几个老牌的框架。
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个基础表:
1.Hi_TabModel #表结构信息主表
2.Hi_FieldModel #表结构信息明细表
3.Hi_Domain #数据域
4.Hi_DataElement #数据元素
感谢各位的阅读,以上就是“.NET如何集成ORM框架HiSql”的内容了,经过本文的学习后,相信大家对.NET如何集成ORM框架HiSql这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。