program tip

ADO.NET DbContext 생성기 및 ADO.NET Poco 엔티티 생성기 (ObjectContext)

radiobox 2020. 12. 13. 09:10
반응형

ADO.NET DbContext 생성기 및 ADO.NET Poco 엔티티 생성기 (ObjectContext)


저는 DDD에 대한 접근 방식으로 설계된 프로젝트의 데이터 액세스 인프라를 구현 하려고합니다 (DDD에 대한 첫 번째 시도이므로 조심스럽게 ;-) ).

Entity Framework를 사용할 것입니다. 지금까지 Julie Lerman ADO.NET POCO Entity Generator 가 사용되는 프로그래밍 Entity Framework 에서 T4 템플릿에 대한 일부 변경 사항과 추가 사용자 지정 코드를 사용 하여 가르친 방법을 살펴 보았습니다 . 오늘 저는 Database First 접근 방식을 사용하여 EF4.1 및 ADO.NET DbContext Generator에 대한 기사를 읽기 시작했으며 어떤 방법으로 가야할지 결정하려고합니다.

DDD에 대한 DbContext 및 EF4.1의 접근 방식은 POCO 엔터티보다 멋지고 깔끔한 방법 인 것처럼 보이지만 EF4.1은 여전히 ​​RC에 있으므로 가까운 장래에 몇 가지 문제가 발생할 수 있습니다.

에서 ADO.NET 팀 블로그 , 그 EF4.1 알고 하지 않습니다 다음과 같습니다 :

  • Enum 지원
  • 공간 데이터 유형 지원
  • Code First의 저장 프로 시저 지원
  • Code First의 마이그레이션 지원
  • Code First의 사용자 지정 가능한 규칙

내 이해에서 Database First를 사용할 것이므로 포함되지 않은 기능이 더 적습니다.

결론적으로 내 질문은 다음 과 같습니다. POCO Entities Generator 를 EF4.1 DbContext Generator로
바꿀 수 있습니까 ?


POCO 엔티티 깨끗한 생성 관점 에서 두 생성자간에 차이가 없습니다. 두 생성기 모두 동일한 엔티티를 생성하지만 ADO.NET POCO 엔티티 생성기는 ObjectContext의 API를 기반으로 하는 반면 ADO.NET DbContext생성기는 DbContext의 API를 기반으로 합니다.

DbContext의 API에는 몇 가지 매우 멋진 새 기능 (로컬, 탐색 속성의 쿼리 등)이 있으며 API는 다소 단순화되었지만 동시에 ObjectContext API에서 사용되는 일부 기능이 DbContext API에 누락 된 것처럼 보입니다 (또는 최소한 아직 충분히 탐구되지 않았습니다).

EF 4.1 RC는 라이브 릴리스입니다. 이는 API가 RTW에서 변경되지 않기 때문에 실제 애플리케이션을 빌드 할 수 있음을 의미합니다 (버그만 수정 됨). 또한 RTW는 다음 달에 있어야하므로 최종 버전이 출시되기 전에는 응용 프로그램을 준비하지 못할 것입니다.

ObjectContextAPI 또는 DbContextAPI? ObjectContextAPI는 문서 및 블로그 게시물에서 훨씬 더 잘 다루어집니다. 그것에 대한 많은 예를 찾을 수 있습니다. 또한 그 한계는 이미 잘 알려져 있습니다. DbContextAPI는 새 릴리스입니다. 대부분 코드 우선 접근 방식으로 인해 매우 유망한 릴리스입니다. 여전히 매우 제한된 수의 블로그 게시물이 있고 책이 없으며 API가 충분히 입증되지 않았습니다. 새로운 API로 싸울 준비가되었는지 여부에 따라 다릅니다. 그렇지 않다면 ObjectContext코드 우선 접근 방식이 필요하지 않기 때문에 API는 여전히 좋은 선택입니다.

참고 URL : https://stackoverflow.com/questions/5340990/ado-net-dbcontext-generator-vs-ado-net-poco-entity-generator-objectcontext

반응형