在asp.net mvc项目中,有多种记录dml操作的方法,例如插入,更新,删除。我想知道在代码中使用方面或在数据库服务器中使用触发器或CDC哪个有用,还是有更多逻辑方法?
另一种记录所有数据库操作非常方便的方法是,按如下所示在DbContext实现上设置Database.Log
属性:
public class YourContext : DbContext
{
public YourContext(ILogger<YourContext> logger)
{
Database.Log = sql => logger.LogDebug(sql);
}
}
^^我发现这种方法对于调试非常有用。我将有一个文件附加程序/目标/接收器(取决于您使用的日志框架,例如NLog / Log4net / Serilog)专门用于我的DbContext实现,以便我可以轻松地查看正在执行的数据库操作的SQL来自其他应用程序日志的任何噪音。
我使用过很多的另一种方法是使用SQL Server Profiler,但这假设a)您正在使用SQL Server,b)您能够连接到数据库服务器。