在Entity Framework中使用ObjectContext.SaveChanges方法选择性地审核日志记录



我需要在应用程序中执行审计日志记录,并且我希望SaveChanges记录对数据库的任何更改。在某些情况下,我不希望日志记录发生。告诉SaveChanges不要执行审计日志记录的最优雅的方法是什么?我使用的是实体框架4。

我会创建一个自定义属性来装饰需要日志的元素。它将由log方法读取。这个属性可以应用于类和属性,这样您就可以精确地选择应该记录的内容。

我建议您使用缓存来避免每次都检查是否应该记录某些内容。

我已经实现了类似的日志记录要求。我将表的信息存储在数据库中一个名为tablemaster的元表中,并存储许多与登录该表相关的信息。其中一个字段告诉是否记录该表的条目。当在上下文中调用保存更改时,我会记录Audit跟踪,也就是说,当我决定是否要对这些表进行日志记录时。Meta Table tablemaster是在应用程序启动时从内存中提取的,因此没有来回检查详细信息。希望这能有所帮助。

最新更新