2012-05-03 94 views
0

在NHibernate中,我有這個配置。NHibernate屬性配置

<property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a222222229"> 
     <column name="Name" /> 
    </property> 

這是什麼意思? msconrlib,版本,文化,publicKeyToken?爲什麼我們需要這些?我曾在Java環境中使用Hibernate,我從來沒有使用這些標籤。

謝謝

回答

0

類型描述了用於該屬性的.Net CLR類型。在這種情況下是普通的字符串。

你不必在這種情況下指定它。有些時候你想指定它,例如當你使用自定義類型時。或者當你想映射一個日期時間。

關於部分類型的含義: 類型是System.String,它非常精確地描述了關於程序集名稱,區域性和版本。 publicKeyToken是程序集強名稱的關鍵 - 只要它們使用不同的密鑰簽名,就可以使用重名的程序集名稱。

你可以寫這個映射爲

<property name="Name"> 
     <column name="Name" /> 
</property> 

<property name="Name" type="String"> 
     <column name="Name" /> 
</property> 

但是,如果你想在一些組件使用自定義類型,您需要指定,如果更詳細的像你正在做正確的現在。

+1

還應該指出,如果'name'和'column name'是相同的,只需使用'' – Rippo

0

在MS .Net中,它被稱爲強大會名稱。這是.Net框架中特定類型的標識。因此,這個特定的字符串指出,使用版本4.0的mscorlib庫中的System.string。沒有對本地化的偏好。 這允許.Net使用部署到GAC的程序集 - 全局程序集緩存,它充當系統dll的全局目錄。