2011-11-19 2 views
0

사용자가 CRUD 이벤트를 수행 할 때 변경 사항을 추적하는 가장 쉬운 방법에 대한 의견을 얻고 싶습니다. 사용자가 권한에별로 관심이없는 시스템에서 작업하고 있지만 실제로 사용자가 변경 한 내용에 대한 정교한 로그를 원합니다. ASP.NET MVC 3, EF 및 NLog를 사용하고 있습니다.변경 내용 추적 변경

은 어떤 조언이 크게 감사합니다 :)

스티브

+1

[MVC 및 Entity Framework를 사용하여 감사 로그 구현/변경 내역] (http://stackoverflow.com/questions/6867459/implementing-audit-log-change-history-with-mvc-entity-framework/6867622)을 확인하십시오. # 6867622) – Eranga

답변

2

을 나는 규칙 기반 접근 방식을 사용합니다. 각 엔티티는 기본 엔티티의 모든 특성과 성공 여부를 포함하여 변경 정보를 포함하는 연관된 감사 엔티티를가집니다. DB 컨텍스트에서 SaveChanges 메서드를 재정의합니다. 변경되는 각 엔티티에 대해 새 값을 보유하는 감사 엔티티를 작성합니다. 변경 사항을 저장하려고 시도한 다음 별도의 감사 컨텍스트를 사용하여 감사 된 각 엔티티를 저장 작업의 결과와 함께 저장합니다. 데이터 엔티티에 주입 된 유틸리티를 사용하여 감사 엔티티를 구성 할 때 현재 사용자 (웹용 HttpContext.Current, 비 웹용 Environment.User를 통해)에 액세스합니다.

LINQ to SQL의 이전 버전 인 http://farm-fresh-code.blogspot.com/2009/05/auditing-inserts-and-updates-using-linq.html에 대해 블로그를 작성했습니다. 당신은 그것으로부터 기본적인 아이디어를 얻을 수 있어야합니다.

+0

감사합니다 tvanfosson! 나는 그것을 살펴볼 것이다. 셀프 추적 엔티티에 대해 아십니까? 감사 및 추적 목적으로 사용할 수 있습니까? – SteveB