SubSonic 3.0.0.3 | Уровень доступа к данным - контрольные журналы

Привет, ребята, как вы реализуете контрольные журналы для всех объектов / классов на SubSonic на уровне доступа к данным?

Если я хочу, все изменения всех объектов будут записаны в одной таблице / объекте.

public class AuditTrail
{
   public int Id { get; set; }
   public string SourceObjectName { get; set; }
   public int RowPK { get; set; } // Id of the SourceObject
   public string ChangeType {get; set;} // value such as "Add", "Update", "Delete"
   public string RowCapture { get; set; } // Id="6" UserId="xxx3" SurName="NoBodyx" FirstName="no3" MiddleName="B." Email="[email protected]" CreatedDate="8/6/2009 1:57:58 PM" CreatedBy="ca3" UpdatedDate="8/7/2009 5:58:37 AM" UpdatedBy="qqq" Name="no3 B. NoBodyx"
   public CreatedDate {get; set;}
}

person No Body    schedule 08.08.2009    source источник


Ответы (1)


Я обрабатываю все свои контрольные журналы непосредственно в базе данных с помощью триггеров. Когда аудит происходит только с изменениями, исходящими из кода, если кто-то возится с данными через прямой SQL-запрос или через Management Studio, вы не получите никакого следа. Я также обнаружил, что настройки на основе триггеров работают лучше, чем настройки на основе кода, что меньше мешает работе.

Я использую хранимую процедуру, которая создает таблицу аудита для каждой таблицы и настраивает все триггеры. Однако аналогичная настройка может указывать на одну таблицу аудита, если хотите.

Как только таблица аудита существует, вы можете извлекать из нее данные через Subsonic.

person J Wynia    schedule 29.04.2010