NameMappingUtil |
일반적으로 DATABASE의 컬럼명들은 대문자, 구분자('_', '[', ']', '_' 등)이 사용됩니다. 이런 Data 객체 (IDataReader, DataTable) 에서 Class로 만드려면 DATABASE의 컬럼 명과 Class의 Property 명이 매핑시켜줘야 합니다. NHibernate는 hbm.xml 이라는 Mapping 파일을 사용하고, Active Record는 Property에 Attribute를 정의해서 사용합니다. Solution을 만들때에는 위와 같이 정형적인 방식이 유리합니다만.... SI의 경우에는 좀 다릅니다. 아주 많은 Class를 만들어야 하고, 그 속성 정의뿐 아니라 Table 만이 아니라 필요에 따라 View, Stored Procedure 등으로부터 정보를 얻어 Instance로 만들어야 할 때가 있습니다. (물론 DataTable을 직접 이용하는 것이 Microsoft가 주장하는 가장 생산성이 높은 방법입니다. - 유지보수 등에서 문제가 있습니다.) 이 때 가장 좋은 방법은 Database 컬럼명과 Class의 속성명에 일정한 규칙을 정해 놓으면, 그 규칙에 따라 자동으로 매핑정보를 생성할 수 있습니다. 예를 들어 PROJECT_NAME => ProjectName, PROJECT_ID => ProjectId 등으로 변경할 수 있습니다. 좀 더 특수하게는 PROJECT_ID => Id 로 변경할 수 있겠죠. (다만 다른 컬럼도 접미사로 _ID 값을 가진다면 매핑에 실패할 것입니다.) |