В шаблоне asp.net нам необходимо отслеживать изменения в объектах. Я вижу, что в ABP есть отслеживание сущностей (новое), но оно хранит все изменения по сущностям в одной таблице, что нам не подойдет. Можно ли создать пользовательский IEntityHistoryStore
для хранения этих изменений для каждой сущности (в собственной таблице)?
Например, допустим, есть сущность Task
.
[Table("Task", Schema = "Tasks")]
public class Task : Entity<int>
{
[Column(TypeName = "varchar(255)")]
public string Description { get; set; }
// some more poco properties
}
Тогда я хотел бы определить другую таблицу, zzLog.Tasks_Task, и я хотел бы, чтобы эта таблица выглядела так:
╔════════╦════════════════════════╦══════╦══════════╦════════════════════╗
║ TaskId ║ Description ║ lgId ║ lgAction ║ lgTime ║
╠════════╬════════════════════════╬══════╬══════════╬════════════════════╣
║ 1 ║ Some description ║ 1 ║ 1 ║ 2019-05-30 9:05 AM ║
║ 1 ║ Some other description ║ 2 ║ 2 ║ 2019-05-30 9:06 AM ║
║ 1 ║ Changed again ║ 3 ║ 2 ║ 2019-05-30 9:07 AM ║
║ 1 ║ Changed again ║ 4 ║ 3 ║ 2019-05-30 9:08 AM ║
╚════════╩════════════════════════╩══════╩══════════╩════════════════════╝
lgAction
- это перечисление, 1 = создать, 2 = обновить, 3 = удалить
Возможно ли это? Инстинкт говорит «нет», поскольку IEntityHistoryStore
, вероятно, не может работать таким образом.