2013-05-20 2 views
1

특정 사용자에게 익명화해야하는 데이터 필드가 포함 된 엔터티 집합이 있습니다. 우리에게는 제품 데이터베이스가 있지만 제품의 실제 이름은 특정 사용자에게만 표시되어야합니다. 다른 사용자는 제품 이름의 "익명"버전을보아야합니다 (익명의 이름은 제품 테이블의 다른 필드에 저장 됨)Entity Framework를 사용하여 특정 필드의 익명 처리 방법

어떻게하면 쉽게이 문제를 해결할 수 있습니까? 매퍼 (mapper) 프레임 워크와 서비스 레이어가 있으며 첫 번째 방법은 제품 목록을 반환하는 모든 메서드에 대한 최종 결과를 매핑하는 것이었지만 탐색 속성을 잃어 버리는 것과 같은 결과를 얻었습니다. EF 구조를 DTO로 완성하십시오.

EF에서 사용자 기반 데이터 대체를 주입하는 간단한 방법이 있습니까?

답변

0

개인적으로 나는 이것을 한 추상화 레이어를 사용할 것입니다. 예 : 리포지토리 패턴.

public virtual TPoco Get(Expression<Func<TPoco, bool>> predicate) { 
//This routine would execute the normal find or first as you like...eg 
var resultEntity = Context.Set<TPoco>().FirstOrDefault(predicate); 
// but before returning. 
var anonResult = Blender<poco>(TPoco resultEntity); // this does the anon massaging 
return AnonResult; 
}