2013-04-29 1 views
0

현재 nhibernate 설정 파일에서 테이블 이름을 동적으로 변경해야하는 문제가 있습니다. 열 이름은 항상 테이블 이름 변경 고객과 동일합니다. 나는이 문제를 봤 하나 이상nhibernate의 hbm 파일에서 테이블 이름 수정하기

How to use Nhibernate with variable or dynamic table names like Jan08Tran,Feb08Tran,Mar08Tran

같은 몇 가지 링크를 받고 있지만, 여기에 나는이 사용하는 설정 파일을 구현하는 방법을 몰라했다.

이 문제를 해결하는 데 도움을주세요. hbm 파일과 C#으로 nhibernate를 사용하고 있습니다.

감사합니다,

답변

0

이 명명 규칙을 사용

public class MyCustomNamingStrategy : INamingStrategy 
{ 
    public MyCustomNamingStrategy(IDictionary<string, string> properties) 
    { 
     _properties = properties; 
    } 

    public string TableName(string tableName) 
    { 
     tableName = tableName.Replace("[customPart]", _properties["foo"]); 
     return DefaultNamingStrategy.Instance.TableName(tableName); 
    } 

    public string ClassToTableName(string className) { return DefaultNamingStrategy.Instance.ClassToTableName(className); } 
    public string PropertyToColumnName(string propertyName) { return DefaultNamingStrategy.Instance.PropertyToColumnName(propertyName); } 
    public string ColumnName(string columnName) { return DefaultNamingStrategy.Instance.ColumnName(columnName); } 
    public string PropertyToTableName(string classNme, string propertyName) { return DefaultNamingStrategy.Instance.PropertyToTableName(className, propertyName); } 
    public string LogicalColumnName(string columnName, string propertyName) { return DefaultNamingStrategy.Instance.LogicalColumnName(columnName, propertyName); } 
} 

config.SetNamingStrategy(new MyCustomNamingStrategy(config.Properties)); 

은 다음 만 hibernate.cfg이 추가 속성을 추가 할 필요가

관련 문제