コード例 #1
0
ファイル: DefaultController.cs プロジェクト: hjieking/HJieLib
        public DefaultController(ISqlSugarFactory sqlSugarFactory, IDataLogService logService)
        {
            _db = (MySqlSugarClient)sqlSugarFactory.CreateClient("LogsConnection");//Database=DGCN.HXCloud.ID4  Localhost LogsConnection

            _logService = logService;
            //1、解决方案:重写SqlSugarClient客户端   (1)使用方便(2)要在注入的时候修改
            //2、解决方案:扩展SqlSugarClient客户端   (1)注入不需要修改(2)但所有方法使用的时候需要执行EnableDiffLogEvent方法
            //3、解决方案:使用OnLogExecuted          (1)方法执行前后的数据获取不到即使修改也很难
        }
コード例 #2
0
        public SqlSugarClient CreateClient(string name)
        {
            var client = new MySqlSugarClient(new ConnectionConfig {
            });

            var option = _optionsMonitor.Get(name).SqlSugarActions.FirstOrDefault();

            if (option != null)
            {
                option(client.CurrentConnectionConfig);
            }
            return(client);
        }
コード例 #3
0
ファイル: BaseRepository.cs プロジェクト: nodyang/RayPI
 public BaseRepository(MySqlSugarClient sugarClient)
 {
     _sugarClient = sugarClient;
 }
コード例 #4
0
 public StudentRepository(MySqlSugarClient sugarClient) : base(sugarClient)
 {
 }
コード例 #5
0
ファイル: DefaultController.cs プロジェクト: hjieking/HJieLib
        public DefaultController(ISqlSugarFactory sqlSugarFactory)
        {
            _db = (MySqlSugarClient)sqlSugarFactory.CreateClient("LogsConnection");//Database=DGCN.HXCloud.ID4  Localhost LogsConnection
            db  = sqlSugarFactory.CreateClient("LogsConnection");

            //方案1  重写SqlSugarClient客户端
            _db.AopDataLog(db, _db);

            //方案2
            //_db.AopDataLogExtentions(db);
            #region MyRegion
            //_db.Aop.OnDiffLogEvent = it =>
            //{
            //    var editBeforeData = it.BeforeData;
            //    var editAfterData = it.AfterData;
            //    var sql = it.Sql;
            //    var parameter = it.Parameters;
            //    var data = it.BusinessData;//表名
            //    var time = it.Time;
            //    var diffType = it.DiffType;//枚举值 insert 、update 和 delete 用来作业务区分

            //    //你可以在这里面写日志方法
            //    var oldValueJson = "";
            //    if (editBeforeData != null&&editBeforeData.Count!=0)
            //    {
            //        oldValueJson = JsonConvert.SerializeObject(editBeforeData[0].Columns);
            //    }

            //    var newValueJson = "" ;
            //    if (editAfterData != null && editAfterData.Count != 0)
            //    {
            //       newValueJson= JsonConvert.SerializeObject(editAfterData[0].Columns);
            //    }
            //    var model = new DataLog()
            //    {
            //        ID = Guid.NewGuid(),
            //        KeyValue = data.ToString(),
            //        OldValue = oldValueJson != "" ? oldValueJson : null,
            //        NewValue = newValueJson != "" ? newValueJson : null,
            //        OperateType = diffType.ToString(),
            //        UserName = "******",
            //        OperateTime = DateTime.Now.ToString()
            //    };
            //    db.Insertable(model).ExecuteCommand();
            //};
            #endregion

            //var model = new Models.DataLog();
            //_db.Aop.OnLogExecuted = (sql, pars) => //SQL执行完事件
            //{
            //    model.ID = Guid.NewGuid();

            //    var aa = _db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
            //    model.NewValue = aa;
            //    model.KeyValue = "";
            //    model.OperateType = "";
            //    model.OperateTime = DateTime.Now.ToString();
            //    db.Insertable(model).ExecuteCommand();
            //};
            //_db.Aop.OnLogExecuting = (sql, pars) => //SQL执行前事件
            //{
            //    var aa = _db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
            //    model.OldValue = aa;
            //};

            //1、解决方案:重写SqlSugarClient客户端   (1)使用方便(2)要在注入的时候修改
            //2、解决方案:扩展SqlSugarClient客户端   (1)注入不需要修改(2)但所有方法使用的时候需要执行EnableDiffLogEvent方法
            //3、解决方案:使用OnLogExecuted          (1)方法执行前后的数据获取不到即使修改也很难
        }
コード例 #6
0
 public TeacherRepository(MySqlSugarClient sugarClient) : base(sugarClient)
 {
 }