2009-07-08 37 views
6

我是NHibernate的新手,請耐心等待。讓我們來想象一下,我有一個用於創建日期的屬性,並且我希望它充滿了sql服務器的日期時間值。用NHibernate插入數據庫生成日期

我發現的可能的解決方案是,用「insert = false」和「update = false」將此屬性標記爲「generated = always」,然後在sql server級別設置CreatedDate的默認值我的意思是數據庫列),以「Getdate()」。

這是正確的做法嗎?感謝您的時間,任何建議將不勝感激。

回答

2

另一種方法是插入SQLServer的日期,是創建記錄。使該列不可爲空,並將其默認值設置爲SQL函數GETDATE()。創建記錄時,將記錄日期/時間戳。像NHibernate中的其他DateTime屬性一樣映射它。

+0

這就是我們所做的,我們有一個內部規則,即以任何方式完成任何DateAdded和DateModified列。簡單而有效。 – Perhentian 2009-09-15 20:10:24

1

您可以將該屬性映射爲日期時間。然後,在任何插入/更新之前,您可以從數據庫中獲取日期,如下所示:

myEntity.LastModifiedDate = Session.CreateSQLQuery("SELECT GETDATE()").UniqueResult<DateTime>(); 
Session.SaveOrUpdate(myEntity);