首页 > 数据库 >.net使用Freesql连接瀚高数据库

.net使用Freesql连接瀚高数据库

时间:2024-08-23 10:28:49浏览次数:9  
标签:FreeType DataType Freesql 数据库 FreeSql net isdatabase fsql

默认情况下Freesql可以使用PostgreSQL的连接方式连接,如果是md5加密的

  var isdatabase = MyRedis.GetStringKey("DataBaseType");
  var sqlConnStr =  "Server=192.168.1.111;Port=5866;User Id=root;Password=123456;Database=databasename;searchpath=moshi";

 FreeSql.DataType FreeType = 0;
  //因为我们之前支持sql和mysql现在新增一个瀚高
  if (isdatabase == 1)
  {
      FreeType = FreeSql.DataType.MySql;
  }
  else if (isdatabase == 0)
  {
      FreeType = FreeSql.DataType.SqlServer;
  }
  else
  {
      FreeType = FreeSql.DataType.PostgreSQL;
  }
  IFreeSql fsql = new FreeSql.FreeSqlBuilder()
      .UseConnectionString(FreeType, sqlConnStr).UseAutoSyncStructure(false).Build();
  services.AddSingleton<IFreeSql>(fsql);

 

但是公司的瀚高数据库加密模式从md5改成sm3后上面这种连接方式就失效了,Freesql本身并不支持直接连sm3加密的瀚高数据库。所以需要用到自定义链接。

  var isdatabase = MyRedis.GetStringKey("DataBaseType");
  var sqlConnStr =  "Server=192.168.1.111;Port=5866;User Id=root;Password=123456;Database=databasename;searchpath=moshi";

 FreeSql.DataType FreeType = 0;
  //因为我们之前支持sql和mysql现在新增一个瀚高
  if (isdatabase == 1)
  {
      FreeType = FreeSql.DataType.MySql;
  }
  else if (isdatabase == 0)
  {
      FreeType = FreeSql.DataType.SqlServer;
  }
  else
  {
      FreeType = FreeSql.DataType.PostgreSQL;
  }
                var fsql = new FreeSqlBuilder()
.UseConnectionFactory(FreeType, () => new NhgdbConnection(sqlConnStr))//NhgdbConnection是瀚高官网下载的dll
.UseNameConvert(NameConvertType.ToLower)   //所有sql操作表列名转小写,数据库配置了不区分大小写,但是只在md5模式下有效,sm3模式下还是得自己加这个配置
.UseAutoSyncStructure(false)//自动同步实体表结构到数据库,建议关闭,一不小心我删除过自己的表
.Build();
                fsql.SetDbProviderFactory(NhgdbFactory.Instance);//这是从瀚高官网下载的Nhgdb.dll
                services.AddSingleton<IFreeSql>(fsql);

如果md5加密方式使用以上方式连不上,那就是要改瀚高数据库配置,并非不支持连接。

但是公司的瀚高数据库加密模式从md5改成sm3后上面这种连接方式就失效了,Freesql本身并不支持直接连sm3加密的瀚高数据库。所以需要用到自定义链接。

https://files.cnblogs.com/files/Lynnyin/Nhgdb.zip?t=1724379769&download=true

标签:FreeType,DataType,Freesql,数据库,FreeSql,net,isdatabase,fsql
From: https://www.cnblogs.com/Lynnyin/p/18375455

相关文章

  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
    DevExpressXAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpressXAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。在DevExpressXAF v24.1新版中全新升级了支持CRUD操作、进一步......
  • 慢 SQL 是如何拖垮数据库的?
    案发现场上午9:49,应用报警:错误码4103.ERR_ATOM_CONNECTION_POOL_FULL,提示数据库连接池已满。在上午9:49至10:08的这段时间内,又陆续接收到了多个数据库异常报警,包括4200.ERR_GROUP_NOT_AVAILABLE、4201.ERR_GROUP_NO_ATOM_AVAILABLE以及4202.ERR_SQL_QUERY_TIMEOUT等。鉴于数据......
  • 慢 SQL 是如何拖垮数据库的?
    案发现场上午9:49,应用报警:错误码4103.ERR_ATOM_CONNECTION_POOL_FULL,提示数据库连接池已满。在上午9:49至10:08的这段时间内,又陆续接收到了多个数据库异常报警,包括4200.ERR_GROUP_NOT_AVAILABLE、4201.ERR_GROUP_NO_ATOM_AVAILABLE以及4202.ERR_SQL_QUERY_TIMEOUT等。鉴于数据......
  • 高效缓存策略——.NET Core 中基于 Redis 的分布式缓存实现
    引言在构建高性能的应用程序时,缓存是不可或缺的技术之一。通过缓存,我们能够显著减少数据库的压力、提升应用的响应速度。而在分布式系统中,分布式缓存则成为了处理高并发和大数据量的理想选择。本文将以Redis为例,介绍如何在.NETCore中实现分布式缓存,帮助开发者打造高效......
  • 05-03 Map Persistent Objects to Database Views(将持久对象映射到数据库视图 )
    MapPersistentObjectstoDatabaseViews(将持久对象映射到数据库视图)CreateaPersistentClass(创建持久类)Createapersistentclass.Theclassnameshouldmatchtheviewname.创建一个持久类。类名应与视图名匹配。AssignthePersistentattributetotheper......
  • Java学习笔记5—数据库日志文件
    1.slowlog慢SQL记录2.binlog*记录数据库执行的写操作(不包括查询)信息,以二进制的形式保存在磁盘中。使用场景:主从复制(在Master端开启binlog,然后将binlog发送到各个Slave端,Slave端重放binlog来达到主从数据一致。)和数据恢复(mysqlbinlog)binlog日志有三种格式,分......
  • .NET 9 技术革新,新特性概览
    目录简介正文新特性1、序列化2、LINQ3、加密总结.NET9下载地址最后简介.NET9作为微软推出的最新框架版本,无疑为开发者带来了一系列的新特性,继.NET8之后.NET9在云原生应用程序得到了增强和性能得到提升。它是STS版本,将获得为期18个月的标准支持服务。这......
  • 数据库面试总结
    pgsql数据库在大数据量的查询情况下,pgsql和mysql谁更有优势当数据量达到一定程度时(如数亿条记录以上),PostgreSQL在查询性能方面的优势可能会更加明显。这得益于其强大的查询优化器、丰富的索引类型、高效的并发处理和事务管理能力以及支持分区和并行查询等特性。pgsql的......
  • Asp .Net Core 学习笔记
    Startup类ConfigureServices方法注册服务,并通过依赖注入(DI)或者ApplicationServices在整个应用中使用服务使用IServiceCollection的各种Add{Service}进行注册,例如,AddDbContext、AddDefault、AddEntityFrameworkStores和AddPages在Configure方法配置应用服务之前,由主机......
  • SQLite数据库
    一、概念:对于一般小批量的数据存放且掉电数据不会丢失,软件的配置及想要持续保存的数据会放入文件中,而对于大批量数据存储和管理时则使用数据库 二、类型:1、关系型数据库 (1)大型数据库:Oracle、DB2(2)中型数据库:MySQL(开源)、SQLServer(3)小型数据库:SQLite 虽然是小型数......