C# Class NSoft.NFramework.Data.Mappers.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 값을 가진다면 매핑에 실패할 것입니다.)
ファイルを表示 Open project: debop/NFramework

Public Methods

Method Description
CapitalizeMappingFunc ( ) : string>.Func

컬럼명에서 속성명에 들어갈 수 없는 문자나 '_' 등의 구분 문자를 제거하여, 단어의 첫문자만 대문자로 (Capitalize) 만들어 속성명으로 매핑시킨다.

Mapping ( this reader, string>.Func mappingFunc ) : INameMap

컬럼명=속성명 매핑함수를 이용하여 지정된 DataReader의 컬럼명을 속성명으로 매핑한다.

NameMapping ( this reader, INameMapper nameMapper ) : INameMap

지정된 DataReader의 컬럼명을 속성명으로 변경한다. 매퍼는 IoC를 통해 얻는다.

NoChangeFunc ( ) : string>.Func

변경 없이 컬럼명 그대로 속성명으로 매핑한다.

RemovePrefixFunction ( string prefix ) : string>.Func

컬럼명에서 속성명에 들어갈 수 없는 문자나 '_' 등의 구분 문자를 제거하여, 단어의 첫문자만 대문자로 (Capitalize) 만들어 속성명으로 매핑시킨다.

Method Details

CapitalizeMappingFunc() public static method

컬럼명에서 속성명에 들어갈 수 없는 문자나 '_' 등의 구분 문자를 제거하여, 단어의 첫문자만 대문자로 (Capitalize) 만들어 속성명으로 매핑시킨다.
public static CapitalizeMappingFunc ( ) : string>.Func
return string>.Func

Mapping() public static method

컬럼명=속성명 매핑함수를 이용하여 지정된 DataReader의 컬럼명을 속성명으로 매핑한다.
public static Mapping ( this reader, string>.Func mappingFunc ) : INameMap
reader this instance of IDataReader
mappingFunc string>.Func mapping function
return INameMap

NameMapping() public static method

지정된 DataReader의 컬럼명을 속성명으로 변경한다. 매퍼는 IoC를 통해 얻는다.
public static NameMapping ( this reader, INameMapper nameMapper ) : INameMap
reader this instance of IDataReader
nameMapper INameMapper Mapper of column name and property name
return INameMap

NoChangeFunc() public static method

변경 없이 컬럼명 그대로 속성명으로 매핑한다.
public static NoChangeFunc ( ) : string>.Func
return string>.Func

RemovePrefixFunction() public static method

컬럼명에서 속성명에 들어갈 수 없는 문자나 '_' 등의 구분 문자를 제거하여, 단어의 첫문자만 대문자로 (Capitalize) 만들어 속성명으로 매핑시킨다.
public static RemovePrefixFunction ( string prefix ) : string>.Func
prefix string 접두사
return string>.Func