Cat.Data/Cat.Data.EF/DbCommandCustomInterceptor.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Cat.Util;
namespace Cat.Data.EF
{
/// <summary>
/// Sql执行拦截器
/// </summary>
public class DbCommandCustomInterceptor : DbCommandInterceptor
{
public async override Task<InterceptionResult<int>> NonQueryExecutingAsync(DbCommand command, CommandEventData eventData, InterceptionResult<int> result, CancellationToken cancellationToken = default)
{
var obj = await base.NonQueryExecutingAsync(command, eventData, result, cancellationToken);
return obj;
}
public async override Task<int> NonQueryExecutedAsync(DbCommand command, CommandExecutedEventData eventData, int result, CancellationToken cancellationToken = default)
{
if (eventData.Duration.TotalMilliseconds >= GlobalContext.SystemConfig.DBSlowSqlLogTime * 1000)
{
LogHelper.Warn("耗时的Sql:" + command.GetCommandText());
}
int val = await base.NonQueryExecutedAsync(command, eventData, result, cancellationToken);
return val;
}
public async override Task<InterceptionResult<object>> ScalarExecutingAsync(DbCommand command, CommandEventData eventData, InterceptionResult<object> result, CancellationToken cancellationToken = default)
{
var obj = await base.ScalarExecutingAsync(command, eventData, result, cancellationToken);
return obj;
}
public async override Task<object> ScalarExecutedAsync(DbCommand command, CommandExecutedEventData eventData, object result, CancellationToken cancellationToken = default)
{
if (eventData.Duration.TotalMilliseconds >= GlobalContext.SystemConfig.DBSlowSqlLogTime * 1000)
{
LogHelper.Warn("耗时的Sql:" + command.GetCommandText());
}
var obj = await base.ScalarExecutedAsync(command, eventData, result, cancellationToken);
return obj;
}
public async override Task<InterceptionResult<DbDataReader>> ReaderExecutingAsync(DbCommand command, CommandEventData eventData, InterceptionResult<DbDataReader> result, CancellationToken cancellationToken = default)
{
var obj = await base.ReaderExecutingAsync(command, eventData, result, cancellationToken);
return obj;
}
public async override Task<DbDataReader> ReaderExecutedAsync(DbCommand command, CommandExecutedEventData eventData, DbDataReader result, CancellationToken cancellationToken = default)
{
if (eventData.Duration.TotalMilliseconds >= GlobalContext.SystemConfig.DBSlowSqlLogTime * 1000)
{
后面还有 7 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。