EF4 DbContext:如何集中审核数据库读取

时间:2013-01-15 10:27:06

标签: .net entity-framework dbcontext audit

我知道,我知道。为什么有人想这样做?该应用程序已经审核了对数据的更改,但现在企业也希望审核所有读取(没有令人信服的用户故事,我不得不说)。我已经向他们提出了反对的所有论据,但他们坚持认为。

EF / DbContext是否提供了一个扩展点,适用于拦截从数据库返回的所有记录并在审计跟踪中写入条目?还是有另一种明智的做法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ObjectContext.ObjectMaterialized。 MSDN片段:

  

从数据中的数据创建新实体对象时发生   source作为查询或加载操作的一部分。

     

在所有标量,复杂和引用之后引发此事件   已在对象上设置属性,但在集合之前   加载。如果对象中存在具有相同键值的对象   上下文,实体框架将不重新创建对象和此   活动不会被提出

但这只会跟踪通过EF实现从Db读取的项目。