ORM POCO가 도메인 엔터티를 대체합니까?


10

이것은 이 질문 과 다소 유사 하지만 더 광범위합니다.

일반적으로, EF 4.1 등으로 ORMs는 포항 강판을 지원과 함께, 지금은 의미가 도메인 엔티티가 할 수 있도록 않을 데이터베이스에 유지됩니다 객체?

EF 4 또는 Linq-to-SQL과 같은 오래된 ORM을 사용하면 "데이터베이스 객체"가 자동 생성되고 데이터베이스와 밀접하게 연결되어 있으므로 사소한 응용 프로그램의 경우보다 강력하고 지능적인 도메인 엔터티에 매핑되기 전에 일을 넣어.

최신 ORM을 사용하여 강력한 도메인 엔터티를 구축 한 다음 단순히 해당 도메인 엔터티와 DBMS 간의 매핑을 제공하는 데이터 계층이 있습니까?

필자는 이것이 항상 목표라고 생각하지만 적어도 .NET 세계에서는 사용할 수없는 도구로 쉽게 (쉽게) 가능하지 않다는 느낌을 얻습니다 .


EFv4는 POCO 및 필기 클래스에 대한 매핑도 지원했습니다.
Ladislav Mrnka

답변:


9

ORM의 일반적인 목표는 데이터베이스가 POCO 인 도메인 개체에 직접 매핑되는 것입니다. 따라서 귀하의 질문에 대한 대답은 그렇습니다. 이제 EF가 POCO에 매핑 할 수 있으므로 해당 POCO를 도메인 엔터티로 간주하는 것이 이상적입니다. NHibernate와 같은 다른 ORM의 경우 이것은 한동안 가능했으며 사람들은 일반적으로 그와 같이 사용하고 있다고 생각합니다.

그러나 도메인 엔터티를 데이터베이스에 직접 매핑하는 이러한 목표를 항상 달성 할 수있는 것은 아닙니다. 데이터베이스와 도메인 모델간에 상당한 변환이 필요한 경우가 있습니다. ORM이 번역을 수행하지 못할 수 있습니다. 이 경우 ORM과 함께 데이터베이스에 매핑 된 중간 POCO 레이어를 도메인 POCO로 바꾸고 다시 변환하는 변환 레이어를 원할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.