2010-04-06 6 views
5

엔티티 프레임 워크 4.0에서 T4 템플릿을 사용하여 POCO를 만들면 무엇이 느슨합니까? 엔터티 프레임 워크 4.0을 사용할 때 기본 동작이 이 아닌 이유는으로 POCO를 만들 수 있습니까?엔티티 프레임 워크 POCO

답변

3

많은 것들을 잃습니다. "순수한"POCO는 변경 추적을하지 않기 때문에 ORM에서 제한적으로 사용됩니다. 즉, 개체를 변경 한 다음 변경 내용을 컨텍스트에 저장하면 변경된 속성이 데이터베이스에 저장됩니다. "순수한"POCO를 사용하면 상당히 비효율적 인 스냅 샷 기반 변경 추적으로이 작업을 수행 할 수 있습니다. 런타임 프록시를 사용하여 트랙 등록 정보를 만들도록 할 수도 있습니다. public virtual이므로 더 이상 "POCO"가 없어도됩니다. 또한 프록시를 사용한다는 것은 인스턴스의 실제 런타임 유형을 알지 못함을 의미합니다.

EntityState과 같은 편의 속성도 일부 손실됩니다.

"순수한"POCO는 게으른로드를 수행 할 수 없습니다. 다시 프록시 유형을 사용하여이 문제를 해결할 수 있지만 프록시를 사용하는 경우에는 "순수한"POCO가 없습니다.

이 외에도 다른 ORM보다 Entity Framework에서 POCO 엔터티를 사용할 필요가 적습니다. 엔티티 인스턴스를 먼저 구체화 할 필요없이 항상 LINQ를 사용하여 POCO 인스턴스에 엔티티 유형을 프로젝션 할 수 있기 때문입니다. 그렇게 순수한 POCO는 엔터티 프레임 워크 응용 프로그램에서 항상 사용할 수 있습니다. 그런 식으로 엔터티를 매핑하지 않아도됩니다.

+0

비 POCO로 단위 테스트를 수행 할 수 있습니까? – rkrauter

+1

비 POCO로 단위 테스트를해도 문제가 없습니다. 전혀 문제 없습니다. –

+0

응답 해 주셔서 감사합니다! – rkrauter

관련 문제