我正在處理的項目有一個遺留數據庫,其中包含大量用於改變應用程序行爲的信息。基本上我堅持的東西,我必須超小心改變。NHibernate,遺留數據庫,外鍵不是
對我的問題。在這個數據庫中是一個表,在這個表中是一列。此列包含整數,並且此列中大多數已有數據的值爲零。
問題是這個列實際上是另一個實體的外鍵引用,它在數據庫模式中從未被定義爲這樣。
現在在我的新代碼中,我定義了我的Fluent-NHibernate映射,將此列作爲參考對待,以便我不必直接在我的代碼中處理實體標識。這工作正常,直到我遇到一個實體在這個列中的值爲0。
NHibernate認爲值爲0是一個有效的引用。當我的代碼嘗試使用該引用的對象時,我得到一個ObjectNotFoundException,因爲顯然沒有對象在我的數據庫中的ID爲0.
我該如何通過映射或某種約定(我使用Fluent -nhibernate),得到NHibernate處理ID爲0是相同的,如果它是NULL?