| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | |
| | | using System.Linq.Expressions; |
| | | using SqlSugar; |
| | | |
| | | namespace HH.WCS.Mobox3.DSZSH.util { |
| | | //https://www.donet5.com/Home/Doc |
| | | //DOC:https://www.donet5.com/Home/Doc |
| | | //NOTE:如果用Oracle数据库,需要包Oracle.ManagedDataAccess/21.15.0,环境netframework/4.6.2(太新了4.8,有的服务器安装不上去) |
| | | //NOTE:SqlHelper带T的原因,是旧框架编写了`Update(T model, string[] cols)`等代码(参考HH-0014_NongFu_QingXi 农夫青溪) |
| | | public class SqlHelper<T> where T : class, new() { |
| | | // NOTE:如果用Oracle数据库,需要包Oracle.ManagedDataAccess/21.15.0,环境netframework 4.6.2 (太新了4.8有的服务器安装不上去) |
| | | |
| | | public SqlSugarClient GetInstance(string url = "") { |
| | | public SqlSugarClient GetInstance() { |
| | | //创建数据库对象 |
| | | SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { |
| | | ConnectionString = string.IsNullOrEmpty(url) ? Settings.SqlServer : url, |
| | | |
| | | //ConnectionString = @"Data Source=192.168.1.198\sql2008;Initial Catalog=OIMobox;User ID=sa;Password=sa@2015", |
| | | DbType = DbType.SqlServer, |
| | | |
| | | //ConnectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OIMobox)));User Id=system;Password=Am123123;", |
| | | //DbType = DbType.Oracle, |
| | | |
| | | ConnectionString = Settings.DbConn, |
| | | DbType = Settings.DbType, |
| | | IsAutoCloseConnection = true, |
| | | InitKeyType = InitKeyType.Attribute//从特性读取主键自增信息 |
| | | }); |
| | | |
| | | //监控所有超过1秒的Sql |
| | | db.Aop.OnLogExecuted = (sql, p) => { |
| | | //执行时间超过1秒 |
| | |
| | | } |
| | | //相当于EF的 PrintToMiniProfiler |
| | | }; |
| | | |
| | | // 配置AOP日志 |
| | | //配置AOP日志 |
| | | //db.Aop.OnLogExecuting = (sql, pars) => |
| | | //{ |
| | | // Console.WriteLine(sql); // 输出纯SQL语句 |
| | | // Console.WriteLine(sql);//输出纯SQL语句 |
| | | //}; |
| | | |
| | | //每次设置数值时都去除前导后导空格 |
| | | db.Aop.DataExecuted = (value, entity) => { |
| | | entity.EntityColumnInfos.ToList().ForEach(a => { |
| | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | //据转换 (ExecuteCommand才会拦截,查询不行) |
| | | //db.Aop.DataExecuting = (value, entity) => { |
| | | // //var val=entity.EntityColumnInfo |
| | | // Console.WriteLine(entity.EntityName); |
| | | //设置AOP中的事件处理程序 |
| | | //db.Aop.OnExecutingChangeSql = (sql, p) => { |
| | | // // 示例:自动过滤软删除数据 |
| | | // if (sql.StartsWith("SELECT")) { |
| | | // sql += " WHERE IsDeleted = 0"; |
| | | // } |
| | | // return new KeyValuePair<string, SugarParameter[]>(sql, p); |
| | | //}; |
| | | |
| | | return db; |
| | | } |
| | | } |