Наше приложение использует nHibernate, и существует требование регистрировать все изменения в определенной таблице.Мне не нужно регистрировать все запросы, сгенерированные ORM, только данные и дату.
Например, допустим, у меня есть объект с именем Employee:
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
}
Это не сложно сделать, даже с извлечением старых данных, чтобы увидеть, чего не хватает, но мне было интересно, есть ли лучший способ?