2009-05-05 7 views
0

나는 꽤 많은 초보자이며, 약간의 대학 논문을 쓰려면이 문제를 파헤쳐 야한다. 그래서 나는 부트 스트랩이 필요하다.Linq to Sql to NHibernate 매핑 옵션

여기 저기에 NHibernate는 도메인 모델을 데이터베이스에 매핑 할 때 훨씬 더 많은 유연성 (L2S와 비교)을 제공한다고 읽었습니다. 내가 탐색해야 할 힌트를 적어 주시겠습니까?

답변

0

대단히 큰 DBML 파일에 개체를 만들어 L2S가 "당신에게 도움이됩니다"라는 것을 고려해야합니다. 부분 클래스를 생성하여 객체로 작업 할 수 있지만, dbml 파일을 변경하려고 시도하는 경우, L2S는 자체를 다시 생성 할 때 변경 사항을 덮어 쓰거나 앞으로 수동으로 변경 사항을 구현해야하기 때문에 엉망입니다. .

그래서 DBML을 변경하는 것은 끔찍한 생각이지만, 개체의 속성 이름 짓기에 할 수있는 일에는 한계가 있기 때문에 일종의 고민입니다. 고전적인 예는 데이터베이스에 int로 저장된 enum을 사용하는 경우입니다. 앱에서 UserType을 열거 형으로 사용한다고 가정 해 보겠습니다. 사용자 테이블에 UserType이라는 int 열로 저장하기 만하면됩니다. 그게 당신이 DBML 파일을 만들 때 제외하면 UserType이 int 열로 매핑됩니다. 그러나 UserType 열거 형을 반환하기 위해 UserType 속성을 원한다면 DBML을 해킹하거나 다음과 같이 네이밍 규칙을 변경해야합니다. ORM 도구와 일치하는 데이터베이스 ... 어느 쪽도 좋은 옵션이 아닙니다.

반면에 nHibernate는 객체와 데이터베이스 간의 XML 기반 매핑으로, 설정하려는 방식에 대한 유연성이 훨씬 뛰어납니다.

http://nhibernate.info/doc/nh/en/index.html

나는 생각하지 않는다 :

보는 또 다른 한가지

은 다 대다 관계 및 여기에 참조하는 테이블 당 서브 클래스/테이블 당 클래스 매핑입니다 L2S는 table-per-subclass 관계를 처리 할 수 ​​있습니다. 이 도움이

희망,

- 최대

0

특히 LINQ to SQL이 많은 관계를 많은 관계로 매핑하는 제한 사항을보고 싶을 것입니다. 이것은 두 제품 간의 매핑에서 큰 차이점입니다.