iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.NET集成ORM框架HiSql
  • 950
分享到

.NET集成ORM框架HiSql

2024-04-02 19:04:59 950人浏览 薄情痞子
摘要

一、引言 做.net这么多年,出现了很多很多ORM框架,比如Dapper,sqlsugar,Freesql等等。在之前的项目中,用到的ORM框架也大多数是这几个老牌的框架。不过最近园

一、引言

.net这么多年,出现了很多很多ORM框架,比如Dapper,sqlsugar,Freesql等等。在之前的项目中,用到的ORM框架也大多数是这几个老牌的框架。
不过最近园子关于.NET ORM HiSql的讨论挺多的,本系列将通过不断学习 HiSql官网教程,尝试将之前使用SqlSuger ORM的一个项目,使用HiSql框架实现相关功能,看看hisql能带给我们哪些惊喜。

HiSql gitGub地址
HiSql官网教程
项目介绍:项目是一个通用的后台管理系统,包含菜单管理、权限管理、组织架构、用户管理等等。
数据库采用SqlServer 2016;前端使用Element-UI;后端采用.Net5 WEB api

二、集成HiSql到项目

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 #数据元素

到此,项目就完成了HiSql的引入了,后面就可以愉快的使用HiSql各个功能。

到此这篇关于.NET集成ORM框架HiSql的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: .NET集成ORM框架HiSql

本文链接: https://www.lsjlt.com/news/153436.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .NET集成ORM框架HiSql
    一、引言 做.Net这么多年,出现了很多很多ORM框架,比如Dapper,Sqlsugar,Freesql等等。在之前的项目中,用到的ORM框架也大多数是这几个老牌的框架。不过最近园...
    99+
    2024-04-02
  • .NET如何集成ORM框架HiSql
    这篇文章主要讲解了“.NET如何集成ORM框架HiSql”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET如何集成ORM框架HiSql”吧!一、引言做.Net这么多年,出现了很多很多OR...
    99+
    2023-07-02
  • Abp集成HangFire开源.NET任务调度框架
    目录简要说明什么是Hangfire简要说明 后台作业在系统开发的过程当中,是比较常用的功能。因为总是有一些长耗时的任务,而这些任务我们不是立即响应的,例如 Excel 文档导入、批量...
    99+
    2024-04-02
  • .NET ORM框架SqlSugar实现导航查询功能
    目录1、导航查询特点1.1 无外键开箱就用1.2 高性能优 3.3 语法超级爽2、新导航查询 ORM2.1 一对一2.2 一对多2.3 多对多2.4 多级查询2.5 大数据...
    99+
    2024-04-02
  • 详解.NET主流的几款重量级 ORM框架
    目录1、Entity Framework2、SqlSugar3、PetaPoco(增删改不需要自己写sql语句)4、NHibernate市场上轻量级ORM有很多,比如Dapper、C...
    99+
    2024-04-02
  • PHP函数的ORM框架
    一、什么是ORM框架?ORM全称为对象关系映射,是一种程序设计技术,用于将数据库中的数据映射到程序中的对象中。ORM框架是一种将ORM技术封装成一个框架,提供了一系列方法和类来操作数据库的解决方案。ORM框架的主要目的是简化数据库操作和提高...
    99+
    2023-05-20
    数据库操作 ORM框架 PHP函数
  • SpringBoot框架如何集成ElasticSearch
    这篇文章主要为大家展示了“SpringBoot框架如何集成ElasticSearch”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot框架如何集成ElasticSearch”这篇...
    99+
    2023-06-25
  • Python练习之ORM框架
    目录一、Python语言中有哪些常用的ORM框架以及它们的区别二、使用SQLObject框架操作MySQL数据库1. 创建表2. 插入数据3. 修改数据4. 查询数据三、补充总结目的...
    99+
    2024-04-02
  • java中有哪些orm框架
    java中有哪些orm框架?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了W...
    99+
    2023-06-14
  • Hibernate orm框架有什么用
    本篇内容主要讲解“Hibernate orm框架有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate orm框架有什么用”吧!Hibernate在解决性能问题方面做得非常好。...
    99+
    2023-06-17
  • SpringBoot如何构建ORM框架
    本篇内容主要讲解“SpringBoot如何构建ORM框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot如何构建ORM框架”吧!目前常用的ORM框架有 Mybatis(bati...
    99+
    2023-06-29
  • Springboot中如何集成Swagger2框架
    这篇文章给大家分享的是有关Springboot中如何集成Swagger2框架的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。摘要:在项目开发中,往往期望做到前后端分离,也就是后端开发人员往往需要输出大量的服务接口,...
    99+
    2023-05-30
    spring boot swagger2
  • 【SpringBoot】| ORM 操作 MySQL(集成MyBatis)
    目录 一:ORM 操作 MySQL  1. 创建 Spring Boot 项目 2. @MapperScan 3. mapper文件和java代码分开管理 4. 事务支持 一:ORM 操作 MySQL  使用MyBatis框架操作数...
    99+
    2023-09-12
    mysql spring boot java
  • php的orm框架有哪些
    php中常见的orm框架有Doctrine、EZPDO、RedBean、PropelDoctrineDoctrine是一款php orm框架,是一个数据抽象层,其特征是通过面向对象的方式来实现数据库查询的封转,灵活性高,可以减小代码的重复性...
    99+
    2024-04-02
  • python中有哪些orm框架
    python中的orm框架有SQLObject、Storm和SQLAlchemy常见的三种SQLObjectSQLObject是一种基于Python对象的对象关系管理器,常用于为数据库提供对象接口,其中表为类、行为实例、列为属性,可以为应用...
    99+
    2024-04-02
  • 持久层ORM框架中Hibernate框架的示例分析
    这篇文章主要介绍了持久层ORM框架中Hibernate框架的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言hibernate的概念:hibernate是一个orm...
    99+
    2023-06-25
  • Python之ORM框架怎么使用
    本文小编为大家详细介绍“Python之ORM框架怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python之ORM框架怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Python语言中有哪些常...
    99+
    2023-07-02
  • 若依框架,集成flowable工作流
    参考文档: flowable · 语雀 抄人家的代码: https://gitee.com/tony2y/RuoYi-flowable.git 因为这是一个完整的项目,如果是空项目的话,直接下载就行了,已有项目移植。就可以往下看了,已调试通...
    99+
    2023-09-21
    java 开发语言
  • 如何理解Java ORM框架guzz
    本篇文章给大家分享的是有关如何理解Java ORM框架guzz,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。guzz 1.3.1 大版本更新噢: 动态拼接SQL终于...
    99+
    2023-06-17
  • Python——几款流行ORM框架(SQ
    http://python.jobbole.com/84100/...
    99+
    2023-01-31
    几款 框架 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作