让EF 6命令拦截器参与ASP.NET Web API的最佳方法

让EF 6命令拦截器参与ASP.NET Web API的最佳方法,asp.net,asp.net-web-api,async-await,c#-5.0,entity-framework-6,Asp.net,Asp.net Web Api,Async Await,C# 5.0,Entity Framework 6,有人知道让Entity Framework 6命令拦截器和日志参与ASP.NET Web API堆栈的最佳方法吗?我遇到的问题是在IDbCommandInterceptor实例中,我没有访问HttpContext.Current的权限;它总是空的。我意识到拦截器正在另一个线程上运行,但是我是否可以将上下文传递给拦截器?在我们的控制器中,我们使用异步get、put和patches,并且我们可以访问HttpContext.Current。该框架正在处理将web上下文自动复制到异步方法中的操作 有人有

有人知道让Entity Framework 6命令拦截器和日志参与ASP.NET Web API堆栈的最佳方法吗?我遇到的问题是在IDbCommandInterceptor实例中,我没有访问HttpContext.Current的权限;它总是空的。我意识到拦截器正在另一个线程上运行,但是我是否可以将上下文传递给拦截器?在我们的控制器中,我们使用异步get、put和patches,并且我们可以访问HttpContext.Current。该框架正在处理将web上下文自动复制到异步方法中的操作


有人有什么想法吗?

理想情况下,在数据库层内访问HttpContext.Current不是一个好做法。出于日志记录目的,我们使用HttpContext.Current.User.Identity.Name来获取用户guid,在命令侦听器调用期间,在记录执行的sql时,我还希望将用户传递到日志记录框架。我可以不访问HttpContext,但有没有办法将特定属性传递给运行拦截器的线程?我想知道是否有可能访问IDbCommandInterceptor中的ASP.NET请求?