SqlSugar框架日常查询 测试可用

    /// <summary>
    /// 记录查询日志log
    /// </summary>
    /// <param name="query_text">查询</param>
    /// <param name="localIP">IP地址</param>
    void InsertToLogQuery(string query_text,string localIP)
    {
        try
        {
            connection.Open();
            //开启事务
            db.Ado.BeginTran();
            #region 执行
            localIP = string.Empty;
            using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
            {
                socket.Connect("8.8.8.8", 65530);
                IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
                localIP = endPoint.Address.ToString();
            }

            query_text = "SELECT TOP 100    qs.last_execution_time,    DB_NAME(st.dbid) AS database_name,    OBJECT_NAME(st.objectid, st.dbid) AS object_name,    SUBSTRING(st.text, (qs.statement_start_offset / 2) + 1,        ((CASE qs.statement_end_offset           WHEN - 1 THEN DATALENGTH(st.text)           ELSE qs.statement_end_offset          END - qs.statement_start_offset)/ 2)+1) AS executed_sql FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st ORDER BY qs.last_execution_time DESC; ";
            //参数
            var query_text1 = new SugarParameter("@query_text", query_text);
            var localIP1 = new SugarParameter("@ip_address", localIP);
            //执行存储过程
            //db.Ado.UseStoredProcedure().GetDataTable("LogQuery", query_text1, localIP1);
            #endregion 执行
            //提交事务
            db.Ado.CommitTran();

            //查询
            var data = db.Queryable<tbiz_worktask>().Where(x => x.work_id == 20000 || x.work_id == 20001).ToList();
            if (data.Count > 0)
            {
                
            }

            //动态表名 ,动态条件 
            //var list = db.Queryable<dynamic>().AS("query_logs ").Where("id=@id", new { id = 1 }).ToList();//不需要实体
            var list = db.Queryable<query_logs>().Where(it => it.id == 1 || it.Query_text.Contains("from")).ToList();
            if (list.Count >0)
            {

            }

            //等同于IN
            var getAll1 = db.Queryable<query_logs>()
            .Where(it => SqlFunc.Subqueryable<tbiz_worktask>().Where(s => s.work_id == it.id).Any()).ToList();

            //等同于NotIN
            var getAll2 = db.Queryable<query_logs>()
            .Where(it => SqlFunc.Subqueryable<tbiz_worktask>().Where(s => s.work_id == it.id).NotAny()).ToList();


            string xxx = "";
            string xxx2 = "";
            // 注册OnLogExecuting事件
            db.Aop.OnLogExecuting = (sqls, pars) =>
            {
                xxx = ("执行SQL:" + sqls);
                xxx2 = ("参数:" + pars.ToJson());
            };
            //子查询中使用Sql
            string sql = " (select top 1 id from [query_logs] ) ";
            var lis = db.Queryable<query_logs>()
                          .Where(i => SqlFunc.Subqueryable<query_logs>().Where(s => s.id == 1).Any()).ToSqlString();

            xxx = xxx2 + xxx;

        }
        catch (Exception ex)
        {
            //回滚事务
            db.Ado.RollbackTran();
            throw ex;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值