是否可以将EF 6.0的DbInterception与Database-First ObjectContext一起使用?或者仅通过DbContext使用?
我无法使用我的旧版(旧版)ObjectContext。
提前致谢, 施洛米
答案 0 :(得分:2)
AFAIK DbInterception
与您使用数据库优先还是代码优先建模无关。
您可以在应用程序的开头附近添加一个拦截器。
public class LogInterceptor : IDbCommandInterceptor
{
public void NonQueryExecuting(System.Data.Common.DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
{
}
public void NonQueryExecuted(System.Data.Common.DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
{
System.Diagnostics.Debug.WriteLine(command.CommandText);
}
public void ReaderExecuting(System.Data.Common.DbCommand command, DbCommandInterceptionContext<System.Data.Common.DbDataReader> interceptionContext)
{
}
public void ReaderExecuted(System.Data.Common.DbCommand command, DbCommandInterceptionContext<System.Data.Common.DbDataReader> interceptionContext)
{
System.Diagnostics.Debug.WriteLine(command.CommandText);
}
public void ScalarExecuting(System.Data.Common.DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
}
public void ScalarExecuted(System.Data.Common.DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
System.Diagnostics.Debug.WriteLine(command.CommandText);
}
}
用法:
// Add an interceptor to log executed SQL queries.
DbInterception.Add(new LogInterceptor());