星空网 > 软件开发 > ASP.net

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

 

在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况。系统要记录什么时间,什么人,对那些信息进行了变动。

比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt,见图1。CreatedBy用来存是谁进行了这次更改。CreatedAt用来存什么时间进行了这次更改。但是这种方式只能保存最后一次进行改动的人和时间。中间的改动历史都不能保留。改动前的值也不能保留。

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

                          图 1

 

对于关键的信息系统,例如银行系统,电商系统,公安系统,我们需要保存数据完整的变动信息和历史。这通常包括进行变更的人,变更发生的时间,所有变更前的数据值,变更后的数据值。

在使用实体框架(Entity Framew)的应用中,可以很方便的实现加入审计信息(Audit trail)跟踪数据的变动的功能。我们在这里给大家做一个简要的介绍。

0. 前提是你使用的实体框架是 code-first.

1. 使用Nuget安装Tracker Enabled Dbcontext。如果你没有使用Microsoft.AspNet.Identity;你可以安装TrackerEnabledDbContext。如果你使用了Microsoft.AspNet.Identity;你需要安装TrackerEnabledDbContext.Identity. 见图2.

 

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

 

                  图2

 

2. 修改你的DBcontext。如果你使用了Microsoft.AspNet.Identity。那么你的DBContext要继承TrackerIdentityContext<ApplicationUser>,否则你需要继承TrackerContext。见图3.

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

                图 3

 

3. 修改你的数据层操作方法和业务层的方法。要增加userId的参数把userId的信息传递过来。见图4.修改context.SaveChanges();为context.SaveChanges(userId); userId为更改用户的Id信息。

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

 

            图 4.

 

4. 更新数据库。运行Enable-Migrations -Force。再更新数据库运行 Update-Database。详细步骤,如果不是很清楚,可以自行网上查询。

更新完数据库后,你会发现里边增加了两个新表。一个是AuditLogs。另一个是AuditLogDetails。见 图5.

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

    图 5.

5. 我们做一个员工维护的Demo来验证它的功能。在这个Demo中包括 “增加员工信息”和“更新员工信息”两个功能。见图6.

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

 

              图 6.

新增加的员工是 10010。

更新的员工是1009。我们将他的employee code 从1006变成1009. Employee Name从周伯通1变成了周伯通。

 

6. 完成上述操作后。我们查看AuditLogs和AuditLogDetails表。里边已经增加了相关的变动信息。 见图7和图8.

  1) AuditLogs表

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

          图 7

  2. AuditLogDetails表

在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

 

谢谢大家。欢迎指正和讨论!

 




原标题:在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊出公告,未授权卖家不允许出售任天堂产品:https://www.ikjzd.com/articles/109729
亚马逊FBA卖家遇到备货、补货、销货了应该怎么办?:https://www.ikjzd.com/articles/109730
电子产品侵权最新案件,看看你中招了没?:https://www.ikjzd.com/articles/109731
亚马逊PPC的有效关键字应该怎样去寻找?:https://www.ikjzd.com/articles/109732
如果要减少开销,怎样才能提高亚马逊PPC广告销量?:https://www.ikjzd.com/articles/109733
现在做跨境电商还好做吗?靠谱吗?适合小白做?:https://www.ikjzd.com/articles/109734
长治婚庆女司仪和主持人:https://www.vstour.cn/a/366176.html
北京丰台区水上乐园哪家好玩?:https://www.vstour.cn/a/366177.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流