DbContext
개체의 SaveChanges()
메서드를 재정의하여 감사 속성 값을 업데이트 할 수 있다는 것을 알고 있습니다. 하지만 감사 열을 실제로 엔티티에 매핑하지 않고 감사 열을 업데이트하고 싶다면 어떻게됩니까?DbContext에서 테이블 감사
"열 - 업데이트"목록에 추가 매핑되지 않은 열 값을 포함하도록 Entity Framework에 지시 할 수있는 방법이 있습니까?
감사합니다.
DbContext
개체의 SaveChanges()
메서드를 재정의하여 감사 속성 값을 업데이트 할 수 있다는 것을 알고 있습니다. 하지만 감사 열을 실제로 엔티티에 매핑하지 않고 감사 열을 업데이트하고 싶다면 어떻게됩니까?DbContext에서 테이블 감사
"열 - 업데이트"목록에 추가 매핑되지 않은 열 값을 포함하도록 Entity Framework에 지시 할 수있는 방법이 있습니까?
감사합니다.
흠 ... 감사 대상자 ... 필드가 처음부터 있는지 여부를 알 수 없습니까? 아니면 필드가 설정되어 있는지 상관하지 않습니까?
나중에 열을 추가 할 수 있지만 필요하지 않게 만들 수 있습니까? 개인적으로 CreatedDate, CreatedBy, ModifiedDate, ModifiedBy를 상속을 통해 대부분의 엔터티에 추가합니다. I.E. 다음과 같은 AuditableEnity 클래스를 사용할 수 있습니다.
그러면 모든 모델에 상용구 속성이 포함될 필요가 없습니다. 그런 다음 조금 추가하십시오. 그런 다음
당신의 SaveChanges를() 같은 것을 볼 수 있습니다
public override int SaveChanges()
{
//Only get changes from the auditable entities
var changeSet = ChangeTracker.Entries<AuditableEnity>();
...
if (changeSet != null)
{
foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged))
{
if (entry.State == EntityState.Added)
{
if (entry.Entity.OverrideAuditing == false)
{
entry.Entity.CreatedById = userId;
entry.Entity.CreatedDate = DateTime.UtcNow;
}
}
entry.Entity.ModifiedById = userId;
entry.Entity.ModifiedDate = DateTime.UtcNow;
}
}
return base.SaveChanges();
}
가 왜 열을 매핑하지 않으을? –
내 도메인 모델은 감사에 의존하지 않아야합니다. 이 데이터는 DBA에만 해당됩니다. –