Как использовать поставщик данных Audit.NET Entity Framework для сохранения журналов аудита Audit.NET WebAPI? - PullRequest
1 голос
/ 06 ноября 2019

У меня возникают трудности с пониманием документации для поставщика данных Audit.NET Entity Framework, чтобы сохранить журналы аудита Audit.NET WebAPI в моей базе данных.

Вот так у меня настроена конфигурация аудита, просто чтобыконтрольная работа. У меня есть точка останова внутри AuditEntityAction на entity.ChangeType = ev.EventType, но это никогда не срабатывает, когда я вызываю проверенное действие на моем контроллере.

Audit.Core.Configuration.Setup()
    .UseEntityFramework(x => 
        x.AuditTypeMapper(t => typeof(AuditLog))
            .AuditEntityAction<AuditLog>((ev, entry, entity) =>
            {
                entity.ChangeType = ev.EventType;
                entity.ObjectType = entry.EntityType.Name;
                entity.PrimaryKey = "test";
                entity.TableName = "test";
                entity.UserId = entry.CustomFields[UserIdField].ToString();
            })
            .IgnoreMatchedProperties()
        );

На моем действии контроллера у меня есть декоратор:

[AuditApi(EventTypeName = "Organisation:Create", IncludeRequestBody = true, IncludeResponseBody = true)]

Это правильно? Мне не очень ясно об этом, и я был бы признателен за некоторые указания.

1 Ответ

1 голос
/ 06 ноября 2019

Поставщик данных Entity Framework является частью библиотеки Audit.EntityFramework и предназначен для эксклюзивного хранения проверок, сгенерированных проверенным Entity Framework DbContext.

Таким образом, он не будетработать для событий WebApi любого другого вида событий.

Здесь вы можете увидеть, как событие аудита отбрасывается, если оно не AuditEventEntityFramework

Так что вам следует создать свой собственный Пользовательский поставщик данных или может использовать поставщик данных SQL .

...