hisql 新一代無實體ORM使用第一步 hisql安裝使用


安裝

github hisql 最新源碼下載
也可以通過nuget安裝
hisql.net 官網(文檔編寫中)

HiSql 查詢語句教程
hisql orm 框架insert數據寫入教程
hisql與目前比較流行的ORM框架性能測試對比

注意:HiSql支持framework4.6 .netcore .net5或以上環境

  1. 選擇您需要支持的數據庫對應的支持包進行安裝 本例使用sqlserver進行演示,請安裝1.0.1.3以上版本

  2. 連接數據庫

  HiSqlClient sqlclient = new HiSqlClient(
      new ConnectionConfig()
               {
                   DbType = DBType.SqlServer,
                   DbServer = "local-HoneBI",
               //ConnectionString = "server=192.168.1.90,8433;uid=sa;pwd=Hone@123;database=HoneBI",
               ConnectionString = "server=(local);uid=sa;pwd=Hone@123;database=HiSql;",//; MultipleActiveResultSets = true;
               Schema = "dbo",
                   IsEncrypt = true,
                   IsAutoClose = false,
                   SqlExecTimeOut = 60000,

                   AppEvents = new AopEvent()
                   {
                       OnDbDecryptEvent = (connstr) =>
                       {
                       //解密連接字段
                       //Console.WriteLine($"數據庫連接:{connstr}");

                       return connstr;
                       },
                       OnLogSqlExecuting = (sql, param) =>
                       {
                       //sql執行前 日志記錄 (異步)

                       //Console.WriteLine($"sql執行前記錄{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}");
                   },
                       OnLogSqlExecuted = (sql, param) =>
                       {
                       //sql執行后 日志記錄 (異步)
                       //Console.WriteLine($"sql執行后記錄{sql} time:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")}");
                   },
                       OnSqlError = (sqlEx) =>
                       {
                       //sql執行錯誤后 日志記錄 (異步)
                          Console.WriteLine(sqlEx.Message.ToString());
                       },
                       OnTimeOut = (int timer) =>
                       {
                       //Console.WriteLine($"執行SQL語句超過[{timer.ToString()}]毫秒...");
                   }
                   }
               }
               );

            

  1. 第一次使用時需要執行以下方法進行HiSql安裝(只需要執行一次)
sqlclient.CodeFirst.InstallHisql();

4 .檢查是否安裝成功
數據庫中出現以下四張表則安裝成功

下面就可以進行表操作了
建一張測試表【H_Test】 測試一下 sql代碼如下

USE [HiSql]
GO

/****** Object:  Table [dbo].[H_Test]    Script Date: 2021/10/26 9:37:42 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[H_Test](
	[Hid] [int] NOT NULL,
	[UserName] [nchar](50) NULL,
	[UserAge] [int] NULL,
	[ReName] [nvarchar](50) NULL,
 CONSTRAINT [PK_H_Test] PRIMARY KEY CLUSTERED 
(
	[Hid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[H_Test] ADD  CONSTRAINT [DF_H_Test_UserAge]  DEFAULT ((0)) FOR [UserAge]
GO


或可以通過實體類來創建表 ,如下實體

[HiTable(IsEdit = true, TabName = "H_Test", TabDescript = "測試表")]
    public class H_Test: StandField
    {
        [HiColumn(FieldDesc = "編號",  IsPrimary = true, IsBllKey = true,   DBDefault = HiTypeDBDefault.EMPTY, SortNum = 1)]
        public int Hid { get; set; }

        [HiColumn(FieldDesc = "用戶名", FieldLen = 50,   DBDefault = HiTypeDBDefault.EMPTY, SortNum = 2 )]
        public string UserName { get; set; }

        [HiColumn(FieldDesc = "年齡",  DBDefault = HiTypeDBDefault.EMPTY, SortNum = 3)]
        public int UserAge { get; set; }

        [HiColumn(FieldDesc = "真實姓名", FieldLen = 50, DBDefault = HiTypeDBDefault.EMPTY, SortNum = 4)]
        public string ReName { get; set; }
    }

再執行以下代碼

Tuple<HiTable, List<HiColumn>> tabomdel = sqlclient.Context.DMInitalize.BuildTabStru(typeof(DemoTable.H_Test));
            int v=(int)sqlclient.Context.DBO.ExecCommand(sqlclient.Context.DMTab.BuildTabCreateSql(tabomdel.Item1, tabomdel.Item2, true));

  1. 通過HiSql ORM SDK 向表[H_Test] 插入數據
sqlclient .Insert("H_Test", new{Hid = 1, UserName = "tansar",UserAge = 100, ReName = "Tom"}).ExecCommand();
  1. 查詢剛剛插入的數據
DataTable dt_result = sqlclient.Query("H_Test").Field("*").ToTable();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM