2010-03-17 44 views
2

我正在將NHibernate應用到現有項目,其中表和列已經定義和修復。如何使NHibernate自動更改「更新」列

該數據庫是MS-SQL-2008。 NHibernate 2.1.2

許多表都有一個名爲「ReplicationID」的類型時間戳列和一個名爲「UpdatedDT」的datetime類型列。

我知道我可以使用映射文件的<timestamp>元素來描述允許NHibernate管理該列的「ReplicationID」列。

是否有可能讓NHibernate在更新行時自動更新UpdatedDT列?我想我可以嘗試映射UpdatedDT屬性的類型時間戳,但有其他副作用。

回答

4

對於由數據庫設置/更新的屬性,可以使用generated =「always」。然後,NHiberante將在插入/更新語句後爲此列發出一個選擇。

例如:

<property name="CreatedOn" 
      insert="false" update="false" type="Timestamp" generated="insert" /> 
<property name="UpdatedOn" 
      insert="false" update="false" type="Timestamp" generated="always" /> 

的版本/時間戳同樣的工作:

<version name="_timeStamp" generated="always" unsaved-value="null" type="BinaryBlob" access="field"> 
     <column name="TimeStamp" not-null="false" sql-type="timestamp"/> 
</version> 
+1

<屬性名= 「UpdatedOn」 插入件= 「假」 更新= 「假」 類型=「時間戳「generated =」always「/>不工作 – BlueBird

2