2012-12-25 1 views
1

내가 아래와 같이 일반 필드와 기본 클래스를 상속 개체의 커플이 적용DbContext 동작은 이전

[DataType(DataType.Text)] 
[StringLength(100)] 
public string CreatedBy { get; set; } 

[DataType(DataType.DateTime)] 
public DateTime? CreatedDate { get; set; } 

[DataType(DataType.Text)] 
[StringLength(100)] 
public string ModifiedBy { get; set; } 

[DataType(DataType.DateTime)] 
public DateTime? ModifiedDate { get; set; } 

나는 그것이 텍스로 이동하기 직전이 필드를 채울 싶습니다. 컨텍스트에 배치되기 전에 엔터티를 사용하여 일부 작업을 수행하기 위해 재사용 할 수있는 이벤트/메서드/처리기가 있습니까? 나는이 필드가 컨텍스트에 추가 될 때 채워지므로 데이터베이스에 저장하지 마십시오.

솔루션 : Entity Framework/SQL2008 - How to Automatically Update LastModified fields for Entities?

+0

중복 가능 [기본 유형 확장 및 자동으로 감사 정보 업데이트] (http://stackoverflow.com/questions/2588544/extend-base-type-and-automatically-update-audit-information-on-entity)) –

+0

그래, 대답은 기본 생성자 내에서 setter 메서드를 사용하는 것입니다. 기본적으로 나는 제안했다. – Mukus

답변

0

확실하지 그들이 데이터베이스로 이동하기 전에 상황에 이러한 필드를 작성하여 의미 ..하지만 100 %는 이러한 필드의 일부가되어야 어느 시점에서 그들을 유지하려는 경우 (개체) 개체를 누른 다음 setter 메서드를 사용하여 poco를 채울 수 있습니다. 언제든지 context.Save()/Update() 메서드를 호출 할 수 있습니다.

+0

예를 들어, 엔티티를 만듭니다. 이 엔티티는 (다른 많은 것들 중에서) 지정된 필드를 가진 기본 클래스를 상속합니다. 따라서 각 엔티티에 대해 이러한 속성을 수동으로 채우고 싶지는 않습니다. 나는 투명하게 채우기 위해 DbContext의 조상에 핸들러에서 채우기 로직 (이 4 개의 속성에 대해)을 배치하는 것을 선호하며 더 이상 그것에 대해 생각하지 않습니다. –

+0

기본 클래스의 생성자를 사용하고이 값을 기본값으로 설정하십시오. – Mukus

+0

다음은 비슷한 게시물입니다. - http://stackoverflow.com/questions/3137738/how-to-set-default-value-for-pocos-in-ef-cf (두 번째 및 세 번째 답변보기) http://stackoverflow.com/questions/10135058/ef-4-3-code-first-how-to-set-default-value (허용 된 답변보기) – Mukus