Entity Framework V4: "코드 전용" 성능 고려 사항

새 프로젝트 작업을 시작하려고 하는데 "코드 전용"이 올바른 방법인지 궁금합니다. 또한 디자이너를 통해 다른 모델 우선 접근 방식을 고려하고 있지만 EF 디자이너 외부에서 내 도메인 모델을 디자인하는 것이 좋습니다.

우리 도메인에는 100개 이상의 엔터티가 포함될 것입니다. 많은 수의 엔터티가 EF를 다소 느리게 할 수 있다는 것을 읽었습니다(예: 컨텍스트 생성 및 SaveChanges에 대한 첫 번째 호출).

메타데이터를 저장할 EDMX 파일이 없기 때문에 이 접근 방식이 더 느릴 수 있습니까? 나는 웹을 검색했지만 이것에 대한 정보를 찾을 수 없었습니다.

나는 이것이 여전히 CTP에만 있고 많은 기능이 없다는 것을 알고 있지만 이 시점에서 입력/안내를 찾고 있습니다.

EF4를 포함한 .NET 4는 베타 1이므로 현재로서는 유용한 일반적인 답변을 얻지 못할 것입니다. 특정 경우에 테스트하지 않는 이유는 무엇입니까?

하나의 엔터티로 엔터티 모델을 만들고 몇 가지 성능 테스트를 실행합니다. 그런 다음 모델을 확장하여 더 많은 엔터티를 포함하고 테스트를 다시 실행합니다. 모델의 엔터티 수가 성능에 미치는 영향이 있는 경우 성능 차이가 표시되어야 합니다.

시작하고 단일 작업을 수행한 다음 종료하는 응용 프로그램에만 관심이 있는 경우가 아니면 부하 효과를 할인해야 합니다.

내부적으로 Code-Only는 메타데이터를 캐시하므로 첫 번째 컨텍스트가 생성되면 Code-Only와 EDMX 접근 방식 간의 성능 차이가 거의 없습니다.

많은 수의 엔터티가 EF를 느리게 할 수 있다는 말이 맞습니다.

대형 모델의 성능을 높이려면 뷰를 미리 생성하는 것이 좋습니다. 그러나 그 기능은 EDMX 파일이 있어야 하므로 당연히 Code-Only에서는 작동하지 않습니다.

그러나 뷰를 미리 컴파일해야 하는 경우 항상 CodeOnly의 ToEdmx() 기능을 사용하여 CodeOnly 세계에서 표준 EDMX 세계로 이동할 수 있습니다. 그리고 물론 EDMX 세계에서 뷰를 미리 컴파일할 수 있습니다.

그러나 이것이 반드시 내가 취하는 접근 방식은 아닙니다.

어쨌든 100개 이상의 IQueryable 속성이 있는 컨텍스트는 사용성 관점에서 이상적이지 않다고 생각합니다.

따라서 Code-Only에서 pre-gen 보기로 이동하는 대신 Code-Only의 기능을 활용하여 더 작은 대상 하위 도메인을 쉽게 만들고 현재 사용하는 앱 부분에 대한 모델의 유효 크기를 최소화할 것입니다. 작업.

그 결과 현재 작업 집합을 대상으로 하는 빠르고 사용하기 쉬운 여러 ObjectContext가 생성됩니다.

어느 IMHO가 훨씬 더 바람직합니다.

도움이 되었기를 바랍니다

알렉스

Entity Framework 응용 프로그램에 대한 성능 고려 사항

ADO.NET Entity Framework의 성능 탐색 - 1부

ADO.NET Entity Framework의 성능 탐색 – 2부