From 5e1c601d69bda015cee9e2fda85797b1c88513c1 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 20 Apr 2025 15:00:50 +0800 Subject: [PATCH] Add DuckDb demo --- Src/Asp.NetCore2/DuckDBTest/1_CodeFirst.cs | 8 ++++ Src/Asp.NetCore2/DuckDBTest/Class1.cs | 12 +++++ .../DuckDBTest/DBHelper/DbHelper.cs | 48 +++++++++++++++++++ Src/Asp.NetCore2/DuckDBTest/Program.cs | 41 ++-------------- 4 files changed, 71 insertions(+), 38 deletions(-) create mode 100644 Src/Asp.NetCore2/DuckDBTest/Class1.cs create mode 100644 Src/Asp.NetCore2/DuckDBTest/DBHelper/DbHelper.cs diff --git a/Src/Asp.NetCore2/DuckDBTest/1_CodeFirst.cs b/Src/Asp.NetCore2/DuckDBTest/1_CodeFirst.cs index 14f37a858..0c068a594 100644 --- a/Src/Asp.NetCore2/DuckDBTest/1_CodeFirst.cs +++ b/Src/Asp.NetCore2/DuckDBTest/1_CodeFirst.cs @@ -24,6 +24,12 @@ namespace OrmTest // 如果数据库不存在,则创建数据库 db.DbMaintenance.CreateDatabase(); + var xx=db.DbMaintenance.IsAnyTable("UserInfo001", false); + var yy = db.DbMaintenance.GetColumnInfosByTableName("UserInfo001", false); + foreach (var item in yy) + { + Console.WriteLine($"{item.DbColumnName} {item.DataType} IsIdentity:{item.IsIdentity} IsPrimarykey:{item.IsPrimarykey} IsNullable:{item.IsNullable} "); + } // Initialize tables based on UserInfo001 entity class // 根据 UserInfo001 实体类初始化表 db.CodeFirst.InitTables(); @@ -32,6 +38,8 @@ namespace OrmTest //表结构和类存在差异 初始化表 db.CodeFirst.InitTables(); + var dt=db.Ado.GetDataTable("select @id as id", new { id = 1 }); + //Insert //插入 var id=db.Insertable(new UserInfo001() diff --git a/Src/Asp.NetCore2/DuckDBTest/Class1.cs b/Src/Asp.NetCore2/DuckDBTest/Class1.cs new file mode 100644 index 000000000..00d42048f --- /dev/null +++ b/Src/Asp.NetCore2/DuckDBTest/Class1.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DuckDBTest +{ + class Class1 + { + } +} diff --git a/Src/Asp.NetCore2/DuckDBTest/DBHelper/DbHelper.cs b/Src/Asp.NetCore2/DuckDBTest/DBHelper/DbHelper.cs new file mode 100644 index 000000000..1deff4d67 --- /dev/null +++ b/Src/Asp.NetCore2/DuckDBTest/DBHelper/DbHelper.cs @@ -0,0 +1,48 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + /// + /// Helper class for database operations + /// 数据库操作的辅助类 + /// + public class DbHelper + { + /// + /// Get a new SqlSugarClient instance with specific configurations + /// 获取具有特定配置的新 SqlSugarClient 实例 + /// + /// SqlSugarClient instance + public static SqlSugarClient GetNewDb() + { + //注册DLL防止找不到DLL + InstanceFactory.CustomAssemblies = new System.Reflection.Assembly[] { + typeof(SqlSugar.DuckDB.DuckDBProvider).Assembly }; + + //创建DB + var db = new SqlSugarClient(new ConnectionConfig() + { + IsAutoCloseConnection = true, + DbType = DbType.DuckDB, + ConnectionString = "DataSource = train_services.db", + LanguageType = LanguageType.Default//Set language + + }, + it => + { + // Logging SQL statements and parameters before execution + // 在执行前记录 SQL 语句和参数 + it.Aop.OnLogExecuting = (sql, para) => + { + Console.WriteLine(UtilMethods.GetNativeSql(sql, para)); + }; + }); + return db; + } + } +} \ No newline at end of file diff --git a/Src/Asp.NetCore2/DuckDBTest/Program.cs b/Src/Asp.NetCore2/DuckDBTest/Program.cs index 81a0814d1..0a5bae15c 100644 --- a/Src/Asp.NetCore2/DuckDBTest/Program.cs +++ b/Src/Asp.NetCore2/DuckDBTest/Program.cs @@ -1,40 +1,5 @@ using SqlSugar; - +using OrmTest; +_1_CodeFirst.Init(); +Console.WriteLine("DEMO执行完成"); Console.Read(); -/// -/// Helper class for database operations -/// 数据库操作的辅助类 -/// -public class DbHelper -{ - /// - /// Database connection string - /// 数据库连接字符串 - /// - public readonly static string Connection = "DataSource = train_services.db"; - - /// - /// Get a new SqlSugarClient instance with specific configurations - /// 获取具有特定配置的新 SqlSugarClient 实例 - /// - /// SqlSugarClient instance - public static SqlSugarClient GetNewDb() - { - var db = new SqlSugarClient(new ConnectionConfig() - { - IsAutoCloseConnection = true, - DbType = DbType.DuckDB, - ConnectionString = Connection, - LanguageType = LanguageType.Default//Set language - - }, - it => { - // Logging SQL statements and parameters before execution - // 在执行前记录 SQL 语句和参数 - it.Aop.OnLogExecuting = (sql, para) => - { - Console.WriteLine(UtilMethods.GetNativeSql(sql, para)); - }; - }); - return db; - } \ No newline at end of file