문제

나는 그 인상을 받고있다

  • Poco와의 EF : 자신의 Poco를 모델 (.edmx)의 엔티티에 매핑 할 수 있습니다.
  • EF 코드 전용 : 아니요 EDMX/모델 디자이너 (예 : CSDL/SSDL/MSL (집합 적으로 EDMX) 메타 데이터). 여전히 poco는 있지만 매핑, 관계, 내비게이션 등은 모두 수동으로 코딩 된 (따라서 코드 전용, 설명).

두 개념에 대한이 설명이 (다소) 올바른 경우, 왜 누군가가 Poco와 EF 대신 코드 전용을 수행 해야하는지 왜?

둘 다 Poco를하고 있지만, 두 번째는 수동으로 매핑을해야한다는 추가 부담이 있습니까?

도움이 되었습니까?

해결책

  1. 코드는 XML을 통과하지 않고도 수작업으로 매핑을 쓰려고하는 경우에만 좋습니다. 또한 EDMX 디자이너는 50 개 정도의 모델 후에 다루기 어려워지며, 그런 식으로 사용하는 것은 부담 일뿐입니다.

매핑 XML 내부에서 무언가 잘못되면 실제로 XML을 파는 피타는 필요한 수정을 만들었습니다. 또한 특정 시나리오에서 XML을 수동으로 수동으로 편집하면 디자이너가 끊어집니다.

이제는 세부 사항을 모르지만 EF1의 디자이너는 사용 가능한 모든 매핑 옵션을 지원하지 않았습니다. EF4 디자이너는 약간의 개선 사항이 있지만 (일방적 인 관계가 떠 오릅니다) 수동 매핑과 함께 패리티가 있는지 확실하지 않습니다.

  1. 예.

다른 팁

JFAR의 답변에 추가 할 유일한 것은 코드 전용으로는 가지다 매핑을 만듭니다.

매핑은 대부분 컨벤션에 의해 추론 될 수 있습니다.

시야의 사전 세대에 대한 요점은 중요합니다. Microsoft는 코드 전용에 대한 사전 세대를 제공 할 의도가 있다고 들었습니다. 누군가가 다른 것을 알고 있다면 게시하십시오.

EF4 또는 NHibernate와 함께 갈 것인지에 대한 조사의 일부로 400 개의 테이블에 대한 코드 전용을 사용했으며 View Generation의 초기 지연이 80 초 초기 지연이 있습니다. 디자이너를 사용할 때와 정확히 동일하지만 디자이너 View는 사전- 세대가 가능하여 지연이 10 초로 줄어 듭니다. 모델을 나누는 것이 행복하지 않고 약 75 개가 넘는 테이블이 코드 전용으로 이동하지 않습니다.

코드 전용은 현재 뷰를 선사시킬 수 있다고 생각하지 않으므로 성능 비용이있을 수 있습니다. 그러나 이것은 출시 전에 변경 될 수 있습니다.

언급되지 않은 다른 것은 코드 만 사용할 때 구문을 전체 컴파일 시간 점검을 받는다는 것입니다. EDMX와 함께 Visual Designer를 사용하는 경우 컴파일 타임 확인을받을 수 있지만 제한적입니다. 더 큰 모델의 경우 EDMX는 매우 우수하지 않으며 CSDL, SSDL 및 MSL을 수동으로 작성하는 것이 XML 매핑으로 매우 큰 모델을 관리하는 유일한 방법입니다. 매핑을 수동으로 관리하는 경우 컴파일 타임 확인을받지 못합니다.

코드 만 사용하면 작업해야 할 수백 또는 수천 개의 엔티티가 있더라도 모든 크기의 모델을 확인하는 완전한 컴파일 시간을 확인할 수 있습니다. 또한 최종 제품이 어셈블리와 다양한 종류의 XML 파일이 혼합되지 않고 컴파일 된 어셈블리이므로 "혼란"이 줄어 듭니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top