2011-01-25 1 views
1

나는 즉EF4와 함께 POCO를 사용하려고 할 때 가장 좋은 방법은 무엇입니까?

  1. 모델을 edmx 만들고 모델이 당신을 위해 무거운 엔티티를 생성하지 않도록 코드 생성을 해제 엔티티 프레임 워크를 POCO을 구현하는 방향으로 here 3 개 접근법을 읽었습니다. 그런 다음 몇 가지 제한 사항을 따라야하는 POCO 클래스를 만듭니다.
  2. VS 2010에 다운로드 할 수있는 POCO template을 사용할 수 있습니다.
  3. 코드 사용 POCO를 코딩하고 코드에서 매핑을 정의하는 첫 번째 방법입니다. 을 수행하려면 here에서 EF 4.0 Feature CTP가 필요합니다.

나는 개인적으로 빨리이지만이 된 ObjectContext에서 파생 나는 그것이 방법 결합으로 추측 이후 명심해야 할 일이 무엇인가로 두 번째 방법을 선택하는 거라고? 제 3의 접근법이 가장 큰 유연성을 제공하지만 가치가있는 것입니다. 이것에 관해 당신의 생각을 공유하십시오 .. 감사합니다! 당신이 깨진 "POCO 템플릿"를 제공 한 링크

+0

호스트 컴퓨터에 설치된 것을 제어 할 수 없다면 공유 호스팅 환경에서 CTP를 사용할 수 있습니까? 나는 이것을 고려하는 것이 중요하다고 생각한다. – kahoon

답변

2

-하지만 난 당신이 의미 가정이 템플릿 (및합니다) 옵션 1과 연동 해 사용할 수 당신이 언급 한 수

http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313

. 만들기 EDMX 모델

- 2 - 코드 세대

3 끄기 - POCO 클래스를 생성하기 위해 사용 POCO 발전기를

1 : 난 내 현재 응용 프로그램에서 사용할 무엇

포코 (POCO)는 순수한 포코 (POCO)입니다.

+0

세 번째 옵션에 대해 어떻게 생각하십니까? 그만한 가치가 있니? 또한 생성 된 poco 클래스 컨텍스트는'ObjectContext'에서 파생됩니다. 문제 또는 단점이라고 생각합니까? – Vishal

+0

코드를 처음 사용하지 않았으므로 주석을 달 수 없습니다. 개인적으로 나는 모델 (EDMX)을 선호한다. POCO 클래스 **는 ObjectContext **에서 파생되지 않습니다. 이것은 기본 코드 생성을 사용할 때만 발생합니다 - POCO가 아닙니다. – RPM1984

+0

@Misnomer : 우선 파생 된 컨텍스트를 사용할 필요가 없습니다. ObjectContext를 직접 사용할 수 있습니다. CTP에서도 DbContext에서 파생 된 클래스가 있으므로 아무런 단점도 보이지 않습니다. 이러한 유형을 상위 레이어에 노출시키지 않으려면 작업 단위 및 저장소 패턴을 점검하거나 파생 된 ObjectContext에서 인터페이스를 정의하고 IoC 컨테이너를 사용하여 구현을 주입하십시오. –

0

내 모델/poco 클래스를 설정할 때이 두 링크가 매우 유용하다는 것을 알았습니다. Poco generationPoco options. 위에서 언급했듯이 (물론 저장소 패턴을 사용하는 경우) edmx에서 코드 생성을 해제하고 Microsoft에서 제공하는 두 개의 T4 템플릿을 통해 파생 ObjectContext 클래스와 Poco 클래스를 만드는 것이 좋습니다.

T4 템플릿을 변경하지 않고 사용하는 경우 생성 된 코드에서 "추적과 함께 수정 프록시 변경"옵션을 사용하여 일련의 Poco 클래스를 가져옵니다.