我有一个我正在尝试调试的webapi。
我使用通用存储库结构,因此我所有的实体框架调用都在一个单独的类库中进行。
所以我的web Api post end point实际上只调用了service.insert(entity)。通用插入位于单独的类库中。
目前正在设置日志并在api中工作。现在我想在父应用程序文本日志文件中记录实体框架生成的插入Sql(因为在实时环境中发生了一些奇怪的事情)
我该怎么做呢?
答案 0 :(得分:2)
如何执行此操作取决于您使用的实体框架的版本。在EF6及更高版本中它很简单:
using (var context = new DataContext())
{
// log is a log4net logger
context.Database.Log = message => log.Debug(message);
// insert the entity
}
有关详细信息,请参阅this blog series - part 3显示使用命令拦截器记录到NLog的示例 - 以及this page用于与早期版本的EF相关的选项。