2011-11-15 23 views
0

我想在ID列之前添加className。例如。我有一個類,nhibernate INamingStrategy - 在columnName之前添加className

public class Employer { 
    public long ID {get;set;} 
    } 

並且可以映射文件,

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" ... > 
    <class name="Employer" > 
    <id name="ID"> 
     <generator class="sequence" > 
     <param name="sequence">Employer_Seq</param> 
     </generator> 
    </id> 
</hibernate-mapping> 

在INamingStrategy,還有我應該怎麼做才能改變身份證電子方法來更改屬性名稱,

public string PropertyToColumnName(string propertyName) 
     { 
      propertyName =Up(DefaultNamingStrategy.Instance.PropertyToColumnName(propertyName)); 
      return propertyName; 
     } 

到EMPLOYER_ID而無需在hbm.xml文件中定義它?在該方法中,我沒有className信息。

+0

我不知道這是可能的。但是,爲什麼你認爲你需要在CS中將ID更改爲Employer_ID。如果它處於模式級別,那麼當涉及到連接等時,這將是有意義的,這將清楚具有tablename_Id標準。但爲什麼在對象? – Illuminati

回答

0

你可以嘗試使用這個:

DefaultNamingStrategy.Instance.LogicalColumnName(columnName, propertyName); 
+0

這將如何幫助? – Illuminati

+0

它不是將數據庫中的列映射到映射中的屬性嗎? – willDaBeast

+0

我爲DefaultNamingStrategy.Instance.LogicalColumnName方法調試INamingStrategy。但是這個方法從未被調用過。我應該如何讓NHibernate使用Method? – whitestream

相關問題