Наше приложение использует nHibernate, и есть требование регистрировать все изменения в определенной таблице. Мне не нужно регистрировать все запросы, сгенерированные ORM, только данные и дату.
Например, предположим, что у меня есть сущность с именем Сотрудник:
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
}
Единственное решение, которое я могу придумать, это вручную отслеживать изменения (новые, обновленные и удаленные объекты) и записывать эти данные в таблицу. Что-то вроде:
public void SaveEmployees(List<Employee> employees)
{
employees.ForEach(x => {
if (x.ID == 0) // add do LOG list as new
else // add to LOG list as old
});
// save employees like usual
// save LOG list
}
Это нетрудно сделать, даже с извлечением старых данных, чтобы увидеть, чего не хватает, но мне было интересно, есть ли лучший способ?