C# (CSharp) NSoft.NFramework.Data.Mappers Namespace

Classes

Name Description
CapitalizeNameMapper 컬럼명에서 '_', White Space 를 제외하고, Pascal 명명법에 따라 단어를 대문자로 사용한다. (예: PROJECT_NAME => ProjectName)
NameMapMapper 내부에 INameMap을 가지고, 컬럼명-속성명을 매핑시키는 래퍼 클래습니다.
NameMapperBase Fluent ADO.NET을 위해, DB Column 명과 Class의 속성명을 매핑시키는 Base abstract class
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 값을 가진다면 매핑에 실패할 것입니다.)
SameNameMapper 컬럼명과 속성명이 같은 Mapper
TrimNameMapper 공백을 제거하고 컬럼명과 속성명이 대소문자가 같게 매핑한다.