2010-11-04 39 views
1

我使用NHibernate,我有一些懷疑abour NHibernate如何處理非空值字段的空值。我會假設NHibernate會在創建實體的時候拋出一個異常,但是我發現了一些證據表明它會將字段設置爲該類型的默認值。NHibernate如何處理非空值字段的空值?

這是正確的嗎?

回答

2

從我所經歷的,它通常會指定一個默認值。

  • 如果您有一個具有DateTine屬性的實體,並且您不向其分配任何內容,它將分配一個默認日期,通常是數據庫可以處理的最早日期。
  • 如果你有一個枚舉屬性的實體,它可以簡單地分配枚舉的第一個值(例如,枚舉{關= 0,開= 1},這將默認取0)。
  • 數字類型當然會得到一個0值。

這是我在我的應用程序中的行爲。人們可能會以某種方式讓它拋出異常,但我個人並不需要它。

+0

是的,我只是做了一個測試項目,我可以證實這是它的工作原理。現在如果有人能告訴我如何改變這種行爲,我會非常高興! – martinnjensen 2010-11-04 15:36:14

+0

您可以使用NHibernate驗證器來執行您希望的任何規則:http://goo.gl/hBSw3 – rebelliard 2010-11-04 17:35:33