相关疑难解决方法(0)

如何使用Entity framework 5和MVC 4创建审计跟踪

我正在使用EF 5构建MVC 4应用程序.我需要执行审计跟踪,即记录最终用户所做的任何更改.

我已经问了几次这个问题,但之前没有真正得到满意的答案.所以我希望在某个地方添加更多细节...

目前我有多个存储库

 public class AuditZoneRepository : IAuditZoneRepository
    {
        private AISDbContext context = new AISDbContext();


        public int Save(AuditZone model, ModelStateDictionary modelState)
        {
            if (model.Id == 0)
            {
                context.AuditZones.Add(model);
            }
            else
            {
                var recordToUpdate = context.AuditZones.FirstOrDefault(x => x.Id == model.Id);
                if (recordToUpdate != null)
                {
                    recordToUpdate.Description = model.Description;
                    recordToUpdate.Valid = model.Valid;
                    recordToUpdate.ModifiedDate = DateTime.Now;
                }
            }

            try
            {
                context.SaveChanges();
                return 1;
            }
            catch (Exception ex)
            {
                modelState.AddModelError("", "Database error has occured.  Please try again later");
                return -1;
            } …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc-4 entity-framework-5

19
推荐指数
3
解决办法
3万
查看次数

实体框架创建审计表/历史表?

我想为特定实体创建历史/审计表.这是一个包含许多子表的复杂实体,我们正在为我们的应用程序使用Repository Patter.我查看了重写DbContext SaveChanges?将这个专门用于一个实体是一种好习惯吗?我还有什么其他选择?

提前致谢.

c# audit entity-framework

5
推荐指数
2
解决办法
2044
查看次数

使用 Entity Framework Core 进行审计跟踪

我有一个在 SQL Server 数据库上使用实体框架核心的 ASP.NET 核心 2.0。

我必须跟踪和审计用户对数据所做的所有事情。我的目标是拥有一个自动机制来记录所有正在发生的事情。

例如,如果我有表 Animals,我想要一个并行表“Audit_animals”,您可以在其中找到有关数据、操作类型(添加、删除、编辑)和创建此操作的用户的所有信息。

这次我已经在Django + MySQL中做了,但现在环境不同了。我发现了这一点,看起来很有趣,但我想知道是否有更好的方法,以及哪种方法是在 EF Core 中执行此操作的最佳方法。

更新

我正在尝试这个并且发生了一些事情,但我有一些问题。

我加了这个:

  1. services.AddMvc().AddJsonOptions(options => {
    
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            }); 
    
    Run Code Online (Sandbox Code Playgroud)
  2. public Mydb_Context(DbContextOptions<isMultiPayOnLine_Context> options) : base(options)
    {
        Audit.EntityFramework.Configuration.Setup()
            .ForContext<Mydb_Context>(config => config
                .IncludeEntityObjects()
                .AuditEventType("Mydb_Context:Mydb"))
            .UseOptOut()
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. public MyRepository(Mydb_Context context)
    {
        _context = context;
        _context.AddAuditCustomField("UserName", "pippo");
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

我还创建了一个表来插入审计(只有一个表来测试这个工具),但我唯一得到的是你在图像中看到的。包含我创建的数据的 json 文件列表.... 为什么?

在此处输入图片说明

sql-server audit entity-framework-core asp.net-core audit.net

2
推荐指数
2
解决办法
1万
查看次数