2

STE (Self-Tracking Entities)가 더 이상 사용되지 않으며 Microsoft에서 더 이상 투자하지 않을 것이라고 읽었습니다.자체 추적 엔터티에서 DBContext로 마이그레이션

현재 클라이언트 코드가 WCF 서비스에 대한 메서드 호출을 통해 자체 추적 엔터티를 가져 오는 n 계층 응용 프로그램에서 작업 중입니다. 클라이언트 코드에는 DBContext와 같은 것이 없습니다. 엔티티 자체 만 처리합니다.

자기 추적 엔티티 자체에는 변경 추적 코드가 있기 때문에 클라이언트 코드는 간단하게 작업 할 수 있으며 실제로 변경 사항을 다시 데이터베이스로 푸시하기 쉽습니다.

EF4 DBContext Generator t4 템플릿을 사용해 보았지만 persistence-ignorant 엔티티를 생성하므로 내 클라이언트 코드가 STE와 동일한 방식으로 변경 사항을 추적 할 수 없습니다.

WCF 서비스 코드뿐만 아니라 많은 클라이언트 코드를 다시 작성할 필요없이 그러한 프로젝트에서 DBContext 기반 프로젝트로 마이그레이션 할 수 있습니까?

답변

1

STE Generator template for EF 5.x하고 그 정보 페이지는 말한다 :

우리는 더 이상 새로운 응용 프로그램에서 STE 템플릿을 사용하는 것이 좋습니다 없다, 그것은 는 기존 응용 프로그램을 지원하기 위해 계속 사용할 수 있습니다. N-Tier Applications 페이지에서 N-Tier 시나리오에 권장되는 다른 옵션을 참조하십시오.

질문에 대한 답변입니다. 응용 프로그램을 다시 작성하지 않고 STE를 사용하려면 템플릿과 ObjectContext을 사용해야합니다. 이론적으로는 DbContext을 사용할 수 있습니다. 왜냐하면 생성자를 통해 기존 ObjectContext에서 DbContext의 새 인스턴스를 만들 수 있기 때문입니다. 나는 그것이 STEs에 어떤 이점이 있는지 확신하지 못한다.

MS는 WCF 데이터 서비스 및 해당 클라이언트 컨텍스트를 STE 대신 사용합니다.

+0

@Ladslav Mrnka, 생성자를 통해 기존 ObjectContext에서 DbContext의 새 인스턴스를 만드는 코드 예제를 어디에서 찾을 수 있습니까? – Don