개체를 저장하지 않는 저장소 시스템에 연결하는 개체 지향 DAL은 ORM을 구현합니다. ORM은 일반적으로 Hibernate와 같은 것을 의미하는 것으로 이해되지만 중요한 것은 임피던스 불일치를 처리하는 것입니다.
[확장 된] 다른 (OO)의 데이터로 한 유형 (관계)의 데이터를 맵핑 할 때, 임피던스 부정합이 발생하는 데이터 레벨에서
.
예를 들어, DAL에서 아래처럼 몇 번이나 본 적이 있습니까? 당신의 원시 데이터 유형을 매핑 할 때
db.AddInParameter(dbCommand, "Name", DbType.String, name);
또는 다른 측면
customerId = Convert.ToInt64(dr["CustomerID"].ToString());
많은 문제가 올.
개체 수준에서 DAL은 사용할 구조를 반환해야합니다. 그것은 일종의 비즈니스 객체이거나 단지 원시 데이터의 무리 일 수 있습니다. 자신의 DAL과 ORM 모두이 문제를 처리해야합니다.
디자인 수준에서 사용자가 생성 한 개체는 저장된 데이터를 반영합니다. 그래서 구조적인 차이가 발생할 수 있습니다. 이것들은 또한 ORM 솔루션 내에서 처리되지만 DAL 내에서 동일하게 처리해야합니다. 예를 들어, 귀하의 OO 코드 내에서 적절한 상속을 구현하는 것이 좋겠지 만, 이는 관계형으로 쉽게 변환되지 않습니다.
저는 ORM이 DAL에서 이미 수행해야하는 작업을 자동화하는 제품을 개발하는 데 사용되는 용어라는 것을 지적하고자합니다. ORM 솔루션은 삶을 더 쉽게 만들고 많은 품질/성능 이점을 제공합니다. 그러나 이것이 DAL의 주요 구성 요소 중 하나가 자신의 ORM을 작성한다는 사실을 변경하지는 않습니다.
@chaos - 왜 특수 용어 태그입니까 ?? DAL 및 ORM은 완벽하게 훌륭한 기술 약어입니다. –
@DJ : 용어에 * 잘못된 *이 있음을 암시하기 위해 '전문 용어'를 사용하지 않습니다. Rich B의 괴상한 태그 다시 데타에 대한 또 다른 구경꾼에 의해 제안 된 것처럼, 나는 http://en.wikipedia.org/wiki/Jargon에 의해 안내 받기 위해 노력하고있다. – chaos
컴퓨터 용어는 외부인에 의해 전문 용어라고 부를 수 있습니다. 그러나 여기에있는 모든 소프트웨어 전문가는 - 이것은 우리에게 전문 용어가 아닙니다. 그렇지 않으면 거의 모든 게시물은 특수 용어 –